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