Существуют различные случаи, когда есть значения, которые я хочу отслеживать с помощью Nagios, и меня не столько заботит само значение, сколько то, как оно сравнивается с предыдущим значением.
Например, я написал один для проверки счетчиков отказов в OpenVZ. В данном случае меня не слишком заботила стоимость, скорее меня волновало, увеличится ли значение. Другим примером могут быть порты коммутатора, мне было бы больше всего интересно получать уведомления об изменении состояния порта (хотя, возможно, для этого лучше использовать ловушку).
Для своего сценария OpenVZ я использовал временный файл, но мне интересно, есть ли лучший способ? Может быть, в Nagios есть переменные, к которым плагины (скрипты проверки) могут обращаться, и которые сохраняются при проверках?
Я не думаю, что вы сможете сделать это напрямую с помощью Nagios, но вы можете использовать MRTG (или аналогичный) ведение журнала в базы данных rrdtool, которые затем могут быть прочитаны подходящим плагином Nagios. например Я использую этот метод для отслеживания запросов DNS в минуту.
В качестве альтернативы попросите плагин сравнить текущее значение с ранее сохраненным, причем последнее значение будет сохранено для следующего вызова.
Если вы просто хотите предупредить об увеличении, это то, что Nagios уже делает, просто установите порог немного выше, чем текущее значение, тогда вы будете предупреждены, когда значение увеличится.
Или вы имеете в виду, что хотите отслеживать скорость изменения, поэтому небольшой восходящий тренд - это нормально, но внезапное движение подает сигнал тревоги.
Nagios позволяет вам следить только за изменениями, но не за скоростью изменений, но вы можете написать свой сценарий монитора, чтобы сообщать скорость изменения, которая будет равна 0, если нет изменений, и значению, если какое-то изменение. Затем вы можете следить за внезапными движениями, установив соответствующие пороги.
Есть пример на perl здесь для мониторинга процессов. Этот пример мне немного не по зубам, поэтому не уверен, что это то, что вы ищете.
Если вы не возражаете, чтобы на контролируемых машинах был еще один демон, возможно, вам стоит взглянуть на Мунин, который отображает вывод данных RRD от Nagios во времени. Его очень легко настроить, и он имеет много характеристик прямо из коробки; дополнительную статистику просто реализовать с помощью настраиваемых плагинов.
У меня есть несколько проверок, которые полагаются на изменение счетчика для запуска предупреждений и критических условий, в отличие от абсолютного счетчика, и я использую временные файлы для постоянства.