Я использую Nagios для мониторинга загрузки ЦП на своих серверах с помощью check_load
плагин.
По выходным у нас выполняется несколько пакетных заданий, и в любом случае реальных пользователей почти нет, поэтому я бы хотел, чтобы порог предупреждения был немного выше.
Я видел решения для полного отключения уведомлений в это время, но я хотел бы получать уведомления, если нагрузка становится действительно высокой.
Я также видел решения для определения двух служб, одну для буднего дня и одну для выходных, но я бы хотел, чтобы нагрузка на ЦП оставалась на одном графике в течение всей недели.
Любые идеи или примеры, как у меня могут быть разные пороги в одной услуге?
Способ сделать это зависит от того, где определены ваши пороговые значения. Если они определены на проверяемом хосте, например, жестко запрограммированы в nrpe.cfg, тогда вам нужно сохранить две копии nrpe.cfg и чередовать их по расписанию. (И перезапускайте NRPE каждый раз, когда он меняет местами.) Это можно сделать с помощью задания cron и простого сценария bash.
Если у вас есть аргументы, принимающие NRPE, и вы передаете пороги как ARG1, ARG2 и т. Д. Со стороны Nagios, у вас есть несколько вариантов.
Вы можете определить две почти идентичные службы с разными / неперекрывающимися периодами проверки и разными порогами, передаваемыми в качестве аргументов.
Или вы можете использовать одну службу и динамически изменять пороговые аргументы. Это сложно, но это возможно. Это называется Адаптивный мониторинг.
Основная идея заключается в отправке внешних команд по расписанию для изменения настроек объекта. В вашем случае вы хотите изменить check_command, чтобы он передавал разные пороги. Что-то вроде ... изменить check_nrpe!check_load!5 10
к check_nrpe!check_load!15 30
или похожие.
Для адаптивного мониторинга вам нужны внешние команды, которые начинаются с "ИЗМЕНИТЬ" в список командв частности CHANGE_SVC_CHECK_COMMAND в таком случае.
Я изучал это в прошлом, и похоже, что нет встроенного решения (хотя я могу ошибаться!).
В итоге я создал два разных файла конфигурации для службы, затем добавил задание cron, которое будет запускаться каждую пятницу и воскресенье вечером, чтобы поменять местами два файла и перезагрузить nagios (перезагрузка службы nagios).
Обмен может быть выполнен, например, путем переименования cfg файл, который не следует использовать, поскольку nagios будет читать только файлы, заканчивающиеся на .cfg
Более элегантным решением было бы просто изменить значение файла, используя sed