我们在上篇博客介绍了zabbix的安装配置步骤和简单的action,触发器,模块等功能,我们这里来介绍下zabbix的自动发现,自动注册,web监控,自定义监控等功能!
一、自定义key值
我们先来定义一个模板,方便后面实验的配置.
- 创建个名为test template的模板
- 添加监控项目,并使用自定义的key值
编辑/usr/local/zabbix/etc/zabbix_agentd.conf配置文件,定义key
[root@mogilefs2 ~]# vim /usr/local/zabbix/etc/zabbix_agentd.conf
//在最后添加此内容:
UserParameter=memory.usage[*],/bin/cat /proc/meminfo | awk '/^$1:/{print $$2}'
这样,自定义key就定义完成,可以调用了!
(注:如果要多台主机上调用自定义的key,需要在各个主机上的agent配置文件中添加UserParameter语句)
好了,我们继续来完善这个模板!
- 添加触发器!
- 添加图形.
到此,基于自定义key的模板已经配置完成!
这里来介绍下zabbix常用的key和自定义key
1、监控端口的:net.tcp.port[,3306]
net.tcp.port[,3306] 返回1为3306端口存在,0为不存在
2、监控进程的:proc.num[mysqld]
proc.num[mysqld] 返回值为mysqld的进程数量
3、查看CPU核数的:system.cpu.num 返回值为服务器CPU的核数
4、查看系统的系统启动时间和当前时间:system.boottime、system.localtime 返回值为系统启动时间和当前时间,为时间戳格式
5、查看系统的简单信息:system.uname 返回值为系统信息,类似于linux系统的uname -a命令
6、查看windowns系统当前网卡的进出流量:
net.if.out[{HOST.NAME},bytes]、net.if.in[{HOST.NAME},bytes]和linux系统的key:net.if.out[eth0,bytes]、net.if.in[eth0,bytes]一样
7、查看系统内存大小:vm.memory.size[total],返回值单位bytes
8、查看文件的大小: vfs.file.size[file] 如: vfs.file.size[/var/log/syslog] 返回的是/var/log/syslog的大小,单位是:bytes
9、查看文件是否存在:vfs.file.exists[file] 文件如果存在返回0,不存在返回1
10、查看文件的MD5:vfs.file.md5sum[file]查看小文件的MD5,返回为MD5值(好像只有2.0以上的版本有这个key)
11、自动发现网卡并监控流量和自动发现分区及分区挂载情况的两个key:net.if.discovery,vfs.fs.discovery,windows和linux监控模板中都有这模板(2.0以上版本),应用即可
以上是常用的key,其实监控服务器无非就是内存、硬盘占用、CPU负载、流量、服务器和端口等情况。如果要监控其他的可以自定义key来实现,本人喜欢自定义key,写个脚本来返回,得到自己想要的监控结果,zabbix在这块做的非常好,扩展性很强,支持各种脚本来实现自定义的key。
12、自定义key
要启用自定义key,需要在客户端的配置文件中agent启用UnsafeUserParameters=1参数,然后在配置文件的最下面来定义key,如:
UserParameter=free.disk,/usr/local/zabbix/bin/disk.py
free.disk为key的名字,/usr/local/zabbix/bin/disk.py为服务器端调用free.disk这个key时执行的脚本,其结果就是free.disk的返回值。脚本可以是任何可以运行的脚本语言。
注意:脚本要用绝对路径,注意脚本的权限,写的脚本返回值要尽量简单,这样方便设置报警值。
二、zabbix的自动发现
- 添加发现规则
参数简介:
名称:自动返现规则的名称
IP范围:自动发现主机所在的地址段
延迟:扫描网段的时间间隔
检查:检测符合如下规则的主机
设备唯一性:设备认证标识,用于添加被发现主机的名称
- 添加发现动作,从而添加主机
当发现主机时,可以自动添加主机并且链接模板,使之快速上线监控之!
- 添加移除动作
当主机不在线时,我们需要让它自动下线,因此,还要添加一条移除动作
- 定义自动注册动作
测试发现,当主机agent服务下线再上线时,上面这些规则不能自动重新使之上线监控,因此还需要添加一条自动注册动作,使其主机故障修复后,可以自动注册继续上线!
- 测试
注:如果有以前自动添加的主机,可以先把主机删掉,然后看他是否自动发现,并添加主机
- 我们让其中一条的agent服务停止,看是否自动下线!
[root@mogilefs2 ~]# killall zabbix_agentd
从图看出,已经自动下线了!
- 让agent服务启动,看是否自动注册!
[root@mogilefs2 ~]# cd /usr/local/zabbix/sbin/
[root@mogilefs2 sbin]# ./zabbix_agentd
从上图看来,已经实现自动注册了!
https://blog.51cto.com/584014981/1412943