我如何使FreeNAS和pfSense使用SNMP报告更多信息?


10

我有两台运行FreeBSD变体的服务器:一台是pfSense路由器,一台是FreeNAS 8服务器。这两个服务器都运行SNMP,并且我正在使用第三台Cacti服务器收集和绘制其信息。

来自pfSense服务器和FreeNAS服务器的SNMP数据不包括内存使用情况,CPU使用情况或平均负载。

pfSense服务器的流量图看起来不错。FreeNAS服务器的磁盘使用情况报告看起来很漂亮。我只是没有获得有关内存使用率,CPU使用率或平均负载的任何数据。我知道这两个服务器都应该能够提供此数据,因为在pfSense和freeNAS网络管理员中,我可以查看图表。但是我更希望Cacti中具有所有图形,以便于管理。

如何获取pfSense服务器以通过SNMP提供内存使用率,CPU使用率和平均负载数据?如何获得我的FreeNAS服务器以通过SNMP提供内存使用率,CPU使用率和平均负载数据?我假设相同的过程将适用于两台服务器。

Answers:


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

之后,我曾经从FreeBSD虚拟机scp复制/usr/local/lib/snmp_ucd.so到pfSense服务器以及FreeNAS服务器。

然后,我使用FreeNAS GUI添加以下辅助参数

begemotSnmpdModulePath."ucd" = "/mnt/Garrison/jail/usr/local/lib/snmp_ucd.so"

FreeNAS的屏幕截图

这自动将线添加到/etc/snmpd.configFreeNAS服务器上,并且我能够获得图形!

pfSense服务器比较棘手,因为它不允许我使用GUI来应用更改,并且pfSense脚本将自动重建并/etc/snmpd.config覆盖我的更改。为了使pfSense工作,我必须进行编辑/etc/inc/services.inc。在这行之前的内容是:

fwrite($fd, $snmpdconf);

我添加了以下内容:

    //Josh Additions: Make load avg and CPU usage work:
    $snmpdconf .= <<<EOD
# Josh additions:
begemotSnmpdModulePath."ucd" = "/usr/local/lib/snmp_ucd.so"



EOD;

然后,禁用和重新启用SNMP将应用更改,并且CPU使用率图表现在可以正常工作!这种变化几乎肯定不会在pfSense升级中持续存在,但是我找不到更简单,更稳定的方法来应用该变化。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.