Так уж случилось, что на одном из серверов порт net-snmp никак не хотел собираться, ругаясь на ошибки компиляции. Тратить время, разбираться и устранять причину не очень хотелось, поэтому решил воспользоваться возможностями штатного агента SNMP - bsnmpd.
bsnmpd (сокращено от Begemot SNMPD) - это минимальный агент SNMP, предусматривающий возможность расширения с помощью внешних модулей.
Файл конфигурации - /etc/snmpd.config, который довольно хорошо прокомментирован. После правки "под себя", получился следующий конфиг (комментарии удалены):
location := "Location 1" contact := "contact [at] example [dot] com" system := 1 # FreeBSD traphost := localhost trapport := 162 read := "read_community_here" write := "write_community_here" trap := "trap_community_here" NoAuthProtocol := 1.3.6.1.6.3.10.1.1.1 HMACMD5AuthProtocol := 1.3.6.1.6.3.10.1.1.2 HMACSHAAuthProtocol := 1.3.6.1.6.3.10.1.1.3 NoPrivProtocol := 1.3.6.1.6.3.10.1.2.1 DESPrivProtocol := 1.3.6.1.6.3.10.1.2.2 AesCfb128Protocol := 1.3.6.1.6.3.10.1.2.4 securityModelAny := 0 securityModelSNMPv1 := 1 securityModelSNMPv2c := 2 securityModelUSM := 3 MPmodelSNMPv1 := 0 MPmodelSNMPv2c := 1 MPmodelSNMPv3 := 3 noAuthNoPriv := 1 authNoPriv := 2 authPriv := 3 %snmpd begemotSnmpdDebugDumpPdus = 2 begemotSnmpdDebugSyslogPri = 7 begemotSnmpdCommunityString.0.1 = $(read) begemotSnmpdCommunityDisable = 1 begemotSnmpdPortStatus.0.0.0.0.161 = 1 begemotSnmpdLocalPortStatus."/var/run/snmpd.sock" = 1 begemotSnmpdLocalPortType."/var/run/snmpd.sock" = 4 begemotTrapSinkStatus.[$(traphost)].$(trapport) = 4 begemotTrapSinkVersion.[$(traphost)].$(trapport) = 2 begemotTrapSinkComm.[$(traphost)].$(trapport) = $(trap) sysContact = $(contact) sysLocation = $(location) sysObjectId = 1.3.6.1.4.1.12325.1.1.2.1.$(system) snmpEnableAuthenTraps = 2 begemotSnmpdModulePath."mibII" = "/usr/lib/snmp_mibII.so" begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so" begemotSnmpdModulePath."bridge" = "/usr/lib/snmp_bridge.so" |
Конфигурационный файл готов... Можно запускать сервис. Однако, тем кто не закрыл SNMP в файрволе, советую внести список разрешенных хостов в hosts.allow. Пример:
snmpd : 127.0.0.1 : allow snmpd : ALL : deny |
Добавим запуск bsnmpd в rc.conf:
# echo '# Begemot SNMPD' >> /etc/rc.conf # echo 'bsnmpd_enable="YES"' >> /etc/rc.conf |
Запускаем сервис и проверяем, запустился ли демон:
# sh /etc/rc.d/bsnmpd start Starting bsnmpd. # ps -ax | grep snmpd | grep -v grep 7842 - Ss 0:00,08 /usr/sbin/bsnmpd -p /var/run/snmpd.pid |
Процесс запустился. Теперь можно снимать статистику работы сервера по SNMP, например, используя Cacti.
Итак, как уже оговаривалось вначале, расширение функциональных возможностей bsnmpd возможно с помощью внешних модулей. На момент написания статьи вместе с bsnmpd поставлялись следующие модули (их можно сразу подключать в конфигурационном файле без дополнительных манипуляций):
Дополнительные модули можно найти в портах. Посмотрим, что на сегодня доступно в портах:
# ls /usr/ports/net-mgmt/ | grep bsnmp |
Теперь более детально:
Процесс установки и настройки модулей не рассматриваю - это уже тема для отдельной статьи.
Последние комментарии
21 неделя 6 дней назад
46 недель 20 часов назад
2 года 46 недель назад
3 года 16 недель назад
3 года 39 недель назад
4 года 2 недели назад
4 года 3 недели назад
4 года 6 недель назад
4 года 18 недель назад
4 года 22 недели назад