自定义监控项
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