zabbix監控mysql多實例和mariadb自定義腳本及其部署

最近新部署zabbix監控,發現有很多DB服務器都是mysql多實例的狀態,mpm默認的mysql監控無法有效的監控mysql的運行狀態和複製關係,故針對雙實例的mysql製作的手工的zabbix腳本監控如下

首先新建新的zabbix的mysql多實例監控模板,操作如下


wKioL1XRf9vhva2WAAHJ_mhsLvI251.jpg

名稱 爲模板信息名稱 

類型 因爲使用的腳本出發所以修改成zabbix捉捕器

鍵值 腳本返回的信息,可以爲數值,也可以是字元,這裏定義爲字元

數據類型 字元



同時也可以設置主動捕捉,如下:監控多實例端口狀態

wKiom1XRffPhtZIlAAHSoKHadRo386.jpg

名稱 爲模板信息名稱 

類型 因爲是master去觸發,所以設置成斷點代理程式(主動式)

鍵值 腳本返回的信息

數據類型 數字的



之後去針對相應的模板設置報警信息即 觸發器

wKioL1XRgB-QM5p7AADI6pXtlY8274.jpg


根據腳本中獲得以及master主動觸發獲得的狀態值定義觸發器,根據取值的不同變更狀態,如上圖,slave狀態分爲

0   正常

null slave複製停止

>1000   複製延遲,顯示延遲時間

端口狀態 0爲異常報警   up爲正常。



腳本內容如下

################################### 3359 ##################################

### SLAVE STATUS ###

status59=`mysql -uzabbix -pzabbix --sock '路徑' -e "show slave status \G" | grep Behind | awk -F ':' '{print $2}'`

if [ ${status59} = 0 ]

then

     zabbix_sender --zabbix-server zabbix-master-ip  --port 10051 --host hostname --key MySQL.3359slave-check  --value '0'

else

 if [ ${status59} = null ]

 then

      zabbix_sender --zabbix-server zabbix-master-ip --port 10051 --host hostname --key MySQL.3359slave-check  --value '99999999'

 else

       zabbix_sender --zabbix-server zabbix-master-ip --port 10051 --host hostname --key MySQL.3359slave-check  --value "$status59"

 fi

fi

################################### 3360 ##################################

### SLAVE STATUS ###

status60=`mysql -uzabbix -pzabbix --sock '路徑' -e "show slave status \G" | grep Behind | awk -F ':' '{print $2}'`

if [ ${status60} = 0 ]

then

       zabbix_sender --zabbix-server zabbix-master-ip  --port 10051 --host hostname --key MySQL.3360slave-check  --value '0'

else

        if [ ${status60} = null ]

        then

               zabbix_sender --zabbix-server zabbix-master-ip  --port 10051 --host hostname --key MySQL.3360slave-check  --value '99999999'

        else

              zabbix_sender --zabbix-server zabbix-master-ip  --port 10051 --host hostname --key MySQL.3360slave-check  --value "$status60"

        fi

fi







也可以監控mariadb的多源複製狀態,在腳本內容中先指定set @@default_master_connection='name';之後獲得單個slave的狀態信息,同mysql。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章