Jos*_*osh 10 freebsd freenas snmp pfsense
我有两台运行 FreeBSD 变体的服务器:一台是 pfSense 路由器,另一台是 FreeNAS 8 服务器。这两个服务器都运行 SNMP,我正在使用第三个 Cacti 服务器收集和绘制它们的信息。
来自 pfSense 服务器和 FreeNAS 服务器的 SNMP 数据不包括内存使用、CPU 使用和负载平均。
pfSense 服务器的流量图看起来不错。来自 FreeNAS 服务器的磁盘使用报告看起来很漂亮。我只是没有得到任何关于内存使用、CPU 使用和负载平均的数据。我知道这两个服务器都应该能够提供这些数据,因为在 pfSense 和 freeNAS 网络管理员中我可以查看图表。但为了便于管理,我更愿意将所有图表都放在 Cacti 中。
如何让我的 pfSense 服务器通过 SNMP 提供内存使用情况、CPU 使用情况和负载平均数据?如何让我的 FreeNAS 服务器通过 SNMP 提供内存使用、CPU 使用和负载平均数据?我假设相同的过程适用于两台服务器。
Jos*_*osh 11
在对此进行了大量研究后,我发现了问题所在。pfSense 和 FreeNAS 都通过FreeBSD begemot SNMP 守护进程 (bsnmpd)提供 SNMP 支持。为了提供内存使用、CPU 使用和负载平均信息,begemot SNMP 守护进程需要snmp_ucd.so
加载一个附加模块。
我发现以下论坛帖子解释了加载snmp_ucd.so
,但是它在我的两个系统上不存在。
为了解决这个问题,我创建了一个虚拟机并在其上安装了 FreeBSD 8.3。在这个虚拟机中,我使用 FreeBSD Ports 系统来下载和构建所需的snmp_ucd.so
库:
cd /usr/ports/net-mgmt/bsnmp-ucd
make all install clean
cd /usr/ports/net-mgmt/bsnmptools
make all install clean
Run Code Online (Sandbox Code Playgroud)
在那之后,我曾经从 FreeBSD 虚拟机scp
复制/usr/local/lib/snmp_ucd.so
到我的 pfSense 服务器以及我的 FreeNAS 服务器。
然后我使用 FreeNAS GUI 添加以下辅助参数:
begemotSnmpdModulePath."ucd" = "/mnt/Garrison/jail/usr/local/lib/snmp_ucd.so"
Run Code Online (Sandbox Code Playgroud)
这将自动添加到/etc/snmpd.config
FreeNAS 服务器上的行,我能够获得图表!
pfSense 服务器更加棘手,因为它不允许我使用 GUI 应用更改,并且 pfSense 脚本会自动重建/etc/snmpd.config
,覆盖我的更改。为了让 pfSense 工作,我必须编辑/etc/inc/services.inc
. 在这行之前:
fwrite($fd, $snmpdconf);
Run Code Online (Sandbox Code Playgroud)
我添加了以下内容:
//Josh Additions: Make load avg and CPU usage work:
$snmpdconf .= <<<EOD
# Josh additions:
begemotSnmpdModulePath."ucd" = "/usr/local/lib/snmp_ucd.so"
EOD;
Run Code Online (Sandbox Code Playgroud)
然后,禁用和重新启用 SNMP 应用更改和 CPU 使用图现在工作!这种变化几乎肯定不会在 pfSense 升级中持续存在,但我找不到一种更简单、更稳定的方法来应用这一变化。
归档时间: |
|
查看次数: |
6957 次 |
最近记录: |