Мы — долго запрягаем, быстро ездим, и сильно тормозим.
www.lissyara.su —> статьи —> FreeBSD —> настройка —> bsnmpd

Штатный Begemot micro-SNMP daemon

Автор: lissyara.


    Когда переводил /etc/defaults/rc.conf, то наткнулся в нём на интересные строки:
### даемон SNMP ###
# Убедитесь, что поняли значения безопасности, при управлении
# SNMP v1/v2 в вашей сети.
# Запускать демона SNMP (YES/NO).
bsnmpd_enable="NO"
# Флаги для bsnmpd.
bsnmpd_flags=""

   Собственно, только сейчас дошли руки разобраться - ху из ху :))). Даже не сами руки дошли - необходимо было мониторить машину по SNMP, но сторонний софт не хотелось ставить. Для начала подправим конфиг, я его заодно и перевёл:
# Пример конфигурационного файла для bsnmpd(1).

# Устанавливаем некоторые общие переменные
host := router.local
location := "Servernaya 10 floor"
contact := "admin@lissyara.su"
system := 1     # FreeBSD
traphost := localhost
trapport := 162

# Измените значение этих строк!!!
read := "secret-string"
# Раскомментируйте строку 42 для установки строки сообщества,
# которому дан доступ на запись.
write := "another-secret-string"
trap := "localhost"


# Конфишурация
%snmpd
begemotSnmpdDebugDumpPdus       = 2
begemotSnmpdDebugSyslogPri      = 7


# Установка сообществ на чтение и на запись.
#
# Дефолтовое значение строки сообщества - NULL (отметьте, что это отличается,
# от пустой строки). Это отключает оба доступа - и на чтение и на запись.
# Для включения доступа только на чтение, должна быть задана строка
# сообщества. Установка строки сообщества с правами на запись, устанавливает
# оба доступа - на чтение и на запись, с этой строкой.
#
# Будьте серёзны в понимании воплощения безопасности SNMPv2 - строка
# сообщества передаётся в открытом виде!
#
begemotSnmpdCommunityString.0.1 = $(read)
# begemotSnmpdCommunityString.0.2       = $(write)
begemotSnmpdCommunityDisable    = 1

# открывам cтандартные порты SNMP
begemotSnmpdPortStatus.[$(host)].161 = 1
begemotSnmpdPortStatus.127.0.0.1.161 = 1
# Примечание, обязательно проверьте командой типа ``sockstat | grep snmp''
# какие интерфейсы слушаются, по необходимости добавьте нужные, примерно так:
#begemotSnmpdPortStatus.192.168.0.253.161 = 1

# Открываем сокет UNIX
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

# Загружаем модуль MIB-2
begemotSnmpdModulePath."mibII"  = "/usr/lib/snmp_mibII.so"

# Принудительная установка частоты поллинга для 64-битных счётчиков
# интерфейса, в случае неправильных автоматических вычислений (что возможно в
# случае если интерфейс объявлен с неверным битрейтом через его MIB)
#%mibII
#begemotIfForcePoll = 2000

#
# Модуль Netgraph
#
begemotSnmpdModulePath."netgraph" = "/usr/lib/snmp_netgraph.so"
#
#%netgraph
#begemotNgControlNodeName = "snmpd"

#
# модуль pf(4)
#
#begemotSnmpdModulePath."pf"    = "/usr/lib/snmp_pf.so"

# Это добавлял я
begemotSnmpdModulePath."atm"    = "/usr/lib/snmp_atm.so"
begemotSnmpdModulePath."hostres" = "/usr/lib/snmp_hostres.so"

   После чего добавляем в /etc/rc.conf строку:
# bsnmpd
bsnmpd_enable="YES"

   И пробуем запустить:
/usr/home/lissyara/>/etc/rc.d/bsnmpd start
Starting bsnmpd.
/usr/home/lissyara/>ps -axjww | grep snmp | grep -v grep
root     42899     1 42899 42899    0 Ss    ??    0:00,08 /usr/sbin/bsnmpd
/usr/home/lissyara/>

   Если не запустился, смотрим /var/log/messages:
Nov 18 10:34:24 router snmpd[41762]: send: Connection refused
Nov 18 10:53:47 router snmpd[41896]: unknown variable
Nov 18 10:53:47 router snmpd[41896]: in file /etc/snmpd.config line 74
Nov 18 10:53:47 router snmpd[41896]: error in config file
Nov 18 10:54:26 router snmpd[41913]: send: Connection refused
Nov 18 10:55:27 router snmpd[41970]: send: Connection refused
Nov 18 11:02:29 router su: lissyara to root on /dev/ttyp2
Nov 18 11:05:22 router snmpd[42083]: pf_init(): open(): No such file or directory
Nov 18 11:05:22 router snmpd[42083]: lm_load: init failed: -1
Nov 18 11:05:22 router snmpd[42083]: init dep failed: 13 1.3.6.1.4.1.12325.1.1.1.6 2.112.102
Nov 18 11:05:22 router snmpd[42083]: error in config file
Nov 18 11:06:04 router snmpd[42103]: send: Connection refused
Nov 18 12:58:59 router snmpd[42899]: send: Connection refused
Nov 18 13:00:50 router snmpd[42964]: undefined macro 'trap'
Nov 18 13:00:50 router snmpd[42964]: in file /etc/snmpd.config line 51
Nov 18 13:00:50 router snmpd[42964]: error in config file

   Собственно, обычно всё ясно, почему не пашет. Имеющегося функционала вполне достаточно для мониторинга load averages, нагрузки интерфейсов, числа запущенных процессов, и сколько залогинено пользователей. Также можно мониторить разделы - сколько занято места, но мне этого не надо. Статистику можно снимать при помощи cacti.



размещено: 2006-11-18,
последнее обновление: 2010-10-15,
автор: lissyara


Trias, 2007-02-09 в 3:58:22

Демон достаточно интересный, позволяет работать с Counter64,
в net-snmp такого не находил. (может плохо искал).
Единственное не сумел заставить снимать 64bit с VLAN интерфейсов.

begemoto, 2008-02-09 в 0:51:21

Разделы мониторить не может, все что может в MIB'ах:
/usr/share/snmp/mibs
про Storage там ничего нет. Может я ошибаюсь?



 

  Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
  Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

© lissyara 2006-10-24 08:47 MSK

Время генерации страницы 0.0434 секунд
Из них PHP: 25%; SQL: 75%; Число SQL-запросов: 77 шт.
Исходный размер: 21425; Сжатая: 6404