Ключевые слова:snmp, freebsd, monitor, (найти похожие документы)
From: Алексей Кеда (lissyara) <admin@lissyara.su.>
Date: Mon, 28 Nov 2006 18:21:07 +0000 (UTC)
Subject: Настройка bsnmpd во FreeBSD
Оригинал: http://www.lissyara.su/?id=1293
Штатный Begemot micro-SNMP daemon
Когда переводил /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 := "[email protected]"
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 send: Connection refused
Nov 18 10:53:47 router snmpd unknown variable
Nov 18 10:53:47 router snmpd in file /etc/snmpd.config line 74
Nov 18 10:53:47 router snmpd error in config file
Nov 18 10:54:26 router snmpd send: Connection refused
Nov 18 10:55:27 router snmpd send: Connection refused
Nov 18 11:02:29 router su: lissyara to root on /dev/ttyp2
Nov 18 11:05:22 router snmpd pf_init(): open(): No such file or directory
Nov 18 11:05:22 router snmpd lm_load: init failed: -1
Nov 18 11:05:22 router snmpd 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 error in config file
Nov 18 11:06:04 router snmpd send: Connection refused
Nov 18 12:58:59 router snmpd send: Connection refused
Nov 18 13:00:50 router snmpd undefined macro 'trap'
Nov 18 13:00:50 router snmpd in file /etc/snmpd.config line 51
Nov 18 13:00:50 router snmpd error in config file
Собственно, обычно всё ясно, почему не пашет. Имеющегося
функционала вполне достаточно для мониторинга load averages, нагрузки
интерфейсов, числа запущенных процессов, и сколько залогинено
пользователей. Также можно мониторить разделы - сколько занято места,
но мне этого не надо. Статистику можно снимать при помощи cacti.
У меня пишет:
pf_init(): open(): No such file or directory
: lm_load: init failed: -1
: init dep failed: 13 1.3.6.1.4.1.12325.1.1.1.6 2.112.102
: error in config file