Назад | Перейти на главную страницу

Как я могу заставить FreeNAS и pfSense сообщать больше с помощью SNMP?

У меня есть два сервера, на которых работают варианты FreeBSD: один - это маршрутизатор pfSense, а другой - сервер FreeNAS 8. Оба этих сервера работают по протоколу SNMP, и я собираю и отображаю их информацию с помощью третьего сервера Cacti.

Данные SNMP как от сервера pfSense, так и от сервера FreeNAS не включают использование памяти, использование ЦП и среднюю нагрузку.

Графики трафика для сервера pfSense выглядят нормально. Отчеты об использовании диска с сервера FreeNAS выглядят красиво. Я просто не получаю никаких данных об использовании памяти, использовании ЦП или средней нагрузки. Я знаю, что оба этих сервера должны быть способны предоставлять эти данные, потому что в веб-администраторах pfSense и freeNAS я могу просматривать графики. Но я бы предпочел, чтобы все графики были в Cacti для простоты управления.

Как я могу заставить мой сервер pfSense предоставлять данные об использовании памяти, использовании ЦП и средней нагрузке через SNMP? Как я могу заставить свой сервер FreeNAS предоставлять данные об использовании памяти, использовании ЦП и средней нагрузке через SNMP? Я предполагаю, что для обоих серверов будет работать одна и та же процедура.

После долгих исследований я обнаружил, в чем проблема. И pfSense, и FreeNAS обеспечивают поддержку SNMP через Демон SNMP FreeBSD begemot (bsnmpd). Чтобы предоставить информацию об использовании памяти, использовании ЦП и средней нагрузке, демон begemot SNMP должен иметь дополнительный модуль, snmp_ucd.so загружен.

я нашел следующая ветка форума объясняя загрузку snmp_ucd.so, однако его не было в двух моих системах.

Чтобы решить эту проблему, я создал виртуальную машину и установил на нее FreeBSD 8.3. Внутри этой виртуальной машины я использовал систему портов FreeBSD для загрузки и сборки необходимых snmp_ucd.so библиотека с использованием:

cd /usr/ports/net-mgmt/bsnmp-ucd
make all install clean 
cd /usr/ports/net-mgmt/bsnmptools
make all install clean

После этого я использовал scp копировать /usr/local/lib/snmp_ucd.so с виртуальной машины FreeBSD как на мой сервер pfSense, так и на мой сервер FreeNAS.

Затем я использовал графический интерфейс FreeNAS, чтобы добавить следующие Вспомогательные параметры:

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

Это автоматически добавило строку в /etc/snmpd.config на сервере FreeNAS, и мне удалось получить графики!

Сервер pfSense был более сложным, так как он не позволял мне применить изменения с помощью графического интерфейса, а скрипты 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 изменения были применены, и графики использования ЦП теперь работают! Это изменение почти наверняка не сохранится при обновлениях pfSense, но я не мог найти более простого и стабильного способа применить это изменение.