Мониторинг Current time

Started by thaideval, July 22, 2018, 12:57:13 PM

Previous topic - Next topic

thaideval

Доброго времени суток, не подскажете - как правильно настроить мониторинг времени на разных хостах.

Есть DCI - Current.Time. Насколько я понимаю дабы отследить эту метрику сразу не нескольких хостах - нужно создать Condition, добавить в Data нужные DCI а вот дальше видимо нужно написать скрипт, который бы сравнивал значения и сигнализировал бы, когда они имеют слишком большое отклонение. В этом случае трудно будет избавиться от ложных срабатываний и достичь большой точности, ведь на разных хостах метрики будут в разное время опрашиваться.(хотя возможно есть способ зашедулить одну метрику на темплейт, честно - не узнавал).
Можно ли просто сравнивать время с серваком netxms? И если да - то как лучше это реализовать?

Буду благодарен за любой совет.

Victor Kirhenshtein

Я обычно делаю мониторинг разницы с сервером. Можно сделать DCI на параметр System.CurrentTime со скриптом трансформации


return $1 - time();


Он будет возвращать разницу во времени в секундах. Значение приблизительное, но сильное расхождение будет видно. Из практики можно ставить пороговое значение > -2 или < 2 - при нормальной синхронизации оно не сработает, только если расхождение действительно есть.

thaideval

Quote from: Victor Kirhenshtein on July 23, 2018, 02:00:47 PM
Я обычно делаю мониторинг разницы с сервером. Можно сделать DCI на параметр System.CurrentTime со скриптом трансформации


return $1 - time();


Он будет возвращать разницу во времени в секундах. Значение приблизительное, но сильное расхождение будет видно. Из практики можно ставить пороговое значение > -2 или < 2 - при нормальной синхронизации оно не сработает, только если расхождение действительно есть.

Спасибо большое за такой быстрый ответ.
Есть ещё пара вопросов:
Тоесть я просто добавляю в условия данные с параметром Currenttime от нужного мне узла + сервер netxms. добавляю return $1 - time(); ?
А что такое "исходный объект события" во вкладке события и состояние?
и сколько в одно условие можно добавить узлов? нужно ли для каждой пары свое "Условие" или можно в одно добавить все ноды?

Victor Kirhenshtein

Проще сделать не через condition, а как DCI на каждом узле.

return $1 - time();

идет в trаnsformation script. Тогда значением DCI будет расхождение времени. Затем на закладке "Thresholds" добавляются нужные пороговые значения.

Если делать таким образом, то можно создать шаблон и накладывать его на те узлы, где требуется контроль за расхождением времени. Источником события при такой конфигурации всегда будет узел с проблемой.

thaideval

Quote from: Victor Kirhenshtein on July 24, 2018, 11:30:46 AM
Проще сделать не через condition, а как DCI на каждом узле.

return $1 - time();

идет в trаnsformation script. Тогда значением DCI будет расхождение времени. Затем на закладке "Thresholds" добавляются нужные пороговые значения.

Если делать таким образом, то можно создать шаблон и накладывать его на те узлы, где требуется контроль за расхождением времени. Источником события при такой конфигурации всегда будет узел с проблемой.

Ух. если это реально сработает - то очень круто. я просто и не думал что так можно. думал что только через Condition. Сейчас попробую, спасибо большое

thaideval

Quote from: Victor Kirhenshtein on July 24, 2018, 11:30:46 AM
Проще сделать не через condition, а как DCI на каждом узле.

return $1 - time();

идет в trаnsformation script. Тогда значением DCI будет расхождение времени. Затем на закладке "Thresholds" добавляются нужные пороговые значения.

Если делать таким образом, то можно создать шаблон и накладывать его на те узлы, где требуется контроль за расхождением времени. Источником события при такой конфигурации всегда будет узел с проблемой.

Все работает превосходно. Благодарю, Виктор. потрясающе.