01 前言

在树莓派配置了温度监控系统,监控服务器周边的环境、UPS和交换机的温度。但是我现有的监控软件的画面都很难看,并不能作为展示所用。相比zabbix和cacti,grafana正是我所需要的。

grafana配置好的画面如下:




zabbix加入grafana展示 grafana zabbix配置_grafana


image.png


02 准备

grafana是一款开源监控软件,也可以集成报警功能。以下是grafana的官方网站:

grafana服务端支持在linux、windows、mac和docker中配置,在这里我配置在centos中。在linux系统中安装有两种安装方式,一种是下载源码自行编译,另一种是下载rpm直接安装。

首先通过以下地址下载安装包:


zabbix加入grafana展示 grafana zabbix配置_grafana_02


image.png


但是他们使用亚马逊s3存储服务,在国内的下载速度非常缓慢,下载时间可能很长。

03 安装

下载和安装的代码都在网页中,直接通过以下命令安装即可:

[root@web  ~]# yum install ./grafana-4.3.2-1.x86_64.rpm

安装后并不需要其他配置,安装完成后需要手动启动并设为开机启动:

# 立即启动

[root@web  ~]# systemctl start grafana-server.service
#设为开机启动

[root@web  ~]# systemctl enable grafana-server.service

启动完成后通过以下命令检查启动情况:

[root@web  ~]# systemctl status grafana-server.service
●  grafana-server.service  -  Grafana instance
 Loaded:  loaded  (/usr/lib/systemd/system/grafana-server.service;  enabled;  vendor preset:  disabled)
 Active:  active  (running)  since Fri  2017-06-16  22:28:48  CST;  23h  ago
 Docs:  http://docs.grafana.org
Main PID:  19521  (grafana-server)
 CGroup:  /system.slice/grafana-server.service
 └─19521  /usr/sbin/grafana-server  --config=/etc/grafana/grafana.ini  --pidfile=  cfg:default.paths.logs=/var/log/grafana cfg:default.paths.data=/var/lib/grafana cfg:default.paths.plugins=/var/l...
Jun  16  22:28:48  web.t.com  grafana-server[19521]:  t=2017-06-16T22:28:48+0800  lvl=info msg="Initializing Alerting"  logger=alerting.engine
Jun  16  22:28:48  web.t.com  grafana-server[19521]:  t=2017-06-16T22:28:48+0800  lvl=info msg="Initializing Stream Manager"
......
Jun  17  20:17:35  web.t.com  grafana-server[19521]:  t=2017-06-17T20:17:35+0800  lvl=info msg="Request Completed"  logger=context userId=0  orgId=0  uname=  method=GET  path=/login status=302  remote...ms=10  size=24
Hint:  Some lines were ellipsized,  use  -l  to  show in  full.

通过以下命令检查grafana监听的端口:

[root@web  ~]# netstat -anp | grep grafana

tcp        0      0  0.0.0.0:3000            0.0.0.0:* LISTEN      19521/grafana-serve

grafana默认监听tcp 3000这个端口,如果需要修改,请修改以下文件:

修改以下文件

[root@web  ~]# vim /etc/grafana/grafana.ini

取消注释并修改为目标端口

http_port  =  3000

然后重启服务即可。

04 插件

为了方便从zabbix中读取数据,我选择安装zabbix插件,请通过以下地址下载:

  • Zabbix plugin for Grafana

插件的安装方式有两种,一种是通过grafana-cli进行安装,另一种是将插件下载到插件目录中并解压。不过手动下载安装这种方式需要重启服务。但是通过cli这种方式又异常缓慢,因为文件还是存凡在亚马逊s3中,所以我选择手动下载:

#进入插件文件夹
[root@web  ~]# cd /var/lib/grafana/plugins
#下载插件
[root@web plugins]# wget https://grafana.com/api/plugins/alexanderzobnin-zabbix-app/versions/3.4.0/download
#解压
[root@web plugins]# unzip alexanderzobnin-grafana-zabbix-v3.4.0-0-g14a7fd4.zip
#修改权限
[root@web plugins]# chown -R grafana:grafana alexanderzobnin-grafana-zabbix-v3.4.0-0-g14a7fd4/
然后是重启服务:
[root@web plugins]# systemctl restart grafana-server.service

05 数据源

在配置数据源之前需要启用插件,通过菜单选择plugins–>apps并选择zabbix,点击enable即可:


zabbix加入grafana展示 grafana zabbix配置_zabbix_03


image.png


然后通过菜单选择Data Sources并选择zabbix:


zabbix加入grafana展示 grafana zabbix配置_zabbix加入grafana展示_04


image.png


  • Name:自定义数据源名称
  • Type:选择zabbix
  • Url:填写包含api_jsonrpc.php的完整地址
  • Access:请根据实际情况选择,我并没有使用proxy,所以选择direct
  • Zabbix API details:填写zabbix的用户名和密码

其他参数请根据实际情况填写,然后单击save&test,如果成功通过测试,则会有绿色提示。

06 仪表板

成功连接上zabbix数据库后就可以开始添加仪表板了,首先新建一个仪表板:


zabbix加入grafana展示 grafana zabbix配置_linux_05


image.png


然后添加一个仪表盘,显示当前流量:


zabbix加入grafana展示 grafana zabbix配置_zabbix加入grafana展示_06


image.png


选择singlestat,然后单击panel title并选择edit:


image.png


在弹出的对话框中选择相应的内容:


zabbix加入grafana展示 grafana zabbix配置_zabbix加入grafana展示_07


image.png


然后单击options:

Value–>Stat选择current以显示当前流量;

Spark lines分别勾选Show和Full height以全高的形式显示历史数据;

最后勾选Gauge中的Show并将Max数值设置为104857600也就是100M。

返回到General,修改Info中Title一栏为自定义名称。

07 其他

点击右上角的时间,选择显示最近5分钟的数据并将自动刷新时间设为5秒:


zabbix加入grafana展示 grafana zabbix配置_zabbix加入grafana展示_08


image.png


通过左下角箭头所指的小三角可以调整模块的大小,以便添加多个模块。然后点击顶部的齿轮并选择Settings:


zabbix加入grafana展示 grafana zabbix配置_zabbix加入grafana展示_09


image.png


在General–>Details–>Name中自定义仪表板名称,勾选箭头所指的勾勾可以隐藏修改控件,防止意外修改的情况。

最后点击齿轮旁边的软盘图表,保存仪表板。

08 结语

grafana还可以添加其他数据源,例如elasticsearch等。图表也各种各样,非常适合用于数据展示