超详细zabbix 监控项,自定义触发器,自定义报警
自定义监控项什么是监控项?监控项:就是我们想要监控的指标,例如剩余内存,磁盘空间,服务的状态等等每一个监控项,都有一个唯一的key,简洁明了(相当于shell脚本的变量名)只需要安装zabbix-agent,默认就支持大量的监控项,但是linux模板并没有使用所有监控项Template OS Linux by Zabbix agent主要监控了cpu,内存,磁盘,网卡,安全,它们都属于通用监控应用
自定义监控项
什么是监控项?
监控项:就是我们想要监控的指标,例如剩余内存,磁盘空间,服务的状态等等
每一个监控项,都有一个唯一的key,简洁明了(相当于shell脚本的变量名)
只需要安装zabbix-agent,默认就支持大量的监控项,但是linux模板并没有使用所有监控项
Template OS Linux by Zabbix agent主要监控了cpu,内存,磁盘,网卡,安全,它们都属于通用监控
应用集是监控项的分组
使用内置key监控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
使用自定义的监控项来监控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’的报警) 那恭喜帖子你顺利完成了
更多推荐
所有评论(0)