Grafana+Zabbix监控系统搭建

本文介绍在CentOS6系列系统中,安装zabbix 3.0与grafana 2.5 搭配的监控系统
据了解在zabbix 3.0 LTS版本有50余项升级,zabbix是结合了众多监控系统的优点,是一款比较全面分布式监控系统。在与Grafana搭伙后,完美解决了Zabbix GUI审美疲劳的痛点,接下来进入正题(Zabbix 3.0安装部分完全按照官方文档的步骤实现)

前言

  1. 本文的Zabbix部分知识只介绍它的基础安装,Zabbix的使用以及配置优化并不在本文的介绍范围之内。
  2. 本文只介绍在CentOS6系列下的安装和部署,其他发行版与其他版本号暂不涉及
  3. 本文默认使用MySQL作为后端数据库支持

CentOS 6.x 基础环境配置部分

基础环境介绍

  • CentOS 6.7 64bit
  • 8CPU
  • 1G Mem
  • MySQL InnoDB

基础依赖环境配置

Apache

1.Zabbix官方文档要求Apache的版本要在1.3.12之后

shell> yum install httpd -y
Loaded plugins: fastestmirror, refresh-packagekit, security
Setting up Install Process
Loading mirror speeds from cached hostfile
 * base: mirrors.neusoft.edu.cn
 * epel: mirrors.yun-idc.com
 * extras: mirrors.btte.net
 * remi-safe: mirror.innosol.asia
 * rpmforge: mirrors.neusoft.edu.cn
 * updates: mirrors.btte.net
Package httpd-2.2.15-47.el6.centos.3.x86_64 already installed and latest version
Nothing to do

我这里已经安装了httpd 2.2版本,符合官方文档中的要求

2.启动httpd服务,并设置为开机自动启动

shell> service httpd start
shell> chkconfig httpd on

PHP

PHP的版本要求在5.4以上,但Linux 6.x系统自带repo中的PHP版本是5.3.3 不符合Zabbix官方文档的要求,需要使用Remi repo来安装更高版本的PHP

配置Remi Repo来安装高版本的PHP

1.下载Remi

shell> yum install http://rpms.famillecollet.com/enterprise/remi-release-6.rpm

2.配置Remi

使用习惯的文本编辑器(如 vim)打开 Remi 源配置文件 /etc/yum.repos.d/remi.repo
启用 Remi Repository修改 enabled=0 为 enabled=1
为 Remi Repository 设置合适的优先级在 [remi] 那一节的结尾另起一行添加下面的代码:priority=3

3.安装PHP

shell> yum install --enablerepo=remi php php-gd

4.根据Zabbix官方文档需求安装PHP扩展

shell> yum install php-bcmath php-ctype php-xml php-xmlreader php-xmlwriter php-session php-net-socket php-gettext php-mbstring php-gettext php-ldap php-mysql 

Server

根据官方文档的要求,需要在服务器中安装一下软件支持

shell> yum install OpenIPMI OpenIPMI-devel libssh2 libssh2-devel fping libcurl libxml2 libxml2-devel net-snmp

MySQL

官方文档要求MySQL的版本要在5.0.3以上,CentOS 6.7默认的repo里提供的MySQL版本为5.1.73 符合官方文档要求

shell> yum install mysql mysql-server mysql-devel
shell> service mysqld start  #首次启动需要初始化
shell> chkconfig mysqld on  #添加开机自动启动

Zabbix安装部分

Zabbix 3.0的安装参考了官方文档中源码编译安装的方式,软件包的方式比较简单,大家可以参考官方文档自行试验,时间关系,这里暂不介绍rpm包的安装方式,后续有时间会补充提供这种安装方式的说明

源码安装的方式

下载Zabbix 3.0源码包并解压

Zabbix 3.0 源码官方下载地址: http://www.zabbix.com/download.php
选择Zabbix Sources下的Zabbix 3.0 LTS进行下载

shell> tar -zxvf zabbix-3.0.0.tar.gz  #解压缩

创建用户及组

shell> groupadd zabbix
shell> useradd -g zabbix zabbix

创建Zabbix数据库

shell> mysql -uroot -p<password>
mysql> create database zabbix character set utf8 collate utf8_bin;
mysql> grant all privileges on zabbix.* to zabbix@localhost identified by '<password>';
mysql> quit;
shell> cd database/mysql  #在解压缩后的zabbix-3.0.0文件夹中
shell> mysql -uzabbix -p<password> zabbix < schema.sql
#如果你是为Zabbix Proxy来创建数据库,那么到这里就必须停止了,下面的不需要执行
shell> mysql -uzabbix -p<password> zabbix < images.sql
shell> mysql -uzabbix -p<password> zabbix < data.sql

编译安装Zabbix Server和Zabbix Agent

shell> ./configure --help #可以查看编译的参数项
shell> ./configure --enable-server --enable-agent --with-mysql --enable-ipv6 --with-net-snmp --with-libcurl --with-libxml2  #Zabbix Server与Agent安装参数参考
shell> make install

其他组件安装参考:

shell> ./configure --prefix=/usr --enable-proxy --with-net-snmp --with-sqlite3 --with-ssh2  #Zabbix Proxy安装参数参考
shell> ./configure --enable-agent  #Zabbix Agent安装参数参考

编辑配置文件

如果Server与Agent采用了AIO(All In One)的部署方式,作为测试,Agent的配置文件可以不修改

接下来修改Server的配置文件

shell> vim /usr/local/etc/zabbix_server.conf
#以下为修改完成后的项目
#DBName和DBUser保持以下默认参数即可,只需设置DBPassword一项
DBName=zabbix
DBUser=zabbix
DBPassword=zabbix  #上面配置数据时,我设置zabbix用户的密码为zabbix

启动服务

shell> zabbix_server  #启动Zabbix Server
shell> zabbix_agentd  #启动Zabbix Agent

启动其他服务:

shell> zabbix_proxy  #启动Zabbix Proxy

安装Zabbix网站页面接口

shell> mkdir /var/www/html/zabbix
shell> cd frontends/php  #在解压缩后的zabbix-3.0.0文件夹中
shell> cp -a . /var/www/html/zabbix

配置Zabbix

  • 在浏览器中打开如下网址: http://server_ip_or_name/zabbix

  • 在打开的页面中看到“Welcome to Zabbix 3.0”几个大字就算成功了一半了!点击Next step

    Welcome

  • 第二个页面Check of pre-requisites 会检查PHP的一些配置参数(第一列是变量名;第二列是PHP配置文件实际值;第三项是Zabbix强制要求的最低值或固定值),默认情况下这个页面所有的检查项应该都是“OK”的,如果有红色的错误项,根据前面提示的变量名,去找PHP的配置文件,修改成“REQUIRED”要求的值就可以啦(默认PHP的配置文件/etc/php.ini

    Check of pre-requisites

  • 第三个页面Configure DB connection 这一步骤会去尝试连接数据库。第一项数据库类型选择MySQL;DB Host 保持默认的localhost(因为这里采用了AIO的安装方式,数据库没有单独分离);DB Port修改成3306;DB Name:zabbix; User:zabbix;Password:zabbix。点击Next step如果出现报错,根据报错信息排查是否是配置错误(这些配置都是在前面设置过的,3306是MySQL默认的端口号)

    Configure DB connection

  • 第四个页面Zabbix server details 保持默认的Host:localhost和Port:10051配置即可,Name可以自定义设置,为这套监控系统起个名字

    Zabbix server details

  • 第五个页面Pre-installation summary 总览一下前面所有的配置Next step

    Pre-installation summary

  • 第六个页面Install 我在进入到这个页面后,出现了报错,提示Can not create the configuration file 下方官方也给出了手动解决这个问题的方法。按照提示,第一步点击给出的连接,下载zabbix官方提供的配置文件;第二步,根据提示,放在指定的位置保存为指定的文件,我这里提示保存为:/usr/share/zabbix/conf/zabbix.conf.php 按照提示操作完成后点击Finish

    Install

  • 如果上面配置的都没有问题,第七个页面将会出现congratulations! ... 点击Finish

    Install2

  • 第八个页面将会出现登陆页面,默认的登陆用户名为Admin 密码为zabbix

    login

Zabbix的使用简介

进入到Zabbix首页后,会发现3.0版本与之前的2.x版本的界面相比焕然一新,更养眼了,对解决2.x版本的审美疲劳起到了一定的作用。当然这只是最肤浅的外貌协会成员的结论,除了颜值高了,Zabbix还有50余项技术更新,变得愈发强大了~~~

  • Configuation-->Hosts-->status中,将Disabled变成Enabled状态,稍等片刻,如果Zabbix Agent启动正常的话,ZBX的图标就会亮起,表示Server与Agent之间通信正常
    Enabled
  • 监控首页会是如下状态(各个模块可以拖拽移动布局)
    Dashboard
  • 再瞅一眼监控图表的效果~
    Graphs1

那么问题来了,虽然3.0换了一层扁平简约的外观,但是图表展示还是一样的丑……为了解决这个问题,Grafana可以帮上大忙,接下来的部分就详细介绍如何使用Grafana给Zabbix监控图表披上一层华丽的外衣

RPM包安装方式


Grafana安装部分

截止至我写这篇文档的时候,Grafana的最新版本是2.6.0 而Grafana原生是不支持获取Zabbix数据的,需要通过grafana-zabbix插件来实现,grafana-zabbix插件的最新版本是2.5.1,github上写的很清楚,该插件服务于Grafana的2.5版本。经过测试,成功在2.6.0的Grafana上使用了grafana-zabbix的2.5.1版本。所以这里你可以任意选择2.5或2.6版本的Grafana来安装。

Grafana的下载及安装

shell> yum install https://grafanarel.s3.amazonaws.com/builds/grafana-2.6.0-1.x86_64.rpm  #这里只提供了yum的安装方式,其他安装方式可以参考附录中的Grafana官方安装文档
shell> service grafana-server start  #启动Grafana服务
shell> chkconfig grafana-server on  #添加开机自动启动

Grafana Zabbix插件的下载及安装

#https://github.com/alexanderzobnin/grafana-zabbix/releases/latest  #请到该网址下载2.5.1版本的grafana-zabbix插件
shell> tar -xvzf grafana-zabbix-2.5.1.tar.gz
shell> cp -r grafana-zabbix-2.5.1/zabbix/  /usr/share/grafana/public/app/plugins/datasource/
shell> service grafana-server restart

Grafana + Zabbix联通部分

  • 在浏览器地址栏输入 http://IP:3000就可以看到Grafana的登陆页面了。输入默认的用户名admin 密码admin登陆
  • 点击左侧的Data Sourses-->Add new
    • Type下拉框中选择Zabbix
    • Name 可以自由发挥~~
    • Http settings-->Url 填入http://zabbix-server-ip/zabbix/api_jsonrpc.php 这里填入的是Zabbix API接口
    • Http settings-->Access 选择 direct 使用直接访问的方式
    • Zabbix API details-->User 填入Admin
    • Zabbix API details-->Password 填入 zabbix
    • Save保存后再编辑,出现Test Connection按钮,点击可测试API配置是否正确。出现:Success Zabbix API version: 3.0.0 配置成功
      enter image description here

Grafana配置部分

至此仅差最后一步,将Zabbix的数据读取到Grafana来以图表展示,就打完收工啦!

  • 点击左侧的Dashboards-->Home-->在下拉菜单的底部选择+ New。这时新的页面中默认出现一个空的横行图表,左上角有绿色的竖线,右下角有+ ADD ROW添加新行的按钮。
  • 鼠标放在左上角的绿色竖线上,点击后弹出一个菜单,选择Add Panel。下面有五个选项,下面选择四个常用的分别介绍
  • 记得点击上面的保存按钮以保存新建的页面

Graph

这个选项是创建一个图表,类似于Zabbix的监控图表,是最常用的类型之一。

  • General-Title:设置该图表的名称
  • Metrics:在该项的右下角,选择正确的数据源(之前在Data Sources配置的Name)
  • Metrics-Group/Host/Application/Item:这些项目是必填项目,需要依次下拉选择
    如果一张图需要展现两条线的数据,可以在左下角点击+ Query
  • Display Styles-Chart Options:这里可以选择以竖线展示,以折线展示或以来展示数据
    Grafana-Graph

Table

表格展示,类似于Excel表格的展现形式


enter image description here
  • 点击 - + 号可以调整该模块的大小(横向伸缩)
  • 点击Edit可以重新编辑该模块的数据源

Single stat

单统计模块,从字面意思就可以知道,该种模块仅可以展示一种数据,统计一种数据。这里需要重点说明就是Option选项下的参数

以统计磁盘使用大小一项来举例

  • Unit:要选择data下的bytes单位来统计
  • Decimals:小数设置保持默认的auto即可
  • Coloring:这里可以选择渲染背景色或字体色
    • Colors控制着三个颜色,可以自由发挥,一般绿色代表正常,黄色代表预警,红色代表警告
    • Thresholds可以设置以逗号分隔的三个数字,分别表示三个状态的阈值
    • Spark lines有两种显示模式,Show会在数据的下方展示折线;Background mode会在整个模块的背景展示折线

Text

这个模块很好理解,就是一个现实文字的模块,支持markdown语法,可以放在每个页面的头部,标记当前图表信息的归类。

Dashboards list

这个模块是用来展示页面列表用的。举个例子,如果一个监控系统中,涉及到了多个页面展示监控图表,就会用到这个功能,这个模块会列出你需要展示的页面的列表,方便在当前页面中,快速的切换到其他监控页面。

最终效果图

Final

页面自动刷新

点击右上角Last 6 hours, 在弹出的下拉框中,选择Time range下的Refreshing every选项,点击下拉框按钮,默认应该有off1m两个选项。点击1m 然后Apply设置。即为每一分钟刷新一次数据的意思。设置成功后,在原来Last 6 hours的后面会出现Refresh every 1m的橙色文字!


附录:参考文档

Zabbix 3.0官方文档

Remi官方文档

Grafana官方网站

Grafana官方安装文档

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容

  • Zabbix简介 Zabbix官方网站Zabbix中文文档 本文系统环境是CentOS7x86_64, Zabbi...
    Zhang21阅读 7,848评论 0 37
  • 一、准备搭建环境 1.系统:CentOS 7.3 2.软件:Zabbix 3.2 二、安装前的准备 最小化安装Ce...
    尘世不扰阅读 4,079评论 8 31
  • 1.写在前面 本文主要介绍的是zabbix的编译安装过程,包含它的基础环境LNMP,虽然zabbix官方一般推荐的...
    天之蓝色阅读 2,460评论 0 17
  • 先通过lnmp一键安装包吧nginx和数据库、php搞起来!然后:实现:1. 获取zabbix centos:获取...
    老夫刘某阅读 2,166评论 0 3
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,575评论 25 707