需求场景:
在服务器群落的维护工作中,监控是必不可少的,比如常见的cacti、zabbix、solarwinds。这些监控软件常用的监控方式,就是通过SNMP(简单网络管理协议-Simple Network Management Protocol)的agent服务获取数据信息,那么针对各种各样的设备,是如何开启snmp的呢?今天博主就给大家分享一下,博主工作环境中,常用设备及系统是如何开启snmp的配置过程。
操作:开启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
③、重启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获取了设备节点信息;
二、服务器windows开启snmp:
首先windows服务器,我们知道windows操作系统,主要有常用的win7、win10的个人版本的操作系统,还有server版本的服务器系统;两者在一些服务的配置上,大致同理,也有点不同;
①、win7操作系统开启snmp:
- 首先,我们命令“appwiz.cpl”或控制面板打开“卸载程序”的程序和功能添加窗口;
- 选中“打开或关闭windows功能”,弹出功能添加窗口;
- 勾选弹出窗口中的“简单网络管理协议(SNMP)”项后单击“确定”并根据提示完成安装即可。
- 完成安装后,通过右键计算机选择管理或命令“compmgmt.msc”打开计算机管理窗口;
- 在左侧栏找到“服务”选中,并在右侧栏找到“SNMP Service”项,双击并弹出窗口;
- 在弹窗中,选中“安全”选项,添加“接受的社区名称”和接收那些主机发出的SNMP数据包。
②、windows server 2012 开启snmp服务:
上面win7开启了snmp,其实server版本的大同小异;
windows server的操作系统,比之win7个人版本的系统,多了服务器管理器的功能;
- 命令“servermanager.msc”或是开始菜单打开服务器管理器窗口;
- 在配置本地服务处选择“添加角色和功能”,打开角色和功能向导弹窗;
- 安装类型,选择“基于角色和基于功能的安装”,点击下一步;
- 服务器选择,勾选“从服务器池选择服务器”并选中默认本地服务,点击下一步;
- 跳过服务器角色,在功能处,勾选snmp服务及snmp wmi提供程序;并向下拉滚动条;
- 依次勾选->远程服务器管理工具->功能管理工具->SNMP工具,点击 【下一步】。
- 确认安装即可,成功后,运行命令“services.msc”打开服务管理窗口;
- 找到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 (创建用户在组里同样定义访问控制)
四、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网页模式:
五、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网页模式:
六、Sangfor的vpn启用snmp:
深信服的vpn,算是比较常用的硬件级的vpn设备了;
web网页管理方式:
七、Dell的MD系列磁盘阵列开启snmp:
这个有的说了,磁盘阵列,一般有数据库的地方,都少不了这个,为了数据的安全和高可用嘛;
自然也少不了对其设备的监控,下面也大致说说开启snmp的过程,不过阵列的mib博主就不是很清楚了!
- 首先是打开md磁盘阵列的管理软件,如下我安装在linux的/opt目录下:
[root@db1 ~]# /opt/dell/mdstoragesoftware/mdstoragemanager/client/SMclient
- 打开“PowerVault Modular Disk Storage Manager”企业管理窗口,记住不用打开阵列管理窗口;
- 在企业管理窗口中,有两个大标签页“设备”“设置”,注意这里我们选择设置标签页面;
- 然后我们看到“初始化设置任务”下的“管理域”中的“配置警报”选项,双击它弹出配置窗口;
- 让我们做出选择,这里选择“单个存储阵列”即可,当然你也可以选择所有;
- 如果是单个,进入“选择存储阵列”弹窗,选中我们已经添加过的并要启用snmp的存储;
- 确定后,进去“配置警报”窗口,当然我们直接选择SNMP的标签页面配置即可;
- 是的,你会发现有两个:“SNMP-事件检测器原始陷阱”、“SNMP-存储阵列原始陷阱”;
- 先前者,有两个配置“团体名称”、“陷阱目标”即接收节点ip,添加即可;
- 至于后者,要先添加团体名称,才能添加陷阱目标,最后确认即可;