在RockyLinux8上安装和配置SNMP

通过学习本教程学习如何安装和洛基的Linux 8.配置SNMP SNMP代表 Simple  Network Management  Protocol。它是一种 Internet 标准协议,提供了一种无代理方法来管理和监控网络设备和服务器的健康信息、系统指标,例如 CPU 负载、物理内存使用情况、正在运行的进程数、服务状态或支持轮询的任何其他指标的 SNMP 协议。

在 Rocky Linux 8 上安装和配置 SNMP

在 Rocky Linux 8 上安装 Net-SNMP

该 NET-SNMP 是其提供的试剂和实用程序,它使从检索使用SNMP协议系统数据的应用程序套件。

在安装 Net-SNMP 之前,请确保您的系统软件包是最新的。

dnf update

要在 Rocky Linux 8 上安装 Net-SNMP(SNMP 代理、SNMP 守护程序和其他 SNMP 实用程序),只需执行以下命令;

dnf install net-snmp net-snmp-libs net-snmp-utils

在 Rocky Linux 8 上运行 SNMP 守护进程

安装后,Net-SNMP 会创建一个名为 snmpd. 可以使用 systemctl 命令管理该服务。

例如,启动并使其在系统启动时运行;

systemctl enable --now snmpd

检查状态;

systemctl status snmpd
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
   Loaded: loaded (/usr/lib/systemd/system/snmpd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2021-08-06 23:14:51 EAT; 4s ago
 Main PID: 6113 (snmpd)
    Tasks: 1 (limit: 4938)
   Memory: 7.7M
   CGroup: /system.slice/snmpd.service
           └─6113 /usr/sbin/snmpd -LS0-6d -f

Aug 06 23:14:48 nfs.kifarunix-demo.com systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
Aug 06 23:14:51 nfs.kifarunix-demo.com snmpd[6113]: NET-SNMP version 5.8
Aug 06 23:14:51 nfs.kifarunix-demo.com systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..

重新启动 SNMP 守护进程;

在 Rocky Linux 8 上配置 SNMP

Net-SNMP 安装完成后,继续对其进行配置,使您能够远程轮询系统指标。

Net-SNMP 代理守护程序的默认配置文件是 /etc/snmp/snmpd.conf. 该文件受到高度评价,因此,我们只会进行一些更改。因此,请在继续之前制作原始文件的副本。

cp /etc/snmp/snmpd.conf{,orig}

配置系统信息

默认情况下,Net-SNMP 提供有关系统的主机名、位置、管理员联系信息等基本信息  。该信息 分别由对象的值提供 sysName, sysLocation 和 sysContact

要使用 SNMP 列出默认系统信息,只需使用snmpwalk 带有默认版本 2 社区字符串的命令 即可 public。确保 SNMP 守护进程正在运行,然后才能运行以下命令;

snmpwalk -v2c -c public localhost system

您甚至可以尝试使用服务器IP;

snmpwalk -v2c -c public 192.168.60.19 system
SNMPv2-MIB::sysDescr.0 = STRING: Linux rocky8.kifarunix-demo.com 4.18.0-305.10.2.el8_4.x86_64 #1 SMP Tue Jul 20 20:34:55 UTC 2021 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (467) 0:00:04.67
SNMPv2-MIB::sysContact.0 = STRING: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
SNMPv2-MIB::sysName.0 = STRING: rocky8.kifarunix-demo.com
SNMPv2-MIB::sysLocation.0 = STRING: Unknown (edit /etc/snmp/snmpd.conf)
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORID.1 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: SNMP-VIEW-BASED-ACM-MIB::vacmBasicGroup
SNMPv2-MIB::sysORID.6 = OID: TCP-MIB::tcpMIB
SNMPv2-MIB::sysORID.7 = OID: IP-MIB::ip
SNMPv2-MIB::sysORID.8 = OID: UDP-MIB::udpMIB

要更新系统信息,只需打开 SNMPD 配置文件, /etc/snmp/snmpd.conf 并调整上述对象的值;

vim /etc/snmp/snmpd.conf

请注意,sysName 对象的值 默认设置为系统主机名。因此, sysLocation 与 sysContact 可以在配置文件中设置 System contact information 部分。

在下面评论这些默认行;

#syslocation Unknown (edit /etc/snmp/snmpd.conf)
#syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)

这样它可能看起来像下面的配置所示;

###############################################################################
# System contact information
#

# It is also possible to set the sysContact and sysLocation system
# variables through the snmpd.conf file:

# Comment the default lines below
#syslocation Unknown (edit /etc/snmp/snmpd.conf)
#syscontact Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
syslocation Serverfarm, DC2, Rack 3
syscontact Kifarunix-Admin <admin@kifarunix-demo.com>

保存配置文件并重新加载 SNMPD 以使更改生效。

systemctl reload snmpd

验证更改;

snmpwalk -v2c -c public localhost system
SNMPv2-MIB::sysDescr.0 = STRING: Linux rocky8.kifarunix-demo.com 4.18.0-305.10.2.el8_4.x86_64 #1 SMP Tue Jul 20 20:34:55 UTC 2021 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (75513) 0:12:35.13
SNMPv2-MIB::sysContact.0 = STRING: Kifarunix-Admin <admin@kifarunix-demo.com>
SNMPv2-MIB::sysName.0 = STRING: rocky8.kifarunix-demo.com
SNMPv2-MIB::sysLocation.0 = STRING: Serverfarm, DC2, Rack 3
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00

配置 SNMP 认证

SNMP 支持三个版本的 SNMP 协议; version 1, 2c 和 3

  • 版本 1 和 2c 都使用 提供身份验证 community string,代理和客户端之间的共享秘密通过网络以明文形式传递。
  • 版本 3 支持使用各种协议的用户身份验证和消息加密,因此更安全一些。

在 Rocky Linux 8 上配置 SNMP 版本 2c 社区

如上所述,SNMP v2 使用权限指令、社区字符串和源地址提供访问。源地址可以是 Nagios Server(SNMP 服务器)的 IP。这个指令应该在格式中设置;

directive community [source [OID]]

其中指令可以是 rocommunity (提供只读访问)或 rwcommunity (提供读写访问),OID 是提供访问权限的可选 SNMP 树。

例如,要配置 SNMP v2c,以允许使用社区字符串 read-only 从 specific source host诸如 Nagios 之类的监控服务器访问系统对象 monsvronly,只需在 snmpd 配置文件中输入以下行即可。

rocommunity monsvronly 192.168.58.8

您可以使用下面的命令;

echo -e "# SNMP version 2c community\nrocommunity monsvronly 192.168.58.8" >> /etc/snmp/snmpd.conf

192.168.58.8 允许访问的远​​程服务器的IP在哪里 。

要允许来自本地主机,请添加以下行;

rocommunity monsvronly 127.0.0.1

配置 SNMP 守护程序连接端口

默认情况下,SNMP 守护进程代理在 UDP 端口 161 上接收请求。然而,默认情况下 SNMPd 不打开此端口。

配置SNMPd监听环回和UDP 161端口的IP接口,需要编辑snmpd systemd启动脚本, /lib/systemd/system/snmpd.service 如下图;

替换行:

ExecStart=/usr/sbin/snmpd $OPTIONS -f

为;

ExecStart=/usr/sbin/snmpd $OPTIONS -f udp:127.0.0.1:161 udp:192.168.60.19:161

192.168.60.19 服务器接口IP。

通过运行下面的命令;

sed -i '/$OPTIONS -f/ s/$/ udp:127.0.0.1:161 udp:192.168.56.9:161/' /lib/systemd/system/snmpd.service

这样你的配置看起来像;

cat /lib/systemd/system/snmpd.service
[Unit]
Description=Simple Network Management Protocol (SNMP) Daemon.
After=syslog.target network-online.target

[Service]
Type=notify
Environment=OPTIONS="-LS0-6d"
EnvironmentFile=-/etc/sysconfig/snmpd
ExecStart=/usr/sbin/snmpd $OPTIONS -f udp:127.0.0.1:161 udp:192.168.60.19:161
ExecReload=/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target

保存配置文件并重新加载 systemd 单元;

systemctl daemon-reload

重新启动 SNMP 守护进程。

systemctl restart snmpd

验证 UDP 端口 161 是否已打开。

netstat -alun | grep 161
UNCONN 0      0      192.168.60.19:161        0.0.0.0:*          
UNCONN 0      0          127.0.0.1:161        0.0.0.0:*

在 FirewallD 上打开 SNMP 端口

如果 firewalld 正在运行,请运行以下命令打开 SNMPd 端口

firewall-cmd --add-port=161/udp --permanent
firewall-cmd --reload

验证连接

测试来自允许的远程主机的连接。

检查服务器上的 UDP 端口是否可达。

nc -uvz 192.168.60.19 161
Ncat: Version 7.70 ( https://nmap.org/ncat )
Ncat: Connected to 192.168.60.19:161.
Ncat: UDP packet sent successfully
Ncat: 1 bytes sent, 0 bytes received in 2.03 seconds.

测试您是否可以使用snmpwalk 和读取输出的前 10 行来查询服务器上的 SNMP 对象 。

snmpwalk -v2c -c monsvronly 192.168.60.19 | head -10

确保您从允许的主机运行上述命令。

SNMPv2-MIB::sysDescr.0 = STRING: Linux rocky8.kifarunix-demo.com 4.18.0-305.10.2.el8_4.x86_64 #1 SMP Tue Jul 20 20:34:55 UTC 2021 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (486) 0:00:04.86
SNMPv2-MIB::sysContact.0 = STRING: Kifarunix-Admin <admin@kifarunix-demo.com>
SNMPv2-MIB::sysName.0 = STRING: rocky8.kifarunix-demo.com
SNMPv2-MIB::sysLocation.0 = STRING: Serverfarm, DC2, Rack 3
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (1) 0:00:00.01
SNMPv2-MIB::sysORID.1 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance
...

在 Rocky Linux 8 上配置 SNMP 版本 3

SNMP V3采用的是 username,  permission,  security level, authentication 并 privacy passphrases 允许访问。

因此,您需要创建用户进行身份验证。创建时,用户被添加到以下配置文件中; /etc/snmp/snmpd.conf 和 /var/lib/net-snmp/snmpd.conf

在继续之前,请像我们上面所做的那样复制原始配置文件。

cp /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak

注释上面添加的 snmp V2 配置行;

sed -i '/^rocommunity/ s/^/#/' /etc/snmp/snmpd.conf

停止 SNMP 守护进程

systemctl stop snmpd

使用该net-snmp-create-v3-user 命令创建只读身份验证用户 。命令语法是;

net-snmp-create-v3-user [-ro] [-A authpass] [-a MD5|SHA] [-X privpass][-x DES|AES] [username]

例如;

net-snmp-create-v3-user -ro -A STrP@SSWRD -a SHA -X STr0ngP@SSWRD -x AES snmpadmin

示例命令输出;

adding the following line to /var/lib/net-snmp/snmpd.conf:
   createUser snmpadmin SHA "STrP@SSWRD" AES "STr0ngP@SSWRD"
adding the following line to /etc/snmp/snmpd.conf:
   rouser snmpadmin

启动 SNMP 守护进程

systemctl start snmpd

启用 SNMP 守护程序以在系统重新启动时运行。

systemctl enable snmpd

像上面一样将入站防火墙规则配置为 UDP 端口 161。

测试以验证一切是否按预期工作。

snmpwalk -v3 -a SHA -A STrP@SSWRD -x AES -X STr0ngP@SSWRD -l authPriv -u snmpadmin localhost | head
SNMPv2-MIB::sysDescr.0 = STRING: Linux rocky8.kifarunix-demo.com 4.18.0-305.10.2.el8_4.x86_64 #1 SMP Tue Jul 20 20:34:55 UTC 2021 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (1775) 0:00:17.75
SNMPv2-MIB::sysContact.0 = STRING: Kifarunix-Admin <admin@kifarunix-demo.com>
SNMPv2-MIB::sysName.0 = STRING: rocky8.kifarunix-demo.com
SNMPv2-MIB::sysLocation.0 = STRING: Serverfarm, DC2, Rack 3
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORID.1 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance

从远程主机验证;

snmpwalk -v3 -a SHA -A STrP@SSWRD -x AES -X STr0ngP@SSWRD -l authPriv -u snmpadmin 192.168.60.19 | head
SNMPv2-MIB::sysDescr.0 = STRING: Linux rocky8.kifarunix-demo.com 4.18.0-305.10.2.el8_4.x86_64 #1 SMP Tue Jul 20 20:40:55 UTC 2021 x86_64
SNMPv2-MIB::sysObjectID.0 = OID: NET-SNMP-MIB::netSnmpAgentOIDs.10
DISMAN-EVENT-MIB::sysUpTimeInstance = Timeticks: (22366) 0:03:43.66
SNMPv2-MIB::sysContact.0 = STRING: Kifarunix-Admin <admin@kifarunix-demo.com>
SNMPv2-MIB::sysName.0 = STRING: rocky8.kifarunix-demo.com
SNMPv2-MIB::sysLocation.0 = STRING: Serverfarm, DC2, Rack 3
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORID.1 = OID: SNMP-FRAMEWORK-MIB::snmpFrameworkMIBCompliance
SNMPv2-MIB::sysORID.2 = OID: SNMP-MPD-MIB::snmpMPDCompliance
SNMPv2-MIB::sysORID.3 = OID: SNMP-USER-BASED-SM-MIB::usmMIBCompliance

华丽的!!!SNMP 已配置!

关于如何在 Rocky Linux 8 上安装和配置 SNMP 的指南到此结束。

您现在可以从远程监控服务器轮询系统指标。

 收藏 (0) 打赏

您可以选择一种方式赞助本站

支付宝扫一扫赞助

微信钱包扫描赞助

未经允许不得转载:番茄网 » 在RockyLinux8上安装和配置SNMP

分享到: 生成海报

评论 抢沙发

  • QQ号
  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

像番茄一样 表里如一

表里如一表里如一
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活