1. 程式人生 > >修正Percona Monitoring Plugins for Zabbix的一處指令碼Bug

修正Percona Monitoring Plugins for Zabbix的一處指令碼Bug

今天小試了一把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