Zabbix配合db2bp監控DB2數據庫能否遠程連接問題分析:
所遇問題,有時監控一直獲取不到數據,原因是connect to連接超時了,zabbix默認監控腳本獲取數據時間是3s,但最多支持30s,而connect to會超時一分多鍾,並且db2 connect to時,我並沒有找到控制連接超時的參數:
Zabbix Server連接數據庫時,重新分析情況:
1、connect to 立即返回結果,可能服務端口不通,可能連接成功。
1.1 服務端口不通時再次判斷
1.2 連接成功時再次判斷
2、connect to 連接超時,肯定異常。
於是修改腳本如下:
#連接數據庫測試
db2 connect to $1 user ${USER} using ${PASS} &> /dev/null &
#給出5s連接時間
sleep 5
#判斷是否連接進程是否還在
kill -0 $! &> /dev/null
#立即返回結果,說明進程不在,有可能服務端口不通,有可能連接成功
if [ $? -ne 0 ]; then
db2 connect reset &> /dev/null
#再次測試時,已經排除連接超時的可能性,所以不給連接時間
db2 connect to $1 user ${USER} using ${PASS} &> /dev/null
#連接成功
if [ $? -eq 0 ]; then
echo "1"
db2 connect reset &> /dev/null
#連接失敗
else
echo "0"
fi
#5s后進程還在,說明連接超時
else
echo "0"
eval 'kill -9 $!' &> /dev/null
fi
Zabbix修改超時時間:
zabbix_agentd.conf
### Option: Timeout # Spend no more than Timeout seconds on processing # # Mandatory: no # Range: 1-30 # Default: # Timeout=3 Timeout=9
zabbix_server.conf
### Option: Timeout # Specifies how long we wait for agent, SNMP device or external check (in seconds). # # Mandatory: no # Range: 1-30 # Default: # Timeout=3 Timeout=10
重啟zabbix_agentd和 zabbix_server
