https://blog.51cto.com/ning235/2112423?utm_source=oschina-app

https://blog.51cto.com/wuhf2015/1743524

 

一、zabbix 3 通过snmp v3监控linux主机

原因是第三方系统,无法安装zabbix客户端,只能通过snmp 协议来监控

深信服:QQ截图20180503195927.png

在AC和SSL_×××等设备中,SNMP默认是开启的,而且默认密码为sinfors(早期版本)或sangfor,而在NGAF中,这个功能不是默认开启的,在“网络/高级网络配置”中,设置了团体名,也无法访问SNMP。后来,经过查询各种资料,得知在NGAF开启SNMP的方法如下(关键是第一个步骤):
1)网络-接口/区域-区域,点“管理区”,在弹出的“编辑区域”窗口中,允许管理设备:
【√】WEBUI
【√】SSH
【√】SNMP(这个地方一定要选上!)
保存。

二,开启snmp服务或通过源码安装

1、下载

http://wiki.jiankongbao.com/doku.php/%E6%96%87%E6%A1%A3:%E5%AE%89%E5%85%A8%E6%8C%87%E5%BC%95#linux_snmp

#wget http://sourceforge.net/projects/net-snmp/files/net-snmp/5.7.1/net-snmp-5.7.1.tar.gz

2、安装

mkdir /usr/soft/

cd /usr/soft/

tar zxvf net-snmp-5.7.1.tar.gz

cd net-snmp-5.7.1

./configure –prefix=/usr/local/snmp –with-mib-modules=ucd-snmp/diskio

回车(默认选择)

make && make install

3、配置

echo “rouser test auth” >> /usr/local/snmp/share/snmp/snmpd.conf

mkdir -p /var/net-snmp/

echo “createUser test MD5 snmp@testjiankong”  >> /var/net-snmp/snmpd.conf

4、启动:

/usr/local/snmp/sbin/snmpd

echo “/usr/local/snmp/sbin/snmpd” >> /etc/rc.local

5、检测 Net-SNMP

snmpwalk -v 3 -u test -a MD5 -A “snmp@testjiankong” -l authNoPriv 127.0.0.1 sysDescr

########################################################################################

SNMPv2-MIB::sysDescr.0 = STRING: Linux localhost 2.6.18-348.1.1.el5 #1 SMP Tue Jan 22 16:19:19 EST 2013 x86_64

########################################################################################

报错:

[root@localhost snmp]# snmpwalk -v 3 -u test -a MD5 -A “snmp@testjiankong” -l authNoPriv 127.0.0.1 sysDescr

-bash: /usr/bin/snmpwalk: No such file or directory

 

/usr/local/snmp/bin/snmpwalk -v 3 -u test -a MD5 -A “snmp@testjiankong” -l authNoPriv 127.0.0.1 sysDescr

添加

ln -s /usr/local/snmp/bin/snmpwalk /usr/bin/snmpwalk

添加端口161

##

BEGIN failed–compilation aborted at Makefile.PL line 1.

make: *** [perlmakefiles] Error 2

yum install perl-ExtUtils-CBuilder perl-ExtUtils-MakeMaker

snmpwalk -v 3 -u test -a MD5 -A “snmp@testjiankong” -l authNoPriv 127.0.0.1 sysDescr -d

test :用户名

snmp@testjiankong:密码,密码必须大于8个字符

snmp v3安全级别有三种,分别为noAuthNoPriv(不认证也不加密)、authNoPriv(认证但是不加密)、authPriv(既认证又加密)

三、导入snmp v3模板

下载地址:链接: https://pan.baidu.com/s/1YE_mqXj-laKTTpH2RxHRHQ 密码: i1zb

操作步骤:打开Zabbix 管理端,点“配置–>模板–>导入–>选择文件–>导入

因模板使用的是:authPriv(既认证又加密) 所以导入成功后,把“应用集、监控项、自动发现规则”下所有的认证模板更改为:authNoPriv

Template SNMPv3 Device
Template SNMPv3 Generic
Template SNMPv3 Interfaces
Template SNMPv3 Disks
Template SNMPv3 Processors
Template SNMPv3 OS Linux
Template SNMPv3 OS Windows

QQ截图20180503194835.png

四、添加主机

QQ截图20180503195013.pngQQ截图20180503195026.pngQQ截图20180503195101.png

{$SNMP_SECNAME} – SNMPv3 username
{$SNMP_AUTH} – authentication password

QQ截图20180503195226.png

当有数据和自动发现了,说明成功了

 


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 authPriv  192.168.1.177 IF-MIB::ifDescr

获取交换机所有端口的进入流量(IF-MIB::ifHCInOctets)

snmpwalk  -v 3 -u Securityname  -a sha -A xxxxxxxx -x AES -X xxxxxxx -l authPriv  192.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 authPriv  192.168.1.177 IF-MIB::ifHCInOctets.49

wKioL1bHDqWRCgz1AAWiwPyqR3U011.jpg

我做的监控只监控了三项,一个进入流量,一个跑出流量,一个端口当前状态。

进入流量可以取两个OID:

ifInOctets;

ifHCInOctets;

他们唯一的区别是后者是64位存储,前者是32位存储,如果一个端口的进入流量超出4G,前者就会溢出清零,所以监控项的OID我选的ifHCInOctets

跑出流量OID取:ifHCOutOctets

端口状态OID取:ifOperstatus

 

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

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

wKioL1bHFQCxncGVAAC71FehLJ8894.jpg


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

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

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

Security name:{$SNMP_SECNAME}

Authentication passphrase:{$SNMP_AUTH}

Privacy passphrase:{$SNMP_PRIV}

wKioL1bHF_KhsU_oAABRgG4-4AQ228.png

关注SNMP的两种取值方式:

GetNext 单线程支持v1,v2;

GetBulk 后者是多线程,支持v2,v3;

如果我们使用SNMPV3取值,在添加交换机时应当选择Bulk

wKioL1bHGx7Q-bQUAAAYc8KhUUg144.jpg


下面开始制作SNMPV3模板

  1. 创建模板,在模板中定义自动发现规则

    wKioL1bHID2iHUTJAAFv3-FIK-g350.png

  2. 定义监控项

    wKioL1bHIFjAdk4pAAEwGtLQ4Tk353.png

    wKiom1bHH_HzFURDAAEA0QEeEK4547.png

  3. 添加交换机,交换机关联SNMPV3模板,配置宏的值

    wKioL1bHITexUWjiAABoQTbI0M8177.png

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

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注