【系统集成】常用系统&设备开启snmp

需求场景:

在服务器群落的维护工作中,监控是必不可少的,比如常见的cacti、zabbix、solarwinds。这些监控软件常用的监控方式,就是通过SNMP(简单网络管理协议-Simple Network Management Protocol)的agent服务获取数据信息,那么针对各种各样的设备,是如何开启snmp的呢?今天博主就给大家分享一下,博主工作环境中,常用设备及系统是如何开启snmp的配置过程。

本文有以下相关实例配置

(linux-sys、win7-sys、win-server-2012-sys、cisco-sw/router、h3c-sw/router、harbour-hammer-sw、hillstone-firewall、array-balancing、sangfor-vpn、Dell-MD-disk-storage)

操作:开启snmp(net-snmp:udp-161、162端口)

一、服务器linux开启snmp:

①、首先检查一下是否安装snmp软件包:

[root@Moni ~]# rpm -qa | grep snmp
net-snmp-5.5-49.el6_5.3.x86_64
net-snmp-utils-5.5-49.el6_5.3.x86_64
net-snmp-devel-5.5-49.el6_5.3.x86_64
net-snmp-libs-5.5-49.el6_5.3.x86_64

如果没有,则安装它:

[root@Moni ~]# yum –y install net-snmp net-snmp-devel net-snmp-utils

②、编辑snmp配置文件:

首先了解几个概念名词:共同体(community)、用户名(sec name)、组名(groupName)、可操作的范围(view)、oid、Process checks、disk checks、load average checks、等;

其中共同体,也就是常说的团体名、public密码、也可以理解类似为vpn的共享密钥;

用户名,即可以访问共同体密码的用户;组名即可以访问共同体密码的组,可包含多个用户;

可操作的范围(view),则表示在设备节点上可获取设备信息多少的权限;oid即表示权限代码;

process、disk、load、则表示设置进程和磁盘和加载检查预警值;

好了,我们直接看配置:(/etc/snmp/snmpd.conf)

<--首先配置团体名public,和用户notConfigGroup-->
rocommunity public
com2sec notConfigUser default public
<--配置组名"notConfigGroup",这里有v1和v2c两个版本的安全级别-->
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 all included .1 (表示all这个view范围可以访问.1节点下所有的设备信息)
view mib2   included  .iso.org.dod.internet.mgmt.mib-2 fc
<--定义notConfigGroup这个组在mib2或all这个view内可做的操作选一即可-->
access notConfigGroup  ""  any  noauth  exact  all  none  none
access notConfigGroup   ""  any  noauth  exact  mib2 none   none
<--配置checks参数-->
proc mountd
proc ntalkd 4
proc sendmail 10 1
disk / 10000000 
disk /boot 30%
disk /dev/shm
disk PATH [MIN=100000]
load 12 14 14
注意思考

以上配置,其实我们只需要配置团体名并限制访问节点,其它做默认配置即可;

rocommunity woshituantiming 192.168.1.1
rocommunity woshituantiming 127.0.0.1
<--访问节点一般指有监控服务的主机ip,称为报文接收节点或是NMS网络管理站-->

以下是disk checks的配置参数:

disk / 10000000 #监控/,预设最小可用空间为10G;
disk /boot 30% #监控/boot,预设最小可用空间为30%;
disk /dev/shm #监控/dev/shm,不预设最小可用间;

此外SNMP分为三个版本:v1, v2, 和 v3.其功能和安全级别是依次递增的。很多网络管理员喜欢用V2版,博主也不列外,但是V3版本可提供更多的安全特性,这里博主也没怎么研究,应该很牛的!

不过Snmpv1 snmpv2 采用团体名认证,于设备认可的团体名不符的snmp报文将被丢弃。Snmp团体由一字符串来命名,成为团体名。不同的团体可具有只读或读写访问模式。具有只读权限的团体只能对设备信息进行查询,而具有读写权限的团体还可以对设备进行配置。本文所讲的配置,则都是以v2c版本为范例的配置;

③、重启snmp服务,并配置防火墙:

<--从其snmpd服务并添加开机自启动中-->
[root@Moni ~]# service snmpd restart
停止 snmpd: [确定]
正在启动 snmpd: [确定]
[root@Moni ~]# chkconfig snmpd on
<--配置防火墙允许访问管理服务器的节点访问-->
iptables -A INPUT -i eth0 -p udp -s 192.168.1.1 --dport 161 -j ACCEPT

④、检测服务,并了解一下oid使用:

到这里,如果配置和网络没问题,服务就可以正常使用了:

[root@Moni ~]# netstat -anpu | grep 161
udp 0 0 0.0.0.0:161 0.0.0.0:* 26375/snmpd  
[root@Moni ~]# snmpwalk -v 2c 127.0.0.1 -c woshituantiming .1.3.6.1.2.1.1.5
SNMPv2-MIB::sysName.0 = STRING: Moni

在此可以看到,snmpd监听udp端口161、并成功通过snmpwalk获取了设备节点信息;

注意思考

一般情况下snmp server agent监听udp端口161、trap 监听udp端口162;

如上,在测试snmp命令的最后有段数字和小数点组合的字符串,这就是oid;

OID(Object Identifier,对象标识符又称为物联网域名),但在这里表示的是snmp的设备节点信息标识符;如上.1.3.6.1.2.1.1.5表示的是设备主机名;

OID有很多,大致有系统信息、网络和接口信息、ip信息、tcp信息、udp信息、icmp信息、snmp信息等等,每个设备能包含的oid又各不相同,如服务器,如网络设备,像常用的cisco的oid;

但每个设备只要支持snmp服务器,一般都会把自身可以支持的oid保存在一个文件内,我们称之为,mib库文件;

MIB是Management Information Base的缩写,中文名字叫“管理信息库”,它是网络管理数据的标准,在这个标准里规定了网络代理设备必须保存的数据项目,数据类型,以及允许在每个数据项目中的操作。很多类了,oid也很多,如果一些不常用的产品品牌设备,要想监控,我们可以向厂商询问索要mib库文件即可;

二、服务器windows开启snmp:

首先windows服务器,我们知道windows操作系统,主要有常用的win7、win10的个人版本的操作系统,还有server版本的服务器系统;两者在一些服务的配置上,大致同理,也有点不同;

①、win7操作系统开启snmp:

  1. 首先,我们命令“appwiz.cpl”或控制面板打开“卸载程序”的程序和功能添加窗口;
  2. 选中“打开或关闭windows功能”,弹出功能添加窗口;
  3. 勾选弹出窗口中的“简单网络管理协议(SNMP)”项后单击“确定”并根据提示完成安装即可。
  4. 完成安装后,通过右键计算机选择管理或命令“compmgmt.msc”打开计算机管理窗口;
  5. 在左侧栏找到“服务”选中,并在右侧栏找到“SNMP Service”项,双击并弹出窗口;
  6. 在弹窗中,选中“安全”选项,添加“接受的社区名称”和接收那些主机发出的SNMP数据包。
注意思考

到此启动snmp服务即可,注意防火墙配置;

其中以上社区名称即团体名、接收主机即允许哪些主机请求snmp访问本设备节点获取数据;

②、windows server 2012 开启snmp服务:

上面win7开启了snmp,其实server版本的大同小异;

windows server的操作系统,比之win7个人版本的系统,多了服务器管理器的功能;

  1. 命令“servermanager.msc”或是开始菜单打开服务器管理器窗口;
  2. 在配置本地服务处选择“添加角色和功能”,打开角色和功能向导弹窗;
  3. 安装类型,选择“基于角色和基于功能的安装”,点击下一步;
  4. 服务器选择,勾选“从服务器池选择服务器”并选中默认本地服务,点击下一步;
  5. 跳过服务器角色,在功能处,勾选snmp服务及snmp wmi提供程序;并向下拉滚动条;
  6. 依次勾选->远程服务器管理工具->功能管理工具->SNMP工具,点击 【下一步】。
  7. 确认安装即可,成功后,运行命令“services.msc”打开服务管理窗口;
  8. 找到snmp service服务,双击它,弹窗如win7类似,配置团体名和允许访问主机节点;

三、网络设备(cisco/h3c/港湾)交换机、路由器开启snmp:

说到网络设备,监控是必不可少的,如接口网络带宽,或流量详情;

下面看一下,cisco、H3c、harbour的交换路由开启snmp的配置:

①、cisco-交换、路由开启snmp:

Cisco>en
Cisco#conf t
Cisco(config)#snmp-server community public ro(配置只读字符串,public即团体名,ro为只读)
Cisco(config)#snmp-server community public rw(配置读写通信字符串)
Cisco(config)#snmp-server enable traps (启用捕获陷阱,允许所有类型snmp trap发送出去,有时可不用启用)
Cisco(config)#snmp-server enable traps snmp authentication (启用snmp trap验证,有时可不启用)
Cisco(config)#snmp-server host 192.68.1.1 version 2c public (public为团体名,版本v2c,配置接收可信任主机)
Cisco(config)#snmp-server host 192.68.1.1 traps public (不启用trap不用配置,指定交换机SNMP Trap的接收者为192.168.1.1,发送Trap时采用public作为字串)
Cisco(config)#snmp-server trap-source vlan 1 (设置vlan1口IP地址做为为snmp trap信息的发布地址)
<--cisco设备日志syslog传送配置,无需求可以不配置-->
Cisco(config)logging on
Cisco(config)#logging host 192.68.1.1 (配置日志服务器)
Cisco(config)#service timestamps debug datetime localtime show-timezone msec
Cisco(config)#service timestamps log datetime localtime show-timezone msec
Cisco(config)#clock timezone est 8
Cisco(config)#set clock 16:48:00 25 aug 2010
Cisco(config)#ntp server 218.249.27.98 (配置时间,对于日志准确的时间很有必要)
Cisco(config)#logging facility local1 (syslog保存到local1的facility里面,为区分哪个设备的日志)
Cisco(config)#logging trap 5 (配置日志发送trap的buffer的级别,5为“notifications”通知)
Cisco(config)#end
Cisco#wr
Building configuration...
[OK]

②、harbour交换机开启snmp:

(说到这harbour港湾交换机大家可能都没有用到过,博主也没有用到过真实设备,港湾原先是华为公司门下的经销商,后来有了自己的交换路由产品,其实现在各种各样品牌的网络设备,殊途同源,但区别产品总要有点不一样的地方,命令也就五花八门,像juniper、hp、锐捷、迈普、中兴等各有不同,有兴趣的道友,都可以涉及研究研究,还是挺有意思的,搞一下就晓得了。)

>config
[hammer]service snmp enable (启用snmp agent服务)
[hammer]service snmp trap enable (启用snmp trap 陷阱服务)
[hammer]config snmp community readonly public (配置只读权限的团体名public)
[hammer]config snmp community readwrite private (配置可读写权限的团体名private)
[hammer]config snmpauthentrap enable (启用snmp验证,即验证失败发送trap报文)
[hammer]show service snmp (查看snmp服务状态)
[hammer]show snmp community-string (显示团体名字符串)
[hammer]config snmp trap type all on(配置发送trap的类型:interface、bgp、vrrp、ospf、pppoe、等等,关闭则off)
[hammer]cofnig snmp trapreceiver add 192.168.1.1 version v2c community public
<---添加一个trap接收站,删除则是config snmp trapreceiver delete 192.168.1.1-->
[hammer]show snmp trapreceiver (显示已添加的trap接收站)
<--如此是不是发现,港湾交换机命令更加贴近直意,配置模式是华为的,命令则更像cisco-->

③、H3C-交换、路由开启snmp:

<--启用、关闭snmp agent 服务-->
<H3c>system-view
[H3c]snmp-agent (启用)
[H3c]undo snmp-agent (禁用,默认snmp agent是关闭的)
<--配置snmp基本信息:团体名、版本、组、用户、等-->
[H3c]snmp-agent sys-info version v1 v2c (配置snmp版本,v1、v2c、v3,如果三个都使用,则“all”)
[H3c]snmp-agent community read public (配置只读权限的团体名)
[H3c]snmp-agent community write private (配置团体名,读写权限分开配,团体名可不一样)
[H3c]undo sump-agent community community-name (取消一个团体名)
<--配置联系人和联系方式,可省略-->
[H3c]snmp-agent sys-info contact 110@email.com
[H3c]snmp-agent sys-info location guanliyuan
<--启用trap并配置snmp报文发送的信任主机-->
[H3c]snmp-agent trap enable (启用trap陷阱)
[H3c]snmp-agent target-host trap address udp-domain 192.168.1.1 params securityname public v2c
[H3c]snmp-agent trap source vlan-interface 1 (指定trap源ip使用vlan1,可忽略)
<--有的环境还需要配置acl,允许网管主机能访问snmp的udp端口-->
[H3c]acl number 2000
[H3c-acl-basic-2000]rule 0 permit source 192.168.1.1 0
[H3c-acl-basic-2000]quit
[H3c]snmp-agent group v2c group-name1 acl 1 (创建snmp组版本v2c,并定义访问控制)
[H3c]snmp-agent usm-user v2c user-name1 group-name1 acl 1 (创建用户在组里同样定义访问控制) 
注意思考

以上配置,我们均是配置启用v2c版本的snmp,总结一下,无外乎就是配置团体名、定义版本,并最后一步定义允许某个网管的可信任主机,接收snmp报文或trap报文;但是trap一般很少配置,snmp用的比较多的是配合监控系统,一般启用snmp agent服务即可;

所以大同小异,除了上面的操作系统和常见的网络设备,一些其他品牌的网络设备启用方法类似,而如今市场网络设备基本都有web网页管理的方式,下面就再给大家举例:hillstone防火墙、array均衡器、sangfor的vpn、dell的磁盘阵列等这些设备开启snmp的过程。

四、hillstone防火墙开启snmp:

方法一、cli命令模式:

hillstone(M)#conf
hillstone(M)(config)#snmp-server manager (启用snmp代理,可忽略)
hillstone(M)(config)#snmp-server port 161 (配置snmp host port,agent端口)
hillstone(M)(config)#snmp-server engineID "rootgnnt" (配置snmp本地引擎id,可忽略,用于v3)
hillstone(M)(config)#snmp-server host 192.168.1.1 version 2c community public ro
(配置只读权限的团体名,版本为2c,并指定snmp接收主机)
hillstone(M)(config)#snmp-server trap-host 192.168.1.1 version 2c community public port 162
(配置trap主机团体名,版本2c,指定trap接收主机,并制定端口,端口可忽略默认162,此项一般不配置)

方法二、url网页模式:

这个很简单了,登陆管理页面->选择顶部导航条的"系统管理"-->在下拉列表中选择“SNMP”-->在弹窗点击启用snmp代理,下面端口和本地引擎id默认即可-->切换到“snmp主机”标签页-->新建snmp主机-->依次配置接收主机ip、版本为v2c、团体字为自定义如public、权限为只读或可写-->确认即可立即生效;

五、array均衡器开启snmp:

方法一、cli命令模式:

array>en
array#conf t
array(config)#snmp on (启用snmp agent服务、关闭为off)
array(config)#snmp enable traps (启用snmp trap服务,关闭则“no”)
array(config)#snmp contact 110@email.com (配置联系方式)
array(config)#snmp location 110 (配置地址或联系人)
array(config)#snmp community public (配置团体字)
array(config)#snmp ipcontrol on (启用允许ip地址,关闭为off,此项默认关闭,v2c可忽略)
<--以上为snmp的基本信息配置,以下配置snmp服务添加v2c配置-->
array(config)#snmp host 192.168.1.1 2 public (配置接收节点、版本v2以及团体名)
array(config)#snmp ippermit 192.168.1.0 24 (配置允许ip地址或范围,如果配置则也需启用ipcontrol)

方法二、url网页模式:

依然不难:登陆到array的web管理页面,进入首页,在左上角选择“config”模式-->在左侧菜单栏,找到管理工具下的“图形”配置-->选择“SNMP”标签页,在基本信息处,启用snmp、启用traps、启用允许ip地址、配置团体名称、配置联系方式以及地址;-->然后选择“SNMP服务器”标签页,在snmp服务器配置处,选择添加snmp服务器,并依次配置接收点ip地址、版本id为“2”、SNMP团体名称;-->最后保存配置并让其生效;
注意:这里如果启用了“允许ip地址”,则在“允许ip”标签页,添加ip或范围即可;(除此之外,还可以查看array系统的mib库文件,当然也可以咨询厂家指导进行相关的监控配置)

六、Sangfor的vpn启用snmp:

深信服的vpn,算是比较常用的硬件级的vpn设备了;

web网页管理方式:

1、首先登陆进管理页面,在左侧控制台找到“系统设置”选项,点开下拉菜单;
2、选中“系统配置”选项,在右侧打开系统配置窗口;
3、右侧配置窗口,选择顶部导航栏的“SNMP”标签页面;
4、在snmpv1/v2配置出,依次配置:勾选启用snmp、团体名称、允许访问的地址(任意或指定)
5、如果需要配置trap,则选择“snmp traps”子标签页面,点击添加traps配置;
6、在弹出窗口内,依次配置trap 地址、端口默认162、团体名称、版本这里只支持v1、并勾选启用
注意:再次说明,snmp 默认agent服务是udp的161、trap服务是udp的162,大多启用agent即可;

(此外,深信服vpn的snmp配置页面提供mib库文件的下载,这个很重要哦!)

 七、Dell的MD系列磁盘阵列开启snmp:

这个有的说了,磁盘阵列,一般有数据库的地方,都少不了这个,为了数据的安全和高可用嘛;

自然也少不了对其设备的监控,下面也大致说说开启snmp的过程,不过阵列的mib博主就不是很清楚了!

  1. 首先是打开md磁盘阵列的管理软件,如下我安装在linux的/opt目录下:
    [root@db1 ~]# /opt/dell/mdstoragesoftware/mdstoragemanager/client/SMclient
  2. 打开“PowerVault Modular Disk Storage Manager”企业管理窗口,记住不用打开阵列管理窗口;
  3. 在企业管理窗口中,有两个大标签页“设备”“设置”,注意这里我们选择设置标签页面;
  4. 然后我们看到“初始化设置任务”下的“管理域”中的“配置警报”选项,双击它弹出配置窗口;
  5. 让我们做出选择,这里选择“单个存储阵列”即可,当然你也可以选择所有;
  6. 如果是单个,进入“选择存储阵列”弹窗,选中我们已经添加过的并要启用snmp的存储;
  7. 确定后,进去“配置警报”窗口,当然我们直接选择SNMP的标签页面配置即可;
  8. 是的,你会发现有两个:“SNMP-事件检测器原始陷阱”、“SNMP-存储阵列原始陷阱”;
  9. 先前者,有两个配置“团体名称”、“陷阱目标”即接收节点ip,添加即可;
  10. 至于后者,要先添加团体名称,才能添加陷阱目标,最后确认即可;
注意思考

上面两个snmp有什么关系,这里博主没有深究,不过简单也有些理解,首先陷阱来源不同,其次,前者比较简单,相当于agent,后者则有trap的验证失败陷阱功能,一旦snmp请求无法识别团体名而被拒绝,则系统会向陷阱目标发送验证失败陷阱;

另外重要的一点,即,启用snmp服务,需要给磁盘阵列配置手动固定ip:

需要进入单个“阵列管理窗口”,即在设备标签页选择双击已经添加的磁盘阵列;

进入管理窗口,选择“设置”标签页,拉到最下面,选择“配置以太网管理端口”

根据提示配置即可,最好配置每个控制器的“0”端口,并配置网关,确认即可;


(哈哈,好吧,就到这里了,不明白记得留言哦!)

Edit@bigmouth【原创博文】®【系统集成】


原创文章,转载请注明:转自于公牛博客

本文链接地址:【系统集成】常用系统&设备开启snmp

5
祝福我们的祖国繁荣昌盛
  • 请尽情挥洒您的笔墨!

    欢迎来到公牛博客更多分享更多精彩记录美丽点亮生活

    公牛博客·统计碑运行:3058 D
    博文:215 P
    评论:452 S