【作业】

自定义监控项,使zabbix-server可以对被监控端的内存进行检测,如果被监控端的内存使用超过90%则报警,并发送邮件

新建文件,自定义监控项,也就是我们自己写监控项,需要在被监控端的/etc/zabbix/zabbix_agentd.d/目录下。

1
[root@zabbix-server ~]# vi /etc/zabbix/zabbix_agentd.d/userparameter_mem.conf

1
UserParameter=mem_status,free -m | awk 'NR==2{printf $3/$2*100}'|awk -F . '{printf $1}'

其中UserParameter=mem_status是给自定义的监控项起个名字,锐变都可以。后半段其实就是把free -m得到的结果管道给后边,然后利用awk扣出我们想要的东西,第二行的第三列是已使用内存,第二行第二列是总内存,前者除以后者*100%即可得出内存使用率。这里是 *100。然后会得到结果。如果觉得小数看的不美观可以再次管道,使用awk -F以.作为分隔符最终输出整数。当然也可以保留两位小数,具体实现如下。

1
2
3
free -m| awk 'NR==2{print $3/$2*100}'#正常输出
free -m| awk 'NR==2{printf ("%.2f"), $3/$2*100}'#保留两位小数
free -m | awk 'NR==2{printf $3/$2*100}'|awk -F . '{printf $1}'#保留整数部分

然后在zabbix创建对应监控项和触发器即可,监控项名称要与文件中的自定义监控项的名字一致。需要邮件报警的话就继续创建动作进行一系列设置即可,此处不再赘述!

友情提示:记得关闭防火墙,还有就是确认好被监控机器是哪一台,是自己监控自己还是监控别人。然后去修改对应的被监控节点的配置文件,如果对配置文件进行了修改记得重启zabbix-agent服务。

配置文件即如下:

1
2
3
4
5
6
7
[root@zabbix-agent-node1 ~]# cd /etc/zabbix/
[root@zabbix-agent-node1 zabbix]# vim zabbix_agentd.conf ----修改如下
Server=192.168.153.147 zabbix监控端的地址
ServerActive=192.168.153.147 主动模式 zabbix-server-ip
Hostname=zabbix-agent-none1
UnsafeUserParameters=1 是否限制用户自定义 keys 使用特殊字符 1是可以启用特殊字符 0是不可以启用特殊字符
EnableRemoteCommands=1 是否允许别人执行远程操作命令,默认是禁用的,打开的话会有安全风险.

重启zabbix-agent服务:

1
[root@zabbix-agent-node1 ~]# systemctl restart zabbix-agent