Доброго времени суток, не подскажете - как правильно настроить мониторинг времени на разных хостах.
Есть DCI - Current.Time. Насколько я понимаю дабы отследить эту метрику сразу не нескольких хостах - нужно создать Condition, добавить в Data нужные DCI а вот дальше видимо нужно написать скрипт, который бы сравнивал значения и сигнализировал бы, когда они имеют слишком большое отклонение. В этом случае трудно будет избавиться от ложных срабатываний и достичь большой точности, ведь на разных хостах метрики будут в разное время опрашиваться.(хотя возможно есть способ зашедулить одну метрику на темплейт, честно - не узнавал).
Можно ли просто сравнивать время с серваком netxms? И если да - то как лучше это реализовать?
Буду благодарен за любой совет.
Я обычно делаю мониторинг разницы с сервером. Можно сделать DCI на параметр System.CurrentTime со скриптом трансформации
return $1 - time();
Он будет возвращать разницу во времени в секундах. Значение приблизительное, но сильное расхождение будет видно. Из практики можно ставить пороговое значение > -2 или < 2 - при нормальной синхронизации оно не сработает, только если расхождение действительно есть.
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(); ?
А что такое "исходный объект события" во вкладке события и состояние?
и сколько в одно условие можно добавить узлов? нужно ли для каждой пары свое "Условие" или можно в одно добавить все ноды?
Проще сделать не через condition, а как DCI на каждом узле.
return $1 - time();
идет в trаnsformation script. Тогда значением DCI будет расхождение времени. Затем на закладке "Thresholds" добавляются нужные пороговые значения.
Если делать таким образом, то можно создать шаблон и накладывать его на те узлы, где требуется контроль за расхождением времени. Источником события при такой конфигурации всегда будет узел с проблемой.
Quote from: Victor Kirhenshtein on July 24, 2018, 11:30:46 AM
Проще сделать не через condition, а как DCI на каждом узле.
return $1 - time();
идет в trаnsformation script. Тогда значением DCI будет расхождение времени. Затем на закладке "Thresholds" добавляются нужные пороговые значения.
Если делать таким образом, то можно создать шаблон и накладывать его на те узлы, где требуется контроль за расхождением времени. Источником события при такой конфигурации всегда будет узел с проблемой.
Ух. если это реально сработает - то очень круто. я просто и не думал что так можно. думал что только через Condition. Сейчас попробую, спасибо большое
Quote from: Victor Kirhenshtein on July 24, 2018, 11:30:46 AM
Проще сделать не через condition, а как DCI на каждом узле.
return $1 - time();
идет в trаnsformation script. Тогда значением DCI будет расхождение времени. Затем на закладке "Thresholds" добавляются нужные пороговые значения.
Если делать таким образом, то можно создать шаблон и накладывать его на те узлы, где требуется контроль за расхождением времени. Источником события при такой конфигурации всегда будет узел с проблемой.
Все работает превосходно. Благодарю, Виктор. потрясающе.