В моем ящике freebsd у меня есть демон snmpd из пакета net-snmp-5.5_4.
В файле snmpd.conf у меня есть:
extend .1.3.6.1.4.1.2021.2 inpt /usr/bin/perl /usr/local/etc/snmp/mpdinput.pl
где mpdinput.pl - мой скрипт, который возвращает октеты ввода из некоторого сетевого интерфейса mpd5-ng.
Кактусы читают это значение и строят такие графики:
Я добавил красные линии на график.
В отмеченных местах snmpd кэширует результат и возвращает предыдущие значения, поэтому rrdtool отображает нулевую активность. И это для меня проблема.
Как предотвратить кеширование результата в snmpd?
согласно документации snmp;
`extension [MIBOID] NAME PROG ARGS работает аналогично директиве exec, но с рядом улучшений. Таблицы MIB (nsExtendConfigTable и т. Д.) Индексируются токеном NAME, поэтому на них не влияет порядок чтения записей из файлов конфигурации. Есть две таблицы результатов: одна (nsExtendOutput1Table), содержащая статус выхода, первая строка и полный вывод (как одна строка) для каждой расширенной записи, а другая (nsExtendOutput2Table), содержащая полный вывод в виде серии отдельных строк. Если указан MIBOID, то в этой точке дерева OID будут корень таблицы конфигурации и результатов, но в остальном они структурированы точно так же. Это означает, что несколько отдельных директив расширения могут указывать один и тот же корень MIBOID без конфликтов.
Статус выхода и выходные данные кэшируются для каждой записи индивидуально, и их можно очистить (и настроить поведение кэширования) с помощью nsCacheTable.`
также вы можете посмотреть здесь; http://www.fineconnection.com/How_to_set_the_net-snmp_agent_update_or_counter_refresh_interval
Если вы можете использовать свой Perl-скрипт как расширение в snmpd, вы также сможете использовать его как прямой источник данных в Cacti, полностью пропуская snmpd.