hyperv 发表于 2018-1-2 10:40:23

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
页: [1]
查看完整版本: Zabbix监控数据库连通性所遇问题