0x01 前言

前几天我用树莓派配置了温度监控系统,监控服务器周边的环境、UPS和交换机的温度。为了方便,我还在淘宝上购买一块7寸显示屏,计划将监控画面显示在显示屏中。

但是我现有的监控软件的画面都很难看,并不能作为展示所用。相比zabbix和cacti,grafana正式我所需要的。

grafana配置好的画面如下:

0x02 准备

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

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

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

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

0x03 安装

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

[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 16 22:28:48 web.t.com grafana-server[19521]: t=2017-06-16T22:28:48+0800 lvl=info msg="Initializing HTTP Server" logger=http.server address=0.0.0.0:3000 protocol=http subUrl= socket=
Jun 16 22:29:01 web.t.com grafana-server[19521]: t=2017-06-16T22:29:01+0800 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302 remote_addr..._ms=0 size=29
Jun 16 23:54:03 web.t.com grafana-server[19521]: t=2017-06-16T23:54:03+0800 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302 remote_addr..._ms=0 size=29
Jun 16 23:54:03 web.t.com grafana-server[19521]: t=2017-06-16T23:54:03+0800 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/login status=302 remote...ms=10 size=24
Jun 17 16:35:57 web.t.com grafana-server[19521]: t=2017-06-17T16:35:57+0800 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/ status=302 remote_addr..._ms=5 size=29
Jun 17 16:35:57 web.t.com grafana-server[19521]: t=2017-06-17T16:35:57+0800 lvl=info msg="Request Completed" logger=context userId=0 orgId=0 uname= method=GET path=/login status=302 remote...ms=15 size=24
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=/ status=302 remote_addr..._ms=6 size=29
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

然后重启服务即可。

0x04 插件

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

插件的安装方式有两种,一种是通过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

0x05 数据源

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

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

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

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

0x06 仪表板

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

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

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

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

然后单击options:

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

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

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

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

0x07 其他

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

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

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

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

0x08 结语

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

在我的树莓派显示屏中,效果是这样的:

0x09 相关文章