Коллеги! что-то я запутался с такой проблемой.
/host/ITEM - берет с хоста строку из лог файла. Через функцию log( filename.log, *pattern* ) По pattern находим строку с ошибкой в логе. и потом эту строку разбираем через regexp
ITEM.A, ITEM.B, ITEM.C - это разобраные кусочки условно IP, hostname, description взятые из строки лога с ошибкой.
Важно что сама строка очень большая чтоб брать ее целиком.
Теперь строим триггер по этой ошибке. было б достаточно указатть что last(/host/ITEM) <> "-" для срабатывания триггера, но тогда мы не сможем вывести ни в письмо ни в текст ошики IP, hostname, description.
Поэтому делаем триггер таким
Типа last(/host/ITEM.A) <> last(/host/ITEM.B = 8) and last(/host/ITEM.C) <> "-" чтоб через {HOST.VALUE1}, {HOST.VALUE2}, {HOST.VALUE3} вывести данные.
Т.к такой триггер не закрывается сам - ну нет тут условия закрытия - то делаем его не Single а Multiple. и тут становится проблема: три елемента в условии, которые меняются одновременно т.к они зависимые от одного общего родителя.
И в итоге повяляется три одинаковых алерта по каждому из item.
Если сделать Single то при появлении двух разных строк с ошибками - по первой алерт появится. по второй появится только если кто-то закроет первый руками.
Как вы решаете подобную проблему с парсингом логов?
/host/ITEM - берет с хоста строку из лог файла. Через функцию log( filename.log, *pattern* ) По pattern находим строку с ошибкой в логе. и потом эту строку разбираем через regexp
ITEM.A, ITEM.B, ITEM.C - это разобраные кусочки условно IP, hostname, description взятые из строки лога с ошибкой.
Важно что сама строка очень большая чтоб брать ее целиком.
Теперь строим триггер по этой ошибке. было б достаточно указатть что last(/host/ITEM) <> "-" для срабатывания триггера, но тогда мы не сможем вывести ни в письмо ни в текст ошики IP, hostname, description.
Поэтому делаем триггер таким
Типа last(/host/ITEM.A) <> last(/host/ITEM.B = 8) and last(/host/ITEM.C) <> "-" чтоб через {HOST.VALUE1}, {HOST.VALUE2}, {HOST.VALUE3} вывести данные.
Т.к такой триггер не закрывается сам - ну нет тут условия закрытия - то делаем его не Single а Multiple. и тут становится проблема: три елемента в условии, которые меняются одновременно т.к они зависимые от одного общего родителя.
И в итоге повяляется три одинаковых алерта по каждому из item.
Если сделать Single то при появлении двух разных строк с ошибками - по первой алерт появится. по второй появится только если кто-то закроет первый руками.
Как вы решаете подобную проблему с парсингом логов?
Comment