Для настройки родного bsnmp сервера, требуется также установить net-snmp из портов ради snmpwalk и snmptranslate и иже с ними.
Можно некоторые настройки nst-snmp вынести в /etc/make.conf (хотя сама серверная часть нам не нужна, но для порядка и будущих экспериментов пропишем)
Код: Выделить всё
.if ${.CURDIR} == ${PORTSDIR}/net-mgmt/net-snmp
WITHOUT_PERL=yes
WITHOUT_IPV6=yes
DEFAULT_SNMP_VERSION="2"
NET_SNMP_64=true
NET_SNMP_SYS_CONTACT="iam@domain.tld"
NET_SNMP_SYS_LOCATION="Moscow,Russia"
DEFAULT_SNMP_VERSION=3
#NET_SNMP_MIB_MODULES="host disman/event-mib smux mibII/tcpTable ucd-snmp/diskio host/hr_system host/hr_storag
NET_SNMP_LOGFILE=/var/log/snmpd.log
NET_SNMP_PERSISTENTDIR=/var/net-snmp
.endif
Код: Выделить всё
cd /usr/ports/net-mgmt/net-snmp && make install
Код: Выделить всё
cd /usr/ports/net-mgmt/bsnmp-ucd && make install
перезапускаем демона, и mib`ы начинают работать...
еще достаточно интересный порт bsnmp-regex - позволяет парсить логи. Стоит ковырнуть.
Для того чтобы иметь возможность отслеживать загрузку по ядрам для щедулера SHED_ULE необходимо пропатчить /usr/src/usr.sbin/bsnmpd/modules/snmp_hostres/hostres_processor_tbl.c
Код: Выделить всё
--- hostres_processor_tbl.c.orig 2008-12-24 20:28:24.000000000 +0300
+++ hostres_processor_tbl.c 2008-12-24 20:28:32.000000000 +0300
@@ -120,7 +120,7 @@
processor_getpcpu(struct kinfo_proc *ki_p)
{
- if (ccpu == 0 || fscale == 0)
+ if (fscale == 0)
return (0.0);
#define fxtofl(fixpt) ((double)(fixpt) / fscale)
web# snmpwalk -c public -v2c localhost processor
HOST-RESOURCES-MIB::hrProcessorFrwID.3 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrProcessorFrwID.8 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrProcessorFrwID.13 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrProcessorFrwID.18 = OID: SNMPv2-SMI::zeroDotZero
HOST-RESOURCES-MIB::hrProcessorLoad.3 = INTEGER: 67
HOST-RESOURCES-MIB::hrProcessorLoad.8 = INTEGER: 64
HOST-RESOURCES-MIB::hrProcessorLoad.13 = INTEGER: 53
HOST-RESOURCES-MIB::hrProcessorLoad.18 = INTEGER: 75
Темплейты для Cacti берутся соответственно на форуме Cacti.
Патч для работы 64bit LAGG счетчиков
http://www.nabble.com/bsnmpd---64bits-c ... 37241.html
Вот так выглядит snmp.conf у меня
Код: Выделить всё
host := ns1.domain.tld
location := "Servernaya ST4"
contact := "dv@domain.tld"
system := 1 # FreeBSD
traphost := localhost
trapport := 162
read := "public1"
write := "public2"
trap := "mytrap"
%snmpd
begemotSnmpdDebugDumpPdus = 2
begemotSnmpdDebugSyslogPri = 7
begemotSnmpdCommunityString.0.1 = $(read)
begemotSnmpdCommunityDisable = 1
begemotSnmpdPortStatus.[$(host)].161 = 1
begemotSnmpdPortStatus.127.0.0.1.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."ucd" = "/usr/local/lib/snmp_ucd.so"
%ucd
memMinimumSwap = 1600
memSwapErrorMsg = "No free swap!"
laConfig.1 = "6.0"
laConfig.2 = "5.0"
laConfig.3 = "4.0"
laErrMessage.1 = "1min load average is high!"
laErrMessage.2 = "5min load average is high!"
laErrMessage.3 = "15min load average is high!"
extNames.0 = "uname"
extCommand.0 = "/usr/bin/uname -a"
extNames.1 = "uptime"
extCommand.1 = "/usr/bin/uptime"
extNames.2 = "apache"
extCommand.2 = "/usr/local/etc/rc.d/apache22 status"