Я уже несколько часов искал плагин, который будет уведомлять меня, если загрузка ЦП одного из моих серверов превышает 90% за последние 5 часов. Не повезло с поиском Nagios Exchange.
Кто-нибудь может помочь?
Спасибо!
Базовая проверка check_load Nagios будет оценивать только /proc/loadavg
который имеет только средние значения за 1, 5 и 15 минут. Если вам нужно больше, вам понадобится отставание, доходящее до этого. Кстати, sysstat
пакет делает именно это - он оценивает и записывает значения производительности с заданными интервалами и делает их доступными через sar
утилита командной строки. В check_sa Плагин Nagios способен оценивать результат и усреднять значения в соответствии с вашими потребностями.
Я должен добавить, что Nagios - довольно плохой выбор, когда дело доходит до фактического определения пороговых значений срабатывания сигнализации на основе значений производительности, усредненных за определенный период времени, поскольку для этого требуется обширное сохранение состояния, которое Nagios не поддерживает. Другие системы мониторинга, собирающие данные о производительности, здесь работают лучше. Я бы посоветовал посмотреть на OpenNMS или хотя бы что-то вроде Мунин если вы не можете справиться со сложностью и выполнить технические требования (SNMP) первого. У обоих есть то преимущество, что они могут рисовать причудливые графики RRD, помогающие выявлять тенденции до того, как вы формализуете их в правилах оценки.
Загрузка процессора в UNIX обычно определяется как количество процессов в рабочем состоянии. Мы измеряем это с интервалом в 1, 5 и 15 минут. Команда uptime
это распространенный способ вывода средних значений нагрузки.
~ $ uptime 18:35:22 up 1 мин, 1 пользователь, средняя загрузка: 0,04, 0,01, 0,01
check_load принимает кортеж из трех элементов, соответствующих средним значениям за 1, 5 и 15 минут, и принимает как предупреждение, так и критический порог.
В качестве приблизительной идеи попробуйте check_load -c 0.9,0.9,0.9
с check_interval
1 час и max_check_attempts
из 5.
Также обратите внимание, что -r
аргумент. Это учитывает тот факт, что большинство ЦП являются многоядерными и, следовательно, могут полностью использоваться по отдельности, при этом в совокупности сохраняются избыточные мощности.
Удивительно - не правда ли?
Для этого нам тоже пришлось написать монитор.
Стандартный check_load не имеет смысла, так как он должен соответствовать количеству (логических) процессоров в системе.
Итак, примерно, что мы делаем: - посмотрим, сколько процессоров указано в системе - разделим текущую нагрузку на это число.
Там вы получите ту отметку 90%, которую хотите.
Мы используем 100% для предупреждения и 150% для критического.
установить systat crontab sa -q 10000000 | mailwhere@youwant.report.com
в основном, sar по умолчанию предоставляет 10-минутную информацию о статусе.
так что для средней нагрузки ...
[корень @ ops2 ~] # sar -q | хвост -5
17:00:01 0527 0,00 0,01 0,00
17:10:01 1 528 0,00 0,00 0,00
17:20:01 6 537 0,00 0,00 0,00
17:30:01 2 532 0,00 0,01 0,00
Среднее значение: 2529 0,03 0,05 0,04
это может сообщать о многих вещах, хотя отчетность по почтовому серверу уходит, как динамика приложений и newrelic, которые копают гораздо глубже (но стоят денег)
ИМХО, nagios по-прежнему лучший за свои деньги ... и черт возьми, вы даже можете интегрировать его с ircd
nagios - это определенно мой путь. легко использовать их готовые плагины или написать свои собственные плагины nrpe, и это здорово с hipchat, irc, pagerduty или пользовательскими системами оповещения