boss44 发表于 2019-1-25 11:00:07

zabbix使用SNMPV3协议监控交换机

  SNMPV3是简单网络管理协议的第三版,因为其安全性更高,现在的中低端交换机已普遍支持该协议,所以在生产环境中我们应该采用SNMPV3对交换机、路由器进行管理。

  首先在交换机上要配置SNMPV3协议,设置好认证算法及密码,加密算法及密码,用户名,具体操作需要查看华为交换机操作手册。

  然后在zabbix服务器上安装net-snmp安装包。安装完成后我们就可以通过snmpwalk或snmpget命令获取交换机上面我们需要监控的信息了。
  snmpwalk我们只是作调试使用,如果编译安装zabbix时使用了--with-snmp的话,zabbix就自带这个功能了。

snmpwalk --help
SNMP Version 3 specific
-a PROTOCOL指定认证协议算法 (MD5|SHA)
-A PASSPHRASE指定认证密码
-l LEVEL指定安全认证模式 (noAuthNoPriv|authNoPriv|authPriv)
-u USER-NAME指定用户名 (e.g. bert)
-x PROTOCOL指定加密协议算法 (DES|AES)
-X PASSPHRASE指定加密协议密码  

  获取交换机端口号及对应的端口名称(IF-MIB::ifDescr)
snmpwalk-v 3 -u Securityname-a sha -A xxxxxxx -x AES -X xxxxxxx -l authPriv192.168.1.177 IF-MIB::ifDescr  获取交换机所有端口的进入流量(IF-MIB::ifHCInOctets)
snmpwalk-v 3 -u Securityname-a sha -A xxxxxxxx -x AES -X xxxxxxx -l authPriv192.168.1.177 IF-MIB::ifHCInOctets  

获取交换机49端口的进入流量(IF-MIB::ifHCInOctets.49)
snmpwalk-v 3 -u Securityname-a sha -A xxxxxxxxx -x AES -X xxxxxxxx -l authPriv192.168.1.177 IF-MIB::ifHCInOctets.49http://s3.运维网.com/wyfs02/M02/7B/23/wKioL1bHDqWRCgz1AAWiwPyqR3U011.jpg
  

  我做的监控只监控了三项,一个进入流量,一个跑出流量,一个端口当前状态。
  进入流量可以取两个OID:
  ifInOctets;
  ifHCInOctets;
  他们唯一的区别是后者是64位存储,前者是32位存储,如果一个端口的进入流量超出4G,前者就会溢出清零,所以监控项的OID我选的ifHCInOctets
  跑出流量OID取:ifHCOutOctets
  端口状态OID取:ifOperstatus

  

  关于什么是OID,建议读一读rfc1573,这是一个协议标准,里面介绍了诸如ifDescr这些项的含义,在附件里有。

  简单一句话就是:路径和值

http://s4.运维网.com/wyfs02/M02/7B/23/wKioL1bHFQCxncGVAAC71FehLJ8894.jpg   

  注意:在zabbix中,基于SNMP的发现规则(LLD)会把OID中的路径映射为宏{#SNMPINDEX}把OID中的值映射为宏{#SNMPVALUE}

  所以我们不必为一个交换机逐个添加端口,我们可以定义发现规则,自动发现端口。

  为安全考虑,在创建的SNMPV3模板中我们应该把所有的密码映射为宏变量,然后在主机宏里添加对应值。例如:

  Security name:{$SNMP_SECNAME}
      Authentication passphrase:{$SNMP_AUTH}
  Privacy passphrase:{$SNMP_PRIV}
http://s2.运维网.com/wyfs02/M00/7B/24/wKioL1bHF_KhsU_oAABRgG4-4AQ228.png
  

  关注SNMP的两种取值方式:
  GetNext 单线程支持v1,v2;
  GetBulk 后者是多线程,支持v2,v3;
  如果我们使用SNMPV3取值,在添加交换机时应当选择Bulk

http://s2.运维网.com/wyfs02/M02/7B/24/wKioL1bHGx7Q-bQUAAAYc8KhUUg144.jpg
  
  下面开始制作SNMPV3模板

[*]  创建模板,在模板中定义自动发现规则
http://s4.运维网.com/wyfs02/M02/7B/24/wKioL1bHID2iHUTJAAFv3-FIK-g350.png

[*]  定义监控项
http://s3.运维网.com/wyfs02/M00/7B/24/wKioL1bHIFjAdk4pAAEwGtLQ4Tk353.png

http://s3.运维网.com/wyfs02/M01/7B/25/wKiom1bHH_HzFURDAAEA0QEeEK4547.png
  

  

[*]  添加交换机,交换机关联SNMPV3模板,配置宏的值
http://s3.运维网.com/wyfs02/M02/7B/24/wKioL1bHITexUWjiAABoQTbI0M8177.png

  

  到此就完成了对交换机的监控,但是监控中发现取值断断续续,断图很多,zabbix的日志显示连接超时Timeout。我就增加了取值间隔为5分钟一次,将zabbix_server的配置文件中的Timeout修改为30秒,效果好多了,但是没有彻底解决交换机断图的现象。我google了应该是net-snmp的数据传输机制和zabbix的会话等待机制产生了冲突,造成了不可调和的Bug,所以这个问题从zabbix1.0到现在3.0都没有很好的解决。期待以后的版本能够得到解决。


附件:http://down.运维网.com/data/2367388

页: [1]
查看完整版本: zabbix使用SNMPV3协议监控交换机