У меня есть два сервера, на которых работают варианты 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, но я не мог найти более простого и стабильного способа применить это изменение.