自定義監控項
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