如何利用SNMP来获取监控数据

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何利用SNMP来获取监控数据相关的知识,希望对你有一定的参考价值。

利用工具实现,开源SNMP工具SugarNMSTool是带拓扑图界面的,可在Windows、Linux、Unix系统上快速运行。可进行设备和链路的自动发现,可以按IP起始范围、路由跳转搜索、IP漫游发现等方式,发现设备,并识别设备的基本类型,通过LLDP、CDP、ICMP、生成树协议等物理拓扑发现技术,发现设备的物理链接,在图形界面上自动生成设备拓扑图;设备和链路手工编辑,除自动发现外,还可以手工添加、删除、修改网络设备和链路。用工具自动发现出设备内部的网口、光口、电口、磁盘、内存、CPU、软件服务等资源信息,进一步了解设备的内部状态。工具自带了SNMP TRAP服务,可以接受SNMP TRAP信息,并自动在界面上显示TRAP的详细信息。工具自带了MIB 浏览器功能,支持导入其他MIB库。以SNMP V1/V2/V3 协议,对设备SNMP进行GET、SET、GetBuilk、GetNext等查询、修改OID的操作。

参考技术A   基本知识准备:
  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、baidu一大堆。限于自己的表述能力和打字速度就不在此复述了。

  下面我登录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文件来定义。这里不再复述。
  

  define host #添加一台主机
  use web-server
  host_name nginx-server
  alias nginx-server
  address 192.168.137.101
  

  define service #添加一项监控服务
  use web-service
  host_name nginx-server
  service_description showhttp
  check_command check_httplink
  
  联系人什么的,我就不配置了,用配置文件来修改真心疲惫。
  这里顺便推荐两款软件Centreon、NagiosQL很不错的哦~本回答被提问者和网友采纳

如何使用CactiEZ监控艾泰路由器接口流量

登录UTT2512的WEBUI—>高级配置—>SNMP配置—>启用SNMP。
注意:
1) 如果CactiEZ服务器处于内网,通过路由器的LAN口地址来监控,则在路由器上启用SNMP服务,配置好SNMP社区名即可(设备名,联系人,位置属于可选项)
2) 如果CactiEZ需要通过路由器的外网地址通过SNMP来监控,那么需要增加如下配置:(转发规则—>端口映射—>分别添加UDP161和UDP162的静态映射)
3、CactiEZ配置
1) 添加主机。
2) 已关联的数据查询,添加SNMP-接口统计。
3) 添加新图形—>选择主机UTT2512—>图形选择SNMP接口统计—>ie0(LAN)和ie2(WAN)。
注意:在图形类型这里选择“流入/流出字节(64位)”
4、至此配置已经完成。
参考技术A 你参照WIFI步骤把重新设置试试吧:

1. 把电源接通,然后插上网线,进线插在wan口(一般是蓝色口),然后跟电脑连接的网线就随便插哪一个lan口啦,做好这些工作后,然后你会看到路由器后面有个地址跟帐号密码,连接好后在浏览器输入在路由器看到的地址,一般是192.168.1.1(当然如果你家是用电话线上网那就还要多准备一个调制调解器,俗称“猫”)
2. 然后进入,输入相应的帐号跟密码,一般新买来的都是admin
3. 确实后进入操作界面,你会在左边看到一个设置向导,进击进入(一般的都是自动弹出来的)
4. 点击下一步,进入上网方式设置,我们可以看到有三种上网方式的选择,如果你家是拨号的话那么就用PPPoE。动态IP一般电脑直接插上网络就可以用的,上层有DHCP服务器的。静态IP一般是专线什么的,也可能是小区带宽等,上层没有DHCP服务器的,或想要固定IP的。因为我拨号所以选择pppoe。
5. 选择PPPOE拨号上网就要填上网帐号跟密码,这个应该大家都明白,开通宽带都会有帐号跟,填进去就OK啦!!!
6. 然后下一步后进入到的是无线设置,我们可以看到信道、模式、安全选项、SSID等等,一般SSID就是一个名字,你可以随便填,然后模式大多用11bgn.无线安全选项我们要选择wpa-psk/wpa2-psk,这样安全,免得轻意让人家破解而蹭网。

以上是关于如何利用SNMP来获取监控数据的主要内容,如果未能解决你的问题,请参考以下文章

如何利用snmp查询centos系统cpu,磁盘,内存,等系统信息

zabbix监控

zabbix监控平台部署详细文档

如何利用snmp查询centos系统cpu,磁盘,内存,等系统信息

Zabbix通过snmp监控防火墙,能在agent主机进行ping测对应该IP获取数据么?

Zabbix添加SNMP自定义监控项OID出现“No Such Instance currently exists at this OID”