Я обновляю один из моих пакетов freebsd до 9-stable (совершенно новая установка) и устанавливаю net-snmp для мониторинга.
uname -r
9.1-PRERELEASE
pkg_info net-snmp-5.7.1_7
Information for net-snmp-5.7.1_7:
Comment:
An extendable SNMP implementation
....
cat /var/db/ports/net-snmp/options
# This file is auto-generated by 'make config'.
# Options for net-snmp-5.7.1_7
_OPTIONS_READ=net-snmp-5.7.1_7
_FILE_COMPLETE_OPTIONS_LIST= IPV6 MFD_REWRITES PERL PERL_EMBEDDED PYTHON DUMMY TKMIB DMALLOC MYSQL AX_SOCKONLY UNPRIVILEGED
OPTIONS_FILE_UNSET+=IPV6
OPTIONS_FILE_UNSET+=MFD_REWRITES
OPTIONS_FILE_SET+=PERL
OPTIONS_FILE_SET+=PERL_EMBEDDED
OPTIONS_FILE_UNSET+=PYTHON
OPTIONS_FILE_SET+=DUMMY
OPTIONS_FILE_UNSET+=TKMIB
OPTIONS_FILE_SET+=DMALLOC
OPTIONS_FILE_UNSET+=MYSQL
OPTIONS_FILE_UNSET+=AX_SOCKONLY
OPTIONS_FILE_UNSET+=UNPRIVILEGED
У меня около 500 vlan на этой машине, и я собираю информацию об интерфейсе через snmpd для двух разных программ, zabbix и cacti.
И оба строят графики с пустыми полями.
Я попытался изменить время опроса в zabbix с 15 секунд до 30,60,90,120,10. И вообще у меня пустые поля.
snmpd.conf пуст - только контроль доступа.
Эта конфигурация отлично работала на freebsd 8.
В чем моя вина? Как исправить эти графики?
UPD: Изменение времени объединения, выключение одного из агентов не помогает. Я смотрю журнал zabbix (данные получены от snmpd) и вижу, что: извините за русский язык, просто посмотрите на числа:
и это неправда, так как моя скорость показа «iftop» была около 90 Мбит, но snmpd вернул 2 Мбит.
Я понимаю, что snmpd не возвращает скорость, а возвращает только счетчик. Но как это возможно? почему 2Мбит / с?
Я пробовал перекомпилировать snmpd с 64-битными счетчиками и без него. В обоих вариантах это пустое поле присутствует.
Поэтому я думаю, что моя ОС (freebsd) плохо обновляет счетчики интерфейса.
Я до сих пор собираю tcpdump, чтобы найти этот запрос / ответ. Но есть проблемы с этим, слишком много мусора.
UPD2: Я расшифровываю файл tcpdump-ed и публикую его как документ google по адресу gdocfile
Timediff выглядит странно .. Типа zabbix иногда "забывает" сделать запрос, а затем выполнить дважды подряд, ага
UPD3: Я разбираю журнал с помощью команды "while true; do netstat -bin -I vlan4008 >> / var / log / netstat; sleep 300; done" и загружаю как документы Google, и добавляю формулу для скорости: ссылка на сайт
Похоже, в ОС все счетчики хорошие. Теперь я думаю, что проблема в: 1. zabbix получает запрос дважды в строке (и как насчет cacti) 2. snmpd использует counter32
Обычно это связано с тем, что ответ SNMP не получен своевременно.
Поскольку SNMP использует UDP, это может означать перегрузку сети или перегрузку хоста, вызывающую потерю запроса / ответа, но чаще одна из двух задействованных машин просто не могла своевременно обработать запрос, и другая машина получила надоело ждать.
Вероятность отставания одной или другой машины увеличивается с увеличением рабочей нагрузки - если у вас много агентов SNMP, запрашивающих конкретный хост, он может не обслуживать ответы так своевременно, как ожидают некоторые из агентов (и эти агенты будут отображаться пустыми. пятна на графиках или сообщить о других ошибках).
И наоборот, если у вас есть один агент, запрашивающий группу хостов - больше, чем он может обработать за ваш интервал опроса - машины, которые не запрашиваются во время интервала опроса, будут иметь пробелы в своих графиках. (Эта проблема была особенно распространена с PHP-поллером Cacti и привела к разработке cactid
(сейчас spine
), который я настоятельно рекомендую вам использовать, если вы еще не используете его).
Мой общий совет по исправлению этого:
По возможности опрашивайте каждые 5 минут.
В большинстве сред не требуются интервалы опроса 1/5/15/30/60/90/120 секунд.
Если вам достаточно пятиминутной детализации, придерживайтесь ее. Это меньше работы для ваших серверов, меньше работы для ваших агентов мониторинга SNMP и меньше данных для хранения (или более длительный период времени при "полной детализации")
Увеличьте тайм-аут SNMP на ваших агентах.
Дайте серверу больше времени, чтобы обработать ваш запрос. Демоны SNMP - это ленивые подростки процессов: вы просите их убрать свою комнату (или дать вам целое дерево данных) в понедельник, а в среду или четверг они могли бы подобрать несколько носков.
Ограничьте, сколько вы требуете от сервера при каждом опросе.
Если вам нужен только один счетчик, не запрашивайте MIB всего интерфейса - (обычно) требуется больше времени для обхода дерева и генерации полного вывода, чем для того, чтобы просто дать вам один OID.
Ограничьте количество агентов, запрашивающих данные.
Если вы можете объединить свой мониторинг в одном окне (Zabbix или Cacti), вы будете предъявлять меньше требований к своему серверу, и вероятность того, что вы не отреагируете вовремя, будет меньше.
Если у вас все еще возникают проблемы после выполнения вышеуказанного, есть последний шаг отладки: Поищите свои журналы и Отслеживайте трафик SNMP. Убедитесь, что запросы и ответы отправляются туда и обратно своевременно и не теряются / не отклоняются как некорректные по какой-либо причине. Часто просмотр данных на проводе даст вам хорошее представление о том, что не так и как это исправить.
Какую версию протокола SNMP вы используете? SNMP v1 не поддерживает 64-битные счетчики. Это старая проблема с Cacti, просто переключитесь на «Версию 2» на соответствующем «Устройстве».