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我没有仔细的研究,但是他是提高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
[2].http://www.linuxidc.com/Linux/2016-03/129618.htm