Zabbix监控数据库连通性所遇问题

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

原文地址:https://www.cnblogs.com/jjzd/p/7068509.html