Linux 安装和配置Net-SNMP

Linux 安装和配置Net-SNMP

Net-SNMP是一个开源的软件套件,实现了简单网络管理协议(SNMP),用于管理网络设备。它提供了广泛的工具,使网络管理员能够更有效地监控和管理他们的系统。在这篇文章中,我们将探讨如何在Linux系统上安装和配置Net-SNMP。

前提条件

在我们开始之前,请确保你能访问一个具有root权限的Linux系统。此外,确保该系统有一个活跃的互联网连接,以便下载必要的软件包。

安装Net-SNMP

要在Linux系统上安装Net-SNMP,你可以使用你的发行版的软件包管理器。例如,如果你使用的是Ubuntu,你可以使用下面的命令来安装Net-SNMP—。

sudo apt-get update
sudo apt-get install snmpd snmp-mibs-downloader

上述命令将安装SNMP守护程序(snmpd)和SNMP MIB下载程序(snmp-mibs-downloader)软件包。守护程序负责监听SNMP请求并提供必要的信息。MIB下载器下载SNMP代理正常工作所需的管理信息库(MIB)文件。

配置Net-SNMP

安装完Net-SNMP后,你需要根据你的要求对它进行配置。SNMP守护进程的配置文件位于/etc/snmp/snmpd.conf。

用你喜欢的文本编辑器打开配置文件。下面是一个配置文件的例子,你可以把它作为一个起点来使用

com2sec readonly default public
group MyROGroup v1 readonly
group MyROGroup v2c readonly
group MyROGroup usm readonly
view all included .1
access MyROGroup "" any noauth exact all none none
sysLocation Unknown (edit /etc/snmp/snmpd.conf)
sysContact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)

上面的配置文件有几个定义SNMP设置的指令。让我们来看看它们中的每一个。

  • com2sec – 这个指令定义了SNMP请求所使用的社区字符串。在上面的例子中,社区字符串被设置为 “公共”。你可以把它改成一个更安全的值,以防止对你的系统进行未经授权的访问。

  • group – 这条指令定义了不同SNMP组的访问权限。在上面的例子中,我们定义了一个叫做MyROGroup的组,具有只读权限。

  • view – 这条指令指定了可以被SNMP代理查看的对象。在上面的例子中,我们允许对所有对象的访问(.1)。

  • access – 这条指令指定了不同SNMP组的访问控制。在上面的例子中,我们允许对MyROGroup组进行只读访问。

保存对配置文件的修改,并使用以下命令重启SNMP守护进程。

sudo systemctl restart snmpd

测试Net-SNMP

为了测试Net-SNMP的安装,你可以使用SNMP命令行工具。SNMP工具是和Net-SNMP软件包一起安装的。

最常用的工具是snmpwalk命令,它可以用来检索SNMP对象的值。下面是一个检索系统描述的命令的例子

snmpwalk -v2c -c public localhost system

上述命令将使用SNMP版本2c和’public’社区字符串检索本地系统的系统描述。

你也可以使用snmpget命令来检索一个特定的SNMP对象的值。下面是一个检索系统正常运行时间的命令的例子

snmpget -v2c -c public

以下是检索系统正常运行时间的完整命令-

snmpget -v2c -c public localhost 1.3.6.1.2.1.1.3.0

上述命令将使用SNMP版本2c和’public’社区字符串检索本地系统的系统运行时间对象(1.3.6.1.2.1.3.0)的值。

排除Net-SNMP的故障

如果你在使用Net-SNMP时遇到任何问题,你可以使用下列工具来排除故障

  • snmpd – 这是SNMP守护程序,可以用来检查守护程序是否正常运行。你可以使用下面的命令来检查守护进程的状态。
sudo systemctl status snmpd

如果守护进程没有运行,你可以用下面的命令启动它。

sudo systemctl start snmpd
  • snmpwalk – 这个命令可以用来检查SNMP代理是否对请求做出响应。你可以使用下面的命令来检索系统描述。
snmpwalk -v2c -c public localhost system

如果你没有收到任何输出,SNMP代理可能没有正确运行。

  • tcpdump – 这个命令可以用来捕获SNMP流量,并分析其是否有问题。你可以使用以下命令来捕获161端口的SNMP流量。
sudo tcpdump -i eth0 -s 0 -w snmp.pcap udp port 161

上述命令将捕获eth0接口上的所有SNMP流量,并将其保存到一个名为snmp.cap的文件。然后你可以使用Wireshark这样的工具来分析捕获的流量。

配置SNMP社区字符串

社区字符串用于验证SNMP请求和响应。Net-SNMP的默认社区字符串是 “public”,这是一个众所周知的社区字符串,应该被改变以确保你的SNMP配置的安全性。

要配置SNMP社区字符串,请打开位于/etc/snmp/snmpd.conf的SNMP守护进程配置文件,添加以下几行

rocommunity <community_string> <IP_address>

用你想使用的新社区字符串替换<community_string>,用你想授予只读权限的主机的IP地址替换。你可以用不同的社区字符串和IP地址添加多行,以提供对多个主机的访问。

例如,要设置社区字符串为 “mycommunity”,并允许访问IP地址为192.168.1.10的主机,请在配置文件中添加以下一行

rocommunity mycommunity 192.168.1.10

一旦你更新了配置文件,请重新启动SNMP守护程序,以便使变化生效。

sudo systemctl restart snmpd

配置SNMP陷阱

SNMP陷阱是用来通知SNMP管理员网络设备上发生的重要事件或状况。例如,当网络设备上的一个磁盘快满了,或者一个硬件组件出现故障时,可以发送一个陷阱。

要配置SNMP陷阱,请打开SNMP守护进程的配置文件,并添加以下几行 –

trap2sink <IP_address> <community_string>

<IP_address>替换为将接收陷阱的SNMP管理器的IP地址,将<community_string>替换为SNMP管理器的社区字符串。

例如,要使用社区字符串 “mycommunity “向IP地址为192.168.1.100的SNMP管理器发送陷阱,请在配置文件中添加以下一行

trap2sink 192.168.1.100 mycommunity

你可以用不同的IP地址和社区字符串添加多行,向多个SNMP管理器发送陷阱。

一旦你更新了配置文件,请重新启动SNMP守护程序以使变化生效。

sudo systemctl restart snmpd

在Nagios中使用SNMP

Nagios是一个流行的开源监控工具,可以用来监控网络设备、服务器和应用程序。Nagios可以使用SNMP来监视和管理支持SNMP的设备。

要在Nagios中使用SNMP,你需要安装Nagios SNMP插件。你可以用以下命令来安装插件

sudo apt-get install nagios-plugins-contrib

一旦插件安装完毕,你可以使用check_snmp插件来监控网络设备上的SNMP对象。例如,要监控IP地址为192.168.1.1的设备的系统正常运行时间,使用社区字符串 “mycommunity”,你可以使用以下命令

/usr/lib/nagios/plugins/check_snmp -H 192.168.1.1 -C mycommunity -o sysUpTime.0

上述命令将使用SNMP和社区字符串 “mycommunity “检索IP地址为192.168.1.1的设备的系统运行时间对象(1.3.6.1.2.1.3.0)。

你可以使用check_snmp插件来监控网络设备上的任何SNMP对象。只需将命令中的对象标识符(OID)替换为你希望监控的对象的OID。

结论

总之,Net-SNMP是一个强大而灵活的SNMP管理工具,只需几个步骤就可以在Linux系统上安装和配置。按照本文所述的步骤,你可以开始使用Net-SNMP,并开始更有效地监控和管理你的网络设备。记住一定要保护你的SNMP配置,并使用强大的社区字符串来防止对你的系统进行未经授权的访问。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程

Linux 基础