Zabbix自定义监控&Grafana图表配置

2021-11-23 13:58:48 浏览数 (1)

zabbix是个很灵活的工具,对于一些涉及到业务逻辑的监控项,比如任务耗时,zabbix肯定无法全覆盖,但是它支持简单地自行配置。

自定义监控配置分为三步:

  1. 在监控的服务器上根据监控目标配置监控脚本;
  2. 重启zabbix-agent服务;
  3. 在zabbix-web添加自定义的监控项。

1.配置监控脚本

我们一步一步做,首先是在被监控服务器上配置监控脚本(当然你的被监控服务器当然应该是已经安装好了zabbix-agent并且在运行的)。

进入zabbix的目录,修改zabbix_agentd.conf配置文件(一般在.../zabbix-agent/etc/zabbix_agentd.conf)。直接拖到配置文件最末尾,添加上你要配置的自定义监控项,格式如下:

代码语言:javascript复制
UserParameter=<key>,<shell command>
  • <key>:是你要增加的自定义监控项的标识。
  • <shell command>:是你要实现监控所执行的命令,比如你要获取数据库某个数据,那这个命令就包含连接数据库以及获取数据的sql语句。如果你的命令太复杂,也可以写一个脚本文件,然后这里就放执行该脚本文件的指令。如果命令很短,那就可以直接放在这了。

举个例子,我想监控登录我服务器的用户连接数,这个目的通过sh指令:

代码语言:javascript复制
# who|wc -l
3

就能够做到,所以我们直接在zabbix_agentd.conf文件的最后一行加上:

代码语言:javascript复制
UserParameter=connect_user,who|wc -l

然后保存配置文件就好。

2.重启zabbix-agent

配置好后,新添加进去的配置内容是不能直接生效的,需要重启agent才可以。

重启zabbix-agent的方法网上有很多种,常见的有:

代码语言:javascript复制
# systemctl restart zabbix-agent.service
# ----------------------------
# sudo killall zabbix_agentd
# zabbix_agentd
# ----------------------------
# service zabbix-agent restart
# ----------------------------
# /etc/init.d/zabbix-agent restart
# ----------------------------
# killall zabbix_agentd
# /usr/local/sbin/zabbix_agentd

找到了上面五种重启方法,有的是直接重启的命令,有的是先杀进程然后启动,但我尝试的时候都无法奏效,最后尝试成功的方法也是先杀死进程,然后再启动:

代码语言:javascript复制
# ps aux | grep zabbix # 检查进程,得到agent相关进程id
# kill pid # 杀进程
# zabbix-agent/sbin/zabbix_agentd -c zabbix-agent/etc/zabbix_agentd.conf # 启动agent,同时制定配置文件
# ps aux | grep zabbix # 可以再检查一次看有没有启动

重启之后,理论上只要你的写在配置文件里的指令没有错,那就可以奏效了。还有一个方法是在zabbix-server服务器上用zabbix_get命令来做测试:

代码语言:javascript复制
zabbix_get -s X.X.X.X -p 10050 -k connect_user

这个命令只能在server端用,在agent端用会报错。

上面的-s是服务器ip,-p是端口号,-k是你写在配置文件中的对应key。

3.在zabbix-web添加监控项

现在打开zabbix-web:

选择配置(Configuration)-->主机(Hosts),在你配置过的主机后选择监控项(Items),在右上角选择创建监控项(Create Item)。

填写一些信息,名称取自己理解的,key则一定要填你写在配置文件中的key值。Type可以选择对应的数据类型,Units单位可有可无,Update interval是获取监控值的时间间隔,不建议填太短,以免造成压力,History storage period历史保留周期太长的话数据量会越来越大,其他的看需要填就好。Application应用集是方便你管理多个监控项的。

填完后点击Add就会成功添加了。

创建zabbix-web监控图

这时候我们还无法看到数据,我们需要去创建一个Graph图才能看到数据,在我们选择Items监控项的旁边,选择Graphs,然后选择Create Graph,进入如下界面:

名字还是取自己理解的,然后我们需要在最下面的Items框中添加我们图表中要显示的监控项,这里就是我们刚才创建的connect_user。其他的配置可以自己配,点击上方的Preview可以预览图表,这时候如果你的监控配置是成功的话,是会显示实时数据的。

点击最下面的Add后就添加成功了。

创建Grafana监控图

如果想要更好看的图表,那就需要去Grafana配置了,这里默认你已经搭建了基于zabbix数据的Grafana服务,具体内容本文不细表。

进入Grafana,选择你要添加图表的面板(Dashboard),点击按钮添加Graph:

在出现的初始图表界面中,点击标题然后选Edit:

首先改图表名字,在General标签栏下改Title的值:

然后进到Metrics标签页,修改Data Source,然后依次选择Group、Host、Application、Item。这些都是你在zabbix-web配置时的值,选中前一项后,点击后一项的文本框时,自动会出现可选的值,如果没有出现你新加的配置项,刷新看看:

这时候你如果之前在zabbix-web配置Graph时能看到图像数据的话,这里也能看到了,而且更好看,点击图例中的线条说明,可以改变线条的颜色。

另外一个可能用到的是Axes标签页,这里可以修改坐标轴的显示,在Unit框中可以选择单位,比如你要监控耗时,这里最好选择time里的时间单位,另外Y-Min和Y-Max文本框可以设置纵坐标的范围,依需要可以自行设置:

全部设置完后记得在最上面保存。

此时就配好了一个自定义监控项的监控图了,在Alert标签页中可以配置邮件报警,另外也可以自己写脚本实现单个图表或者整个面板图(Dashboard)的日报邮件,具体可以参考我这篇文章:Grafana单图表告警邮件&面板图(Dashboard)日报邮件

0 人点赞