1. 程式人生 > 資料庫 >MON-DB-mysql通過zabbix監控processlist數量

MON-DB-mysql通過zabbix監控processlist數量

本方案基本思路為先通過指令碼將mysql的processlist數量輸出至文字檔案,之後通過zabbix_agent的自定義引數方式獲取檔案內的值並傳輸至zabbix的伺服器端

 

1.mysql主從複製及同步延遲輸出至文字檔案

指令碼以及狀態文字檔案的存放路徑:/data/myscript   (可按需配置)

建立目錄

命令:mkdir /data/myscript

進入目錄

命令:cd /data/myscript

建立processlist數量記錄檔案

命令:touch processlist_num

建立指令碼檔案:mysql_processlist_monitor.sh

命令:vi mysql_processlist_monitor.sh

 

###新增如下內容###

#!/bin/bash
cd /data/myscript
/usr/local/mysql/bin/mysql -uroot -pXXXXXXXX -e "select count(*) from information_schema.processlist;"|awk '{print $(NF-1)}'|sed -n "2,2p" > processlist_num

###以上###

說明:

其中XXXX為mysql資料庫root使用者的密碼,建議建立一個只能檢視資料庫連線情況的賬號status_check。

/usr/local/mysql/bin/mysql 為mysql命令全路徑

 

為指令碼新增可執行許可權:

chmod +x mysql_processlist_monitor.sh

 

測試指令碼:

命令:/data/myscript/mysql_processlist_monitor.sh                       #執行指令碼

命令:more /data/myscript/processlist_num      #檢視是否有返回值

 

2.調整zabbix_agent配置,新增自定義引數

zabbix_agent配置檔案路徑:/usr/local/zabbix/etc/zabbix_agentd.conf

配置zabbix_agentd.conf

命令:vi /usr/local/zabbix/etc/zabbix_agentd.conf

###新增如下內容###

UserParameter=mysql_processlist_count,cat /data/myscript/processlist_num

###以上###

 

說明:

zabbix的自定義引數的格式為

UserParameter=key,command      #key為定義的鍵值,command為獲得返回引數的命令

通過定義mysql_processlist_count並讀取對應檔案獲取對應的返回值

 

 

重啟zabbix

1)儲存檔案後重啟zabbix_agent

命令:ps -ef|grep zabbix

 

2)獲取所有zabbix的程序,並使用 kill -9 命令清除zabbix程序

命令:kill -9  程序號

 

3)確認zabbix程序清除完畢後使用systemctl啟動zabbix

命令:systemctl start zabbix_agentd

 

4)檢查zabbix平臺上該伺服器是否有多的返回值

 

3.配置定時任務持續刷連線數狀態

命令:crontab -e

###新增如下內容###

*/5 * * * * /data/myscript/mysql_processlist_monitor.sh

###以上###

 

 

 

4.zabbix監控內容

zabbix平臺通過監控mysql_processlist_count的值實現告警

mysql.processlist_count的值若大於1200,觸發告警通知管理員