修正Percona Monitoring Plugins for Zabbix的一處指令碼Bug
阿新 • • 發佈:2018-11-16
今天小試了一把Percona Monitoring Plugins for Zabbix模板,自己辛辛苦苦寫的那一大堆Python指令碼,貌似用這個模板全都覆蓋到了。
但是,我也發現最新的版本percona-monitoring-plugins_1.1.8也還是存在一個問題,那就是用於Mysql Replication的Slave Running和Slave Stopped監控項的資料不正確(一般情況下,兩項資料均維持在0)。
經檢查相關模板的指令碼檔案ss_get_mysql_stats.php,發現用於獲取Slave Running和Slave Stopped監控項的指令碼邏輯有問題。
相關指令碼內容為:
$status['slave_lag'] = $row['seconds_behind_master']; ...... $status['slave_running'] = ($row['slave_sql_running'] == 'Yes') ? $status['slave_lag'] : 0; $status['slave_stopped'] = ($row['slave_sql_running'] == 'Yes') ? 0 : $status['slave_lag'];
可見當slave_sql_running為Yes時,slave_running的取值是seconds_behind_master,slave_stopped的取值是0。
當slave_sql_running為No時,slave_running的取值是0,slave_stopped的取值是seconds_behind_master。
這裡我將指令碼中$status['slave_lag']更改為了1:
$status['slave_lag'] = $row['seconds_behind_master']; ...... $status['slave_running'] = ($row['slave_sql_running'] == 'Yes') ? 1 : 0; $status['slave_stopped'] = ($row['slave_sql_running'] == 'Yes') ? 0 : 1;
修改後監控資料正常了。
本文地址:https://www.cnblogs.com/ajiangg/p/9968990.html