自定义监控项
zabbix本身提供了很多可选的监控项,可以满足绝大部分的监控需求。有时候由于业务需求,需要自定义监控项。 下面以创建mysql自定义监控项为例,分享如何创建zabbix自定义监控项。
例一:监控3306端口。
ZabbixClient-01上操作。
[root@ZabbixClient-01 ~]# cat >> /etc/zabbix/zabbix_agentd.d/userparameter_mysql.conf <<EOF > UserParameter=mysql.port_3306[*], HOME=/etc/zabbix netstat -nutl | grep -c -w '3306' > EOF
[root@ZabbixClient-01 ~]# systemctl restart zabbix-agent
ZabbixServer-01上操作。
[root@ZabbixServer-01 ~]# yum install -y zabbix-get [root@ZabbixServer-01 zabbix]# zabbix_get -s 172.16.70.171 -k "mysql.port_3306" 1
Zabbix Web设置,添加MySQL端口3306监控项。








例二:用于专们管理日常的一些服务等,在新建的模板上面创建对应服务的监控项、触发器、动作等。
ZabbixClient-01上操作。
# 修改配置文件
[root@ZabbixClient-01 ~]# cat >> /etc/zabbix/zabbix_agentd.conf << EOF
> EnableRemoteCommands=1 #允许接收远程命令
> LogRemoteCommands=1 #把接收的远程命令记入日志
> EOF
# 创建新目录
[root@ZabbixClient-01 ~]# mkdir /etc/zabbix/zabbix_script
# 新增获取服务状态脚本
[root@ZabbixClient-01 ~]# cat /etc/zabbix/zabbix_script/service_status.sh
#!/bin/bash
#zabbix 远程执行命令、重启应用 ssh、mysql、ntp、等
case $1 in
sshd)
result=`pidof sshd |wc -l`
echo $result
;;
ntpd)
result=`pidof ntpd |wc -l`
echo $result
;;
mysqld)
result=`pidof mysqld |wc -l`
echo $result
;;
*)
echo "Usage:$0(sshd|ntpd|mysqld)"
;;
esac
# 新增监控服务子配置文件
[root@ZabbixClient-01 ~]# cat /etc/zabbix/zabbix_agentd.d/userparameter_service.conf
# 获取服务运行状态
UserParameter=service.status[*], sh /etc/zabbix/zabbix_script/service_status.sh $1
# 赋予脚本执行权限
[root@ZabbixClient-01 ~]# chmod +x /etc/zabbix/zabbix_script/service_status.sh
[root@ZabbixClient-01 ~]# systemctl restart zabbix-agent
ZabbixServer-01上操作。
# 用命令进行测试 [root@ZabbixServer-01 ~]# zabbix_get -s 172.16.70.171 -k "service.status[sshd]" 1 [root@ZabbixServer-01 ~]# zabbix_get -s 172.16.70.171 -k "service.status[ntpd]" 1 [root@ZabbixServer-01 ~]# zabbix_get -s 172.16.70.171 -k "service.status[mysqld]" 1