zabbix自定義監控mysql主從狀態和延遲 zabbix自定義監控mysql主從狀態 | 主機IP|角色 | 主機名| | : | : :| : | |192.168.222.250 | zabbix_server|localhost| |192.168.222.251 |zabbix_agen ...
zabbix自定義監控mysql主從狀態和延遲
目錄
zabbix自定義監控mysql主從狀態
主機IP | 角色 | 主機名 |
---|---|---|
192.168.222.250 | zabbix_server | localhost |
192.168.222.251 | zabbix_agentd、mysql從庫 | slave |
192.168.222.252 | mysql主庫 | master |
配置環境監控服務zabbix部署,mysql主從可以看下麵的詳細的操作mysql進階,
mysql主從和監控服務zabbix部署
在agentd客戶端被(監控端)也就是mysql從庫裡面編寫腳本,獲取mysql主從狀態
[root@slave ~]# mkdir -p /scripts/zabbix
[root@slave ~]# cd /scripts/zabbix/
[root@slave zabbix]# vim mysql_MS_sta.sh
[root@slave zabbix]# cat mysql_MS_sta.sh
#!/bin/bash
count=$(mysql -u root -pxbz123 -e'show slave status\G' 2> /dev/null | grep -E "IO_Running:|SQL_Running:" | grep -c Yes)
//因為mysql使用密碼明文登錄會有告警,所以用錯誤重定向將他丟到黑洞里去 (/dev/null)
if [ $count == 2 ];then
echo "0" //0沒問題
else
echo "1" //1沒問題
fi
[root@slave zabbix]# chmod +x mysql_MS_sta.sh //賦予許可權
[root@slave zabbix]# ./mysql_MS_sta.sh //測試腳本
0 //沒問題
[root@slave zabbix]# vim /usr/local/etc/zabbix_agentd.conf
//編輯/usr/local/etc/zabbix_agentd.conf
UnsafeUserParameters=1 //修改
UserParameter=check_mysql_MS_sta,/bin/bash /scripts/zabbix/mysql_MS_sta.sh //添加
[root@slave zabbix]# pkill zabbix_agentd
[root@slave zabbix]# zabbix_agentd
//重啟zabbix_agentd
在服務端進行測試
[root@localhost ~]# zabbix_get -s 192.168.222.251 -k check_mysql_MS_sta
0
配置監控項
最後點擊下麵的add(添加)
配置觸發器
手動觸發告警
[root@slave ~]# mysql -uroot -pxbz123
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 19
Server version: 5.7.38 MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> stop slave; //在mysql從庫停掉主從複製
Query OK, 0 rows affected (0.00 sec)
mysql> start slave; //在mysql從庫開啟主從複製
Query OK, 0 rows affected (0.00 sec)
查看郵箱信息
zabbix自定義監控mysql主從延遲
[root@slave ~]# cd /scripts/zabbix/
[root@slave zabbix]# pwd //查看絕對路徑
/scripts/zabbix
[root@slave zabbix]# vim mysql_MS_delay.sh //編寫腳本
[root@slave zabbix]# cat mysql_MS_delay.sh
#!/bin/bash
delay=$(mysql -uroot -pxbz123 -e"show slave status\G" 2> /dev/null | awk '/Seconds_Behind_Master/ {print $2}')
echo $delay
//在agentd客戶端(被監控端),也就是mysql從庫編寫腳本,獲取mysql主從延遲數值
[root@slave zabbix]# chmod +x mysql_MS_delay.sh //賦予許可權
[root@slave zabbix]# ./mysql_MS_delay.sh //測試效果
0
[root@slave zabbix]# vim /usr/local/etc/zabbix_agentd.conf
UserParameter=check_mysql_MS_delay,/bin/bash /scripts/zabbix/mysql_MS_delay.sh //添加
//編輯zabbix_agentd的配置文件
[root@slave zabbix]# pkill zabbix_agentd
[root@slave zabbix]# zabbix_agentd
//重啟zabbix_agentd
在服務端測試
[root@localhost ~]# zabbix_get -s 192.168.222.251 -k check_mysql_MS_delay
0
//沒問題
配置監控項
點擊下麵的add(添加)
配置觸發器
等到mysql主從延遲大於200的時候發出告警(也有可能到不了200,那就預設0)
此處我的延遲到不了200,所以我預設0