最近公司需要在监控一下各项目地的服务器运行状况,查找资料发现监控宝可以直接通过SNMP服务实现,于是打算测试一下在RedHat Linux系统中安装和配置snmp服务
检查系统是否安装snmp服务
1 2 3 4 5 6 7 8
| # rpm -qa|grep snmp net-snmp-5.3.2.2-17.el5 net-snmp-perl-5.3.2.2-17.el5 net-snmp-devel-5.3.2.2-17.el5 net-snmp-libs-5.3.2.2-17.el5 net-snmp-utils-5.3.2.2-17.el5 net-snmp-libs-5.3.2.2-17.el5 net-snmp-devel-5.3.2.2-17.el5
|
SNMP服务安装后会有以上安装包
安装SNMP服务
1.配置好本地yum服务,使用yum安装
1
| yum install -y net-snmp*
|
2.配置SNMP服务开机启动
1 2
| #chkconfig snmpd on #chkconfig --list | grep snmpd
|
查看开机启动设置是否成功
snmpd 0:关闭 1:关闭 2:启用 3:启用 4:启用 5:启用 6:关闭
验证SNMP服务
1.使用snmpwalk获取主机名
1 2 3 4
| # snmpwalk -v 2c -c public localhost sysName.0 SNMPv2-MIB::sysName.0 = STRING: wh69 snmpwalk用法 snmpwalk -v 1|2c|3(代表SNMP版本) -c <community string> IP地址 OID(对象标示符)
|
2.使用snmptranslate命令,检查snmp工具是否可以使用
1 2 3 4 5 6 7 8 9 10 11
| # snmptranslate -To | head .1.3 .1.3.6 .1.3.6.1 .1.3.6.1.1 .1.3.6.1.2 .1.3.6.1.2.1 .1.3.6.1.2.1.1 .1.3.6.1.2.1.1.1 .1.3.6.1.2.1.1.2 .1.3.6.1.2.1.1.3
|
查出了部分oid,则表示snmp工具可以正常使用
配置SNMP服务
1
| #vi /etc/snmp/snmpd.conf
|
修改下面字段
1 2
| # sec.name source community com2sec notConfigUser default public
|
修改public为自己定义的community string,这里修改为jiankongbao
2.修改查看设备节点权限
在配置文件/etc/snmp/snmpd.conf中找到如下位置
1 2 3 4 5 6 7 8
| #### # Third, create a view for us to let the group have rights to: # Make at least snmpwalk -v 1 localhost -c public system fast again. # name incl/excl subtree mask(optional) view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1
|
view:定义了可以查看哪些节点设备的信息。
snmp默认配置只能查看.1.3.6.1.2.1.1和.1.3.6.1.2.1.25.1.1节点下的设备信息,
而主机CPU和内存等设备都不在这些节点下,所以无法获取这些数据。
因此,可以修改这个配置,如下:
1 2 3 4 5 6 7 8 9
| #### # Third, create a view for us to let the group have rights to: # Make at least snmpwalk -v 1 localhost -c public system fast again. # name incl/excl subtree mask(optional) view systemview included .1 view systemview included .1.3.6.1.2.1.1 view systemview included .1.3.6.1.2.1.25.1.1
|
在此处添加了一行:
1
| view systemview included .1
|
表示可以查看.1节点下的所有设备信息。
3.添加jiankongbao用户,并进行测试
执行创建jiankongbao用户,密码为jiankongbao,创建时必须关闭snmpd服务,以及SElinux
1 2 3
| #service snmpd stop #net-snmp-config --create-snmpv3-user -ro -a jiankongbao -x DES -X jiankongbao jiankongbao
|
添加好后,会显示add用户成功
配置防火墙,开放snmp端口,默认161,这里配置是将监控宝的3个IP设为可访问,方便后续加入监控平台
1 2 3
| #iptables -A INPUT -i eth0 -p udp -s 124.202.149.13 --dport 161 -j ACCEPT #iptables -A INPUT -i eth0 -p udp -s 124.202.149.17 --dport 161 -j ACCEPT #iptables -A INPUT -i eth0 -p udp -s 60.195.252.107 --dport 161 -j ACCEPT
|
1
| #service iptables restart
|
启动snmpd服务,在本地进行测试
此处使用协议3进行测试
1
| #snmpwalk -v 3 -u jiankongbao -a MD5 -A "jiankongbao" -l authNoPriv 127.0.0.1 sysDescr
|
出现如图所示即本地测试成功,若服务器161端口已开放到外网,即可在监控宝平台添加监控,否则需要使用内网采集器。
参考资料:
Zabbix 之SNMP配置 http://www.linuxidc.com/Linux/2013-09/90263.htm
SNMP实现网络状态监控 http://www.linuxidc.com/Linux/2013-04/83187.htm
CentOS 6.3下搭建SNMP测试环境 http://www.linuxidc.com/Linux/2013-02/79233.htm
Linux (Ubuntu/CentOS) SNMP配置 http://www.linuxidc.com/Linux/2012-12/76837.htm
开启并配置Citrix Xenserver的SNMP服务 http://www.linuxidc.com/Linux/2013-01/78487.htm