跳转至

Ubuntu 配置SNMP服务


2013-05-06 by dongnan

开始之前

监控离不开数据采集,经常使用的Zabbix等监控软件,除了使用agent还可以通过snmp协议进行数据采集。

什么是SNMP协议?

简单网络管理协议(SNMP,Simple Network Management Protocol)构成了互联网工程工作小组(IETF)定义的internet协议簇的一部分。

该协议能够支持网络管理系统,用以监测连接到网络上的设备是否有任何引起管理上关注的情况。 它由一组网络管理的标准组成,包含一个应用层协议、数据库模型、和一组资料物件。

SNMP协议的端口

协议使用 tcp/udp 161 端口:

grep 'Simple Net Mgmt Proto' /etc/services  
snmp        161/tcp             # Simple Net Mgmt Proto 
snmp        161/udp             # Simple Net Mgmt Proto

操作步骤

示例中的操作系统为: Ubuntu 12.04

安装SNMP

apt-get install snmp snmpd

# 关闭SNMP服务
/etc/init.d/snmpd stop

SNMPV3V2有所不同,需要单独配置。

SNMP V3

编辑 snmpd.conf 配置文件:

vim /etc/snmp/snmpd.conf

修改 snmpd 监听地址:

agentAddress  udp:127.0.0.1:161  
变更为:
agentAddress  udp:161

启用 MIBs

ubuntu 12.04下默认snmp是没有启用,你需要安装mibs

apt-get install snmp-mibs-downloader -y

编辑 /etc/snmp/snmp.conf 配置文件:

# 注释
# mibs :

添加用户

添加一个名为:snmpuser、密码为:public@localhost 的帐户,使用v3协议的帐户:

net-snmp-config --create-snmpv3-user -ro -A "public@localhost" -a MD5 snmpuser

adding the following line to /var/lib/snmp/snmpd.conf:
   createUser snmpuser MD5 "public@localhost" DES   # 这里
adding the following line to /usr/share/snmp/snmpd.conf:
   rouser snmpuser                                  # 这里

按照提示信息,将上面的两行字符产添加到 /var/lib/snmp/snmpd.conf 文件

启动Snmpd服务

/etc/init.d/snmpd start

使用 snmpwalk 测试通信是否正常:

snmpwalk -v 3 -u snmpuser -a MD5 -A "public@localhost" -l authNoPriv 127.0.0.1 sysDescr

# 返回的信息
SNMPv3-MIB::sysDescr.0 = STRING: xxxx

SNMP V2

编辑 snmpd.conf 配置文件:

vim /etc/snmp/snmpd.conf

修改 snmpd 监听地址:

agentAddress  udp:127.0.0.1:161  
变更为:
agentAddress  udp:161

添加以下两行:

access notConfigGroup "" any noauth exact all none none

# 认证字符串      
rocommunity public  172.27.236.13

注意,172.27.236.13 为SNMP客户端的IP地址,如果不想指定客户端可以将IP地址变更为 default

使用 snmpwalk 测试通信是否正常:

# -v是指版本 -c 是指密钥
snmpwalk -v 1 -c dongnan 192.168.57.82 snmpwalk -v 2c -c dongnan 192.168.57.71

# 返回的信息
SNMPv2-MIB::sysDescr.0 = STRING:xxx

获取到系统信息则正常。

回到页面顶部