目录
一、环境准备
二、使用模板监控
1、添加监控主机
2、设置应用监控模板
3、查看监控数据
三、自定义监控
1、配置自定义监控key
2、创建自定义监控模板、应用集、监控项和图形
2.1、监控模板、应用集、监控项介绍
2.2、创建监控模板
2.3、给自定义模板添加应用集、监控项和图形
3、查看监控数据
zabbix基础环境部署参照:zabbix基础环境部署_桂安俊@kylinOS的博客-CSDN博客
以下实验部署均基于上述环境。
下面自带的一个监控记录是zabixserver自己监控自己,但是服务没有启用,点击状态可以切换启用。
添加被监控客户端:
如下可以看到添加的web1监控主机,但是监控项是0项,这里只是添加了主机,还没有设置监控项:
为web1主机添加关联的监控模板:
如下图可以看到,在给web1关联了zabbix自带的Linux OS标准模板后,被监控web1主机有了32个监控项:
选择“监测中”--->“最新数据”--->选择主机,如果主机比较多,可以先选择“主机群组”,然后在群组里找到指定主机,选择完后点“应用”:
选择应用后,可以看到下面有了监控数据:
监控数据页面是自动刷新的,刷新时间可以自己设置:
可以图形化查看,比如下图选择查看cpu一分钟负载,选择后点后面图形,因为中文这边会有显示问题,所以切换回英文:
可以在web1执行一个死循环脚本,是cpu负载上升:
while :; do echo a; echo b; done
可以看到,cpu负载明显上升:
上述使用的是zabbix自带的模板进行主机监控,监控的数据也是模板里固定的数据,无法满足每个场景具体的、个性化的需求,这就需要使用自定义监控。
zabbix的自定义监控,默认是不开启的,需要修改配置文件,然后才可以编写自定义监控脚本。
第1步:修改被监控端的Agent配置文件(在被监控端操作):
#以web1主机为例
vim /usr/local/etc/zabbix_agentd.conf
修改如下参数:
UnsafeUserParameters=1 #取消注释,设置是否允许自定义支持特殊符号,1允许,0不允许
Include=/usr/local/etc/zabbix_agentd.conf.d/ #取消注释,加载配置文件目录,后面自定义监控的命令或脚本都得放在该目录下
第2步:创建自定义key(在被监控端操作):
(以下以web1主机为例):
#count.line.passwd是自定义key名称,该文件不存在,需要新建
vim /usr/local/etc/zabbix_agentd.conf.d/count.line.passwd
添加如下内容,监控内容为获取当前系统用户数量:
#自定义key语法格式:UserParameter=自定义key名称,命令
#sed -n '$=' /etc/passwd是自定义监控命令,这里是统计passwd文件最后一行行号,即监控系统用户数量,也可以换成自定义脚本
UserParameter=count.line.passwd,sed -n '$=' /etc/passwd
重启Agentd:
#关闭agentd
killall zabbix_agentd
#启动agentd
zabbix_agentd
测试自定义key是否生效:
#zabbixserver向被监控端获取监控数据就是使用的zabbix_get命令,-s是被监控目标IP,-k后面跟监控项名称
zabbix_get -s 127.0.0.1 -k count.line.passwd
如上能够获取到执行结果,表示成功。
【常见报错】:
如在执行zabbix_get提示:Check access restrictions in Zabbix agent configuration
说明该主机没有权限去监控目标主机,需要检查目标主机(被监控端)的agent客户端配置,有没有将监控服务端主机IP加入进去,配置文件如下:
vim /usr/local/etc/zabbix_agentd.conf #对于配置内容如下:
Server=127.0.0.1,192.168.2.10
ServerActive=127.0.0.1,192.168.2.10:10051
上面只是创建了一个监控项,后面还需要使用zabbix页面去调用,一个正式的自定义监控项的添加流程应该是:创建监控模板--->创建应用集--->添加监控项,如下图:
如上图,先创建一个监控模板,名为cluster,再创建一个应用集1,应用集1里再去添加具体的监控项,当然如果这个模板里的监控项比较少的话,可以不用应用集,直接将监控项放在模板里面,应用集只是一个分组的概念,方便监控项多的时候,进行分组管理,可以快速查询。
如下图,在查看监控项的时候,下面的CPU、Filesystems黑色加粗项就是一个个应用集,应用集里面包含了同一类的若干具体监控项:
根据上述添加流程,我们需要先创建一个监控模板
登录zabbix服务器管理页面:
选择 配置--->模板--->创建模板
如上,这里创建一个count.line.passwd监控模板,然后放到一个新建组count.line.passwd里,完成之后选择最下面的添加。
添加完成后,可以看到做了一个刚刚新建的模板,但是这个模板是空的,里面没有应用集和监控项:
第1步:创建应用集
先创建应用集,点击监控模板后面对应的应用集:
选择创建应用集:
回到刚刚的所有模板页面,可以看到新建的count.passwd模板里多了一个应用集:
第2步:创建监控项
点击监控项,进行添加具体监控项:
默认没有监控项,选择创建监控项:
如下图所示,监控项名称自定义;类型是选zabbix客户端,因为客户端的count.line.passwd是zabbix agent客户端提供;键值这里不能自定义,一定要和客户端在创建key的时候zabbix_agentd.conf.d/count.line.passwd文件中的UserParameter字段的等于号后面的字段一致,这里是count.line.passwd;信息类型的话根据实际监控项返回内容选择,这里是获取系统用户数量,是数字类型;下面更新间隔、历史数据保留时长、趋势存储时间等无特殊需求使用默认值就可以;应用集是将该监控项归属到之前创建的应用集;配置完成后,选择最下面的添加:
添加完成后,返回到所有模板页面,可以看到多了一个监控项:
第3步:创建图形
如上有了应用集、监控项,还需要再添加一个图形:
创建图形:
第4步:将监控模板和被监控主机绑定
以上是创建了一个基础监控模板,剩下就是将模板和被监控主机绑定,实现自动监控:
点击配置--->主机--->被监控主机web1
选择web1模板:
选择模板:
勾选完后需要选添加,才将模板正式添加给主机:
添加完后,选择更新:
以上配置好自定义监控内容后,可以实现查看自定义监控数据了,可以看到监控web1的count_line_passwd_item的值,即实时用户数:
也可以图形化查看折线图:
测试:可以给被监控主机web1创建几个用户,观察zabbixserver的监控数据是否会实时变化:
#在web1执行,创建10个用户
for i in {1..10}; do useradd testuser$i; done
可以看到监控的用户数量数据由46变成了56,折线图也发生了变化: