前提
ubuntu 和centos 上安装配置snmp 有些差异;
记录下过程
版本信息 : Ubuntu 14.04.4 LTS
安装
sudo apt-get install snmpd
这里安装的还是和centos上有区别的。
安装后执行snmpd -v
NET-SNMP version: 5.7.2
Web: http://www.net-snmp.org/
Email: net-snmp-coders@lists.sourceforge.net
表明安装成功。
如果要使用snmpwalk 这个命令也需要安装一下
执行安装 apt-get install snmp
执行查看snmpwalk -V
NET-SNMP version: 5.7.2
这样就完成了安装。
配置
首先测试下能够使用snmpwalk
snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.1.1
可能会提示如下
Timeout: No Response from localhost
请确保snmp 服务已开启
service snmpd status
service snmpd start
如果需要更多的信息,则需要进一步配置。
vim /etc/snmp/snmpd.conf
###############################################################################
#
# EXAMPLE.conf:
# An example configuration file for configuring the Net-SNMP agent ('snmpd')
# See the 'snmpd.conf(5)' man page for details
#
# Some entries are deliberately commented out,and will need to be explicitly activated
#
###############################################################################
Ubuntu 上的配置如同上图注意和centos的配置文件不同.
配置外网访问
在15行左右,将agentAddress udp:127.0.0.1:161
注释掉
在17行左右,将agentAddress udp:161,udp6:[::1]:161
取消注释
这样可以我们在别的计算机上通过命令查看,而不是只能通过本地访问。
可以我发现这样配置后查看snmpd的状态发现总是snmpd is not running。
经过一番查找发现是ipv6 的问题。
因为默认的该版本的ubuntu是没有开启ipv6的。
查看版本是否开启了ipv6
cat /proc/sys/net/ipv6/conf/all/disable_ipv6
如果是1则关闭,如果显示是0则是开启的。
我的ubuntu14则没有开启,为此有两种办法解决。
1.不配置snmp的ipv6,只是用ipv4 2.配置ubuntu使之支持ipv6
方法一:
只配置agentAddress udp:161
即可。
重启snmpd 没有问题。
方法二:
我没有试试 ,如果有需求的看wiki https://wiki.ubuntu.com/IPv6
配置更多的信息项目
在大约48行左右,注释掉
view systemonly included .1.3.6.1.2.1.1
view systemonly included .1.3.6.1.2.1.25.1
增加一行
view systemonly included .1
这里原来的配置只允许让问两个信息,改成.1后可以看到更多的信息。
配置mib
这个mib我没有仔细的研究,但是他是提高snmp可阅读性的一种方法。更直观。
此时注意修改的是snmp 客户端配置
vim /etc/snmp/snmp.conf
把mib:这行注释掉
执行snmpwalk 出错
Cannot adopt OID in NET-SNMP-AGENT-MIB
出现了大量的以上错误。原因是本地没有映射表(我自己起的名字,就是没有一个对照的文件)
apt-get install snmp
apt-get install snmp-mibs-downloader
在执行命令就没问题了。
配置“密码”
很多教程叫做共同体,他的作用就是约定一个类似密码的东西,如果你不知道,就不能通过snmp 获得系统的数据。
上文中 -c public 中的public 就是“密码”
rocommunity public default -V systemonly
中的public 可以改成任意的,如改成 test.
你再次通过
snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.1.1
就无法获得信息。
snmpwalk -v 2c -c test localhost 1.3.6.1.2.1.1.1
才能获取到信息
还有一个贯穿全文的 -v 2c 指的是snmp的版本。为什么是2c,而不是2.这里也不用纠结,只是一种约定。
至此,ubuntu上的安装配置就完成了。
如果你在配置的时候遇到问题,欢迎讨论。
参考资料
[1].https://serverfault.com/questions/440285/why-does-snmp-fail-to-use-its-own-mibs
原文链接:/ubuntu/352172.html