如何让zabbix监控web端口服务

发布网友 发布时间:2022-04-22 14:57

我来回答

1个回答

热心网友 时间:2022-04-12 00:12

 基本知识准备:
  1、SNMP(简单网络管理协议)
  2、一些脚本知识,可以编写任意一种脚本。
  3、知道Nagios怎么用。

  好啦,现在开始:
  1、编写一个可以输出本机Nginx并发连接数的脚本,输出结果为连接数。我这里脚本比较简单,只是看看已经链接80端口的。当然也可以自己编写更精确的脚本。
  [root@webserver2 scripts]# cat showhttp.sh
  #!/bin/bash
  echo `netstat -nat | grep -i "80" | wc -l`

  2、配置snmp,如何安装我就不说的,自己去弄呗。
  yum install net-snmp* 我是这么安装的。
  看下我的snmp配置文件:
  [root@webserver2 ~]# grep -v '^#' /etc/snmp/snmpd.conf | grep -v '^$'
  com2sec notConfigUser default public
  group notConfigGroup v1 notConfigUser
  group notConfigGroup v2c notConfigUser
  view systemview included .1.3.6.1.2.1.1
  view systemview included .1.3.6.1.2.1.25.1.1
  view systemview included .1.3.6.1.4.1.2021
  access notConfigGroup "" any noauth exact systemview none none
  syslocation Unknown (edit /etc/snmp/snmpd.conf)
  syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
  pass .1.3.6.1.4.1.4413.4.1 /usr/bin/ucd5820stat
  exec .1.3.6.1.4.1.2021.51 showhttp /bin/bash /root/scripts/showhttp.sh
  然后重载下snmp的配置文件。
  /etc/init.d/snmpd reload
  使用snmpwalk测试下,能不能通过snmp来获取数据。
  [root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 .1.3.6.1.4.1.2021.51
  UCD-SNMP-MIB::ucdavis.51.1.1 = INTEGER: 1
  UCD-SNMP-MIB::ucdavis.51.2.1 = STRING: "showhttp"
  UCD-SNMP-MIB::ucdavis.51.3.1 = STRING: "/bin/bash /root/scripts/showhttp.sh"
  UCD-SNMP-MIB::ucdavis.51.100.1 = INTEGER: 0
  UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: "7"
  UCD-SNMP-MIB::ucdavis.51.102.1 = INTEGER: 0
  UCD-SNMP-MIB::ucdavis.51.103.1 = ""
  [root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 showhttp
  showhttp: Unknown Object Identifier (Sub-id not found: (top) -> showhttp)
  [root@webserver2 ~]# snmpwalk -v 1 -c public 192.168.137.102 .1.3.6.1.4.1.2021.51.101.1
  UCD-SNMP-MIB::ucdavis.51.101.1 = STRING: "5"
  至此位置,snmp就配置好了。至于原理,google、一大堆。限于自己的表述能力和打字速度就不在此复述了。

  下面我登录nagios的监控机,来监控这台机器的http连接数量。
  2、首先安装nagios,这里跳过。
  3、先写个如下脚本,获取被监控的设备的snmp值。
  [root@webserver2 libexec]# cat show_http
  #!/bin/bash

  OID='.1.3.6.1.4.1.2021.51.101.1'
  IPADDRESS=$2
  COMMUNITY=$1

  if [[ -z $IPADDRESS ]] || [[ -z $COMMUNITY ]]; then
  echo "Mabe ... ...Usage: show_http <COMMUNITY> <IPADDRESS>"
  exit 4
  fi
  counts=`snmpwalk -v 1 -c $COMMUNITY $IPADDRESS $OID 2>/dev/null | awk -F'"' '{print $2}'`

  if [ -z $counts ]; then
  echo "Mabe snmpd is down OR ipaddress error OR community fault."
  exit 4
  fi

  if [ $counts -ge 200 ]; then
  echo "Cirtical - connection - $counts"
  exit 2
  elif [ $counts -ge 100 ]; then
  echo "Warning - connection - $counts"
  exit 1
  else
  echo "OK - connection - $counts"
  exit 0
  fi

  3、最nagios进行一些配置:
  define command{
  command_name check-host-alive
  command_line $USER1$/show_http nagios $HOSTADDRESS$ #添加一条命令,参数是团体名和主机地址,团体名,我直接用了nagios。为了可扩展性的考虑,大家也可以使用resources文件来定义。这里不再复述。
  }

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com