如何将远程 Linux 主机添加到 Cacti 进行监控

在之前的指南中,我们演示了如何 在 CentOS 8 上安装 Cacti 监控服务器. 本教程更进一步,向您展示如何在 Cacti 上添加和监控远程 Linux 主机。 我们将添加远程 Ubuntu 20.04 LTSCentOS 8 系统到 cacti 服务器进行监控。

让我们开始。

步骤 1) 在 Linux 主机上安装 SNMP 服务

SNMP,简称 简单网络管理协议 是一种用于收集网络中设备信息的协议。 使用 SNMP,您可以轮询 CPU 使用率、内存使用率、磁盘使用率、网络带宽等指标。此信息稍后将在 Cacti 中绘制,以提供远程主机性能的直观概览。

考虑到这一点,我们将在两个 Linux 主机上安装并启用 SNMP 服务:

在 Ubuntu 20.04 上

要安装 snmp 代理,请运行以下命令:

$ sudo apt install snmp snmpd -y

在 CentOS 8 上

$ sudo dnf install net-snmp net-snmp-utils -y

SNMP 在安装时自动启动。 要确认这一点,请运行以下命令确认状态:

$ sudo systemctl status snmpd

如果该服务尚未运行,请在启动时启动并启用它,如下所示:

$ sudo systemctl start snmpd

我们可以清楚地看到该服务已启动并正在运行。 默认情况下,SNMP 在 UDP 端口 161 上运行侦听,您可以使用如图所示的 netstat 命令验证这一点。

$ sudo netstat -pnltu | grep snmpd

步骤 2) 配置 SNMP 服务

至此,我们已经成功安装了snmp服务,并确认它按预期运行。 下一步操作是配置 snmp 服务,以便可以收集数据并将其传送到 Cacti 服务。

配置文件位于 /etc/snmp/snmpd.conf

对于 Ubuntu 20.04

我们需要配置一些参数。 首先,找到 系统位置系统联系人 指令。 这些定义了您的 Linux 客户端的物理位置。

因此,请随意提供您客户的位置。

接下来,找到 代理地址 指示。 这是指代理将侦听的 IP 地址和端口号。

如下所示调整指令,其中 192.168.2.106 是我的客户端系统的地址。

agentaddress  udp:192.168.2.106:161

该指令现在将允许系统的本地 IP 侦听任何 snmp 请求。 接下来,在其他视图指令上方添加下面的视图指令:

view     all      included     .1      80

接下来,更改 社区 属性如下图

rocommunity  public default -V systemonly
to:
rocommunity  public default -V all

最后,为确保 snmp 服务按预期工作,请在 Linux 主机上运行以下命令。

$ sudo snmpwalk -v 1 -c public -O e 192.168.2.106

如图所示,您应该得到一些大量输出。

对于 CentOS 8

在 CentOS 8 中,配置略有不同。 首先,找到以 com2sec 指令如图所示:

我们将指定一个新的安全名称,称为 所有用户 并删除 不是配置用户 如图所示:

接下来,找到以 团体 指令如图所示。

我们将修改第二个属性并指定 全集团 作为组名和 所有用户 作为先前定义的安全名称。

在视图部分,添加这一行

view    AllView         included        .1

最后,找到以 使用权 指示。

修改如下:

Save 更改并退出配置文件。 重新启动 snmpd 守护进程以使更改生效

$ sudo systemctl restart snmpd

此外,启用服务以在启动时启动。

$ sudo systemctl enable snmpd

再次使用 snmpwalk 命令验证 snmp 配置是否按预期工作:

$ sudo snmpwalk -v 2c -c public -O e 127.0.0.1

完美的! 一切似乎都按预期运行。

步骤3)配置snmp的防火墙规则

接下来,我们需要打开 udp 端口​​ 161 以允许 Cacti 服务器和 Linux 主机上的 snmp 流量。

对于 Ubuntu 20.04 主机

运行 unders 命令在防火墙中允许 udp 端口​​ 161,

$ sudo ufw allow 161/udp
$ sudo ufw reload

CentOS 8 主机

对于 CentOS 8 客户端和也在 CentOS 8 上运行的 Cacti 服务器,调用以下命令:

$ sudo firewall-cmd --add-port=161/udp --zone=public --permanent
$ sudo firewall-cmd --reload

前往 Cacti 服务器并运行显示的命令以确认 snmp 正在从远程客户端传送指标。

$ sudo snmpwalk -v 1 -c public -O e 192.168.2.106  # Ubuntu
$ sudo snmpwalk -v 2c -c public -O e 192.168.2.104 # CentOS

伟大的! 这证实了 Cacti 服务器正在从远程 Linux 系统接收系统指标。

步骤 4) 将远程 Linux 主机添加到 Cacti

这是您必须添加远程 Linux 主机的最后一部分。 因此,登录 Cacti 服务器并单击“创建设备‘ 如图所示。

在我的例子中,我的 Ubuntu 远程主机已经被 Cacti 检测到并如图所示列出。

单击您的设备并敏锐地注意到最顶部的 SNMP 信息,如图所示。

接下来,向下滚动并单击“Save’ 按钮。

如果您的设备未列出,只需单击“创建‘ > ‘设备‘ 并像在 CentOS8 主机中一样填写设备的详细信息,如图所示。

添加设备后,单击“图表‘ 标签。

在下一页上,选择您的设备名称

一直滚动到底部,然后单击“创建‘ 按钮。

等待大约 10-20 分钟,让图表开始填充。 最后,您将开始注意到如图所示绘制的远程主机的统计信息。

这给本文带来了一个结论。 我们很高兴您能够一路跟随。 请让我们知道它是怎么回事,如果有任何问题,我们将很乐意提供帮助。