Nagios - измерение средней загрузки процессора

Я искал несколько часов плагин, который уведомит меня, если загрузка одного из процессоров моего сервера превысила 90% за последние 5 часов. Не повезло, глядя вокруг Nagios Exchange.

Кто-нибудь может помочь?

Спасибо!

4 ответа

Базовая проверка Nagios check_load оценивает только /proc/loadavg который имеет только 1, 5 и 15 минут в среднем. Если вам нужно больше, вам нужно отставание до этого далеко. Кстати, sysstat Пакет делает именно это - он оценивает и записывает значения производительности через заданные интервалы и делает их доступными через sar утилита командной строки. Плагин check_sa Nagios способен оценивать вывод и усреднять значения в соответствии с вашими потребностями.

Я должен добавить, что Nagios является довольно неудачным выбором, когда речь идет о фактическом определении пороговых значений сигналов тревоги, основанных на усредненных значениях производительности за определенный период времени, поскольку это требует обширного сохранения состояния, которое Nagios не поддерживает. Другие системы мониторинга, собирающие данные о производительности, работают лучше. Я бы посоветовал взглянуть на OpenNMS или хотя бы на что-то вроде Munin, если вы не можете справиться со сложностью и справиться с техническими требованиями (SNMP) первого. Оба имеют преимущество в том, что могут рисовать причудливые RRD-графики, помогающие вам выявлять тенденции, прежде чем вы их формализуете в правилах оценки.

Загрузка ЦП в UNIX обычно определяется как количество процессов в работоспособном состоянии. Мы измеряем это с интервалами в 1, 5 и 15 минут. Команда uptime является распространенным способом вывода средних значений нагрузки.

~ $ uptime 18:35:22 до 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 |mail куда-нибудь@youwant.report.com

в основном, sar дает вам по умолчанию 10-минутную информацию о статусе.

так что для загрузки в среднем...

[root @ ops2 ~] # sar -q | tail -5

05:00:01 PM 0 527 0,00 0,01 0,00

05:10:01 PM 1 528 0,00 0,00 0,00

05:20:01 PM 6 537 0,00 0,00 0,00

17:30:01 PM 2 532 0,00 0,01 0,00

Среднее: 2 529 0,03 0,05 0,04

это может сообщать о многих вещах, хотя отчеты по почтовым серверам уходят в сторону динамики приложений и новых версий, которые копают намного глубже (но стоят денег)

ИМХО, nagios все еще лучший за деньги... и, черт возьми, вы можете даже интегрировать его с ircd

Нагиос - это определенно мой путь. Легко использовать их готовые плагины или писать собственные плагины nrpe, и это замечательно с системами оповещения hipchat, irc, pagerduty или настраиваемыми оповещениями.

Другие вопросы по тегам