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等。图表也各种各样,非常适合用于数据展示。
在我的树莓派显示屏中,效果是这样的: