zabbix自定義key監控mysql
阿新 • • 發佈:2018-12-18
我們可以使用mysqladmin去監控mysql,獲取mysql的各個效能指標。
一,在監控前需要開啟一項zabbix_agent的配置,因為我是編譯安裝,所以我的配置檔案的位置可能和你的位置不一樣。
vim /usr/local/zabbix/etc/zabbix_agentd.conf 開啟下面的註釋: Include=/usr/local/zabbix/etc/zabbix_agentd.conf.d/*.conf 後面的路徑是可以自己定義的,建議為zabbix安裝的路徑 vim /usr/local/zabbix/etc/zabbix_agentd.conf.d/zabbix.conf 這裡的路徑就是上面自己定義的路徑,檔案的命名看個人喜好,結尾必須是conf,在文本里面新增一下內容: UserParameter=mysql_status[*],/usr/local/zabbix/shell/mysql_status.sh "$1" 重啟zabbix_agent
建立一個存放指令碼的路徑(為了規範,建立到安裝zabbix的路徑命名為shell) mkdir /usr/local/zabbix/shell
vim /usr/local/zabbix/shell/mysql_status.sh 添如下指令碼: # 資料連線 MYSQL_CONN="/usr/bin/mysqladmin --defaults-extra-file=/etc/my.cnf" # 引數是否正確 if [ $# -ne "1" ];then echo "arg error!" fi # 獲取資料 case $1 in Uptime) result=`${MYSQL_CONN} status|cut -f2 -d":"|cut -f1 -d"T"` echo $result ;; Com_update) result=`${MYSQL_CONN} extended-status |grep -w "Com_update"|cut -d"|" -f3` echo $result ;; Slow_queries) result=`${MYSQL_CONN} status |cut -f5 -d":"|cut -f1 -d"O"` echo $result ;; Com_select) result=`${MYSQL_CONN} extended-status |grep -w "Com_select"|cut -d"|" -f3` echo $result ;; Com_rollback) result=`${MYSQL_CONN} extended-status |grep -w "Com_rollback"|cut -d"|" -f3` echo $result ;; Questions) result=`${MYSQL_CONN} status|cut -f4 -d":"|cut -f1 -d"S"` echo $result ;; Com_insert) result=`${MYSQL_CONN} extended-status |grep -w "Com_insert"|cut -d"|" -f3` echo $result ;; Com_delete) result=`${MYSQL_CONN} extended-status |grep -w "Com_delete"|cut -d"|" -f3` echo $result ;; Com_commit) result=`${MYSQL_CONN} extended-status |grep -w "Com_commit"|cut -d"|" -f3` echo $result ;; Bytes_sent) result=`${MYSQL_CONN} extended-status |grep -w "Bytes_sent" |cut -d"|" -f3` echo $result ;; Bytes_received) result=`${MYSQL_CONN} extended-status |grep -w "Bytes_received" |cut -d"|" -f3` echo $result ;; Com_begin) result=`${MYSQL_CONN} extended-status |grep -w "Com_begin"|cut -d"|" -f3` echo $result ;; ping) result=`mysqladmin --defaults-extra-file=/etc/my.cnf ping 2>&1|/usr/bin/grep -c alive` echo $result ;; *) echo "Usage:$0(ping|Uptime|Com_update|Slow_queries|Com_select|Com_rollback|Questions|Com_insert|Com_delete|Com_commit|Bytes_sent|Bytes_received|Com_begin)" ;; esac
新增完成以後需要授權。
chown -R zabbix.zabbix /usr/local/zabbix/*
chmod +x /usr/local/zabbix/shell/mysql_status
二,操作完以上步驟以後我們需要一個mysql的配置檔案裡面新增一個賬號和密碼
登入mysql
grant process,reload,replication client,super on *.* to 'status'@'localhost' identified by '123456789'; 設定一個可以查詢的使用者,僅限本地登入 重新整理許可權 flush privileges;
vim /etc/my.conf
新增如下內容:
[client]
host=localhost
user=status
password='[email protected]@'
三,切換使用者為zabbix,執行mysql_status.sh指令碼,檢視指令碼以及各個引數是否正常
四,到zabbix服務端get資料,看能否正常獲取
zabbix -s 192.168.26.20(zabbix_agent的ip) -k mysql_status[引數]
五,新增模板