自定义监控项

什么是监控项?

监控项:就是我们想要监控的指标,例如剩余内存,磁盘空间,服务的状态等等

每一个监控项,都有一个唯一的key,简洁明了(相当于shell脚本的变量名)

只需要安装zabbix-agent,默认就支持大量的监控项,但是linux模板并没有使用所有监控项

Template OS Linux by Zabbix agent主要监控了cpu,内存,磁盘,网卡,安全,它们都属于通用监控

应用集是监控项的分组

使用内置key监控nginx的状态
在这里插入图片描述
在这里插入图片描述
proc.num[nginx]这个键值主要是针对nginx的进程数量
在这里插入图片描述

(注意:添加监控项之前最好使用zabbix-get来测试取值)

#只在zabbix-server上安装
yum install zabbix-get -y
zabbix_get -s 127.0.0.1 -k proc.num[nginx]
#注释
-s 被监控主机的ip地址
-p 端口
-k 指定监控项的key

在zabbix-agent主机上修改一下agent2系统配置文件,不然在zabbix-server这个主机上使用不了zabbix-get

vim /usr/lib/systemd/system/zabbix-agent2.service
User=root
Group=root

使用自定义的监控项来监控NGINX
在zabbix-agent主机上修改agent配置文件

vim /etc/zabbix/zabbix_agent2.conf
UserParameter=nginx_status,netstat -lntp|grep -c nginx
(nginx_status 是自定义键值(监控项、key) netstat -lntp|grep -c nginx 是查看nginx启动了几个. 
总结起来来说就是看nginx启动了几个端口赋值给 nginx_status 这个自定义的监控项)

在zabbix-agent主机上重启agent生效

systemctl restart zabbix-agent2.service

使用zabbix-get测试取值

#只能在zabbix-server上执行
zabbix_get -s 10.0.0.8 -k nginx_status

在zabbix-server上
经过zabbix-agent测试后发现跟zabbix-server返回的值是一样的

使用自定义的监控项来监控NGINX 加强版
建议把agent自定义监控项独立成一个配置文件

vim /etc/zabbix/zabbix_agent2.d/zbx_nginx.conf
UserParameter=nginx_status,netstat -lntp|grep -c nginx
好处:可以复用,管理更加的方便

对应有规律的监控项

UserParameter=mysql_Uptime,echo 'show status;'|mysql -uroot|grep -w 'Uptime'|awk '{print $2}'
UserParameter=mysql_Com_select,echo 'show status;'|mysql -uroot|grep -w 'Com_select'|awk '{print $2}'
UserParameter=mysql_Com_delete,echo 'show status;'|mysql -uroot|grep -w 'Com_delete'|awk '{print $2}'
1

适合使用带参考的自定义监控项

UserParameter=mysql_define[*],echo 'show status;'|mysql -uroot|grep -w "$1"|awk '{print $$2}'
这里的$1是对应mysql_define[*]里面的那个*   $2依旧是取第二列的值

取值效果

[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k mysql_define[Uptime]
827
[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k mysql_define[Com_select]
1
[root@zabbix-server ~]# zabbix_get -s 10.0.0.8 -k mysql_define[Com_insert]
0

自定义触发器

什么是触发器?
触发器:设置一个报警条件(一个触发器至少对应一个监控值)

触发器表达式的格式:
例子one

{10.0.0.8:vfs.file.cksum[/etc/passwd].diff()}>0
主机:10.0.0.8
key值:vfs.file.cksum[/etc/passwd]
函数方法:diff() 对比两次监控项的值
如果两次对应的值大于了0 就报警 (是zabbix报警 不是生活中的报警)

例子two

{10.0.0.8:proc.num.last()}/{10.0.0.8:kernel.maxproc.last()}*100>80
10.0.0.8:proc.num:当前运行进程数量
10.0.0.8:kernel.maxproc 系统最大允许进程的数量
函数方法:last() 最新值   (生产中last()用的比较多,比如你的某个业务down掉了,监控项里用last()就会自己立即报警,不会墨迹)

例子3

{10.0.0.8:vm.memory.size[available].min(5m)}<{$MEMORY.AVAILABLE.MIN} and{10.0.0.8:vm.memory.size[total].last()}>0
函数方法 mim(5m) 五分钟之内最小的值, max(5m) 五分钟之内最大的值, avg(5m) 五分钟之内的平均值
{$MEMORY.AVAILABLE.MIN}=20m
and 同时
10.0.0.8:vm.memory.size[total] 最新的总内存大小
available和total是free -m 里的

自定义触发器表达
在这里插入图片描述
在这里插入图片描述
i[外链图片转存中…(img-TScQ2nfv-1612268750390)]

在这里插入图片描述

自定义报警

邮件报警
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
我这里测试的是网易邮箱为发件人,测试qq邮箱为收件人 测试成功之后就可以配置收件人了!

配置收件人:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
我这里在zabbix-agent上把NGINX给关闭了 用来测试的
在这里插入图片描述
如果你的QQ邮箱可以收到报警(不要误会是zabbix’的报警) 那恭喜帖子你顺利完成了

Logo

更多推荐