背景:mysql
zabbix自己提供了不少可選的監控項,能夠知足絕大部分的監控需求。有時候因爲業務需求,須要自定義監控項。 下面以建立mysql自定義監控項爲例,分享如何建立zabbix自定義監控項。web
環境說明:sql
zabbix版本:3.0.3 操做系統:CentOS 7 mysql版本:5.7.1數據庫
實現步驟: 一、修改 zabbix_agentd.conf,添加zabbix_agent 配置目錄,如下是我本機的zabbix的配置: 將如下行的註釋去掉服務器
#Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
變成:測試
Include=/usr/local/etc/zabbix_agentd.conf.d/*.conf
將此行註釋去掉後,zabbix_agentd啓動後會自動掃描/usr/local/etc/zabbix_agentd.conf.d/目錄下全部的.conf文件,並加載。操作系統
二、編寫監控腳本/usr/local/zabbix/zabbix-script/get_mysql_status.sh,腳本以下(腳本存放目錄能夠自定義):code
#!/bin/sh case $3 in uptime) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $2}' ;; threads) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $4}' ;; question) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $6}' ;; sq) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $9}' ;; open) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $11}' ;; ftable) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $14}' ;; opent) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $17}' ;; qps) mysqladmin -u$1 -p$2 status 2>/dev/nul | awk -F '[:| ]'+ '{print $22}' ;; *)
腳本說明,腳本須要輸入三個參數分別是:mysql用戶、mysql用戶密碼、mysql狀態各項指標以下: uptime:運行時長單位s、 threads:開啓的會話數、 question(questions):服務器啓動以來客戶的問題(查詢)數目 sq(Slow queries): 慢查詢數量 open(opens):服務器已經打開的數據庫表的數量 ftable(Flush tables):服務器已經執行的flush ...、refresh和reload命令的數量 opent(open tables):經過命令是用的數據庫的表的數量,以服務器啓動開始 qps(Queries per second avg):select語句平均查詢時間server
三、在/usr/local/etc/zabbix_agentd.conf.d/目錄下添加監控項配置文件get_mysql_status.conf,內容以下:圖片
UserParameter=get_mysql_status[*],/usr/local/zabbix/zabbix-script/get_mysql_status.sh $1 $2 $3
四、重啓zabbix_agent和zabbix_server,使用zabbix_get測試,以下:
#zabbix_get -s 127.0.0.1 -k get_mysql_status[root,weiming,open] 679
五、web端添加監控項: 在主機上添加監控項:
添加完成後能夠看到新增監控項以下:
添加圖形:
圖形預覽:
如何添加
觸發器這裏就不細說了!