Ad Widget
Collapse
Регулярное выражение - Модификатор "s" не срабатывает
Collapse
X
-
Comment
-
Ну тогда как-то так:Ищем (по регулярному выражению) число перед "key2" в последнем полученном значении, при этом "key1" дожно быть в предпоследнем значении.Code:{host:logrt[/tmp/logerror4.txt,"key1|key2"].regexp("\d+ key2")}=1 and {host:logrt[/tmp/logerror4.txt,"key1|key2"].str("key1",2)}=1
Реально, правда, последнее выражение ищет строку "key1" в двух значениях (последнем и предпоследнем), если последняя строка может содержать как "key1", так и "key2" одновременно - то будет ложное срабатывание; если такое возможно - нужно более аккуратно делать.Comment
-
-
Спасибо большое за подсказки, но вот такой пример и будет не правильное срабатывание
Code:2019-04-16 14:47:12 Текст после даты key1: 101 вторая строка с текстом и последняя третья строка 21 [COLOR=#FF0000]key333 [/COLOR] 2019-04-16 14:48:12 Текст после даты key1: 102 вторая строка с текстом и последняя третья строка 22 [COLOR=#FF0000]key444 [/COLOR] 2019-04-16 14:49:12 Текст после даты [COLOR=#FF0000]key555[/COLOR]: 103 вторая строка с текстом и последняя третья строка 23 key2 2019-04-16 14:50:12 Текст после даты key1: 104 вторая строка с текстом и последняя третья строка 24 key2
Code:2019-04-16 14:47:12 Текст после даты key1: 101 2019-04-16 14:48:12 Текст после даты key1: 102 и последняя третья строка 23 key2 2019-04-16 14:50:12 Текст после даты key1: 104 и последняя третья строка 24 key2
Comment
-
Извините, опечатка: должна была быть решётка:
Code:str("key1",#2)При таких данных будет срабатывание после получения каждой из строк с "key2": и с числом 23, и с числом 24. Точно так же, как срабатывало бы, используя ваше изначальное регулярное выражение, если бы оно работало для многострочных конструкций.но вот такой пример и будет не правильное срабатываниеComment
-
-
Если взять вот такой лог
PHP Code:2019-04-16 14:47:12 Текст после даты key1: 101
вторая строка с текстом
и последняя третья строка 21 key333
2019-04-16 14:48:12 Текст после даты key1: 102
вторая строка с текстом
и последняя третья строка 22 key444
2019-04-16 14:49:12 Текст после даты key555: 103
вторая строка с текстом
и последняя третья строка 23 key2
2019-04-16 14:50:12 Текст после даты key1: 104
вторая строка с текстом
и последняя третья строка 24 key2
То в Последние данные будет вот так
PHP Code:2019-04-16 14:47:12 Текст после даты key1: 101
2019-04-16 14:48:12 Текст после даты key1: 102
и последняя третья строка 23 key2
2019-04-16 14:50:12 Текст после даты key1: 104
и последняя третья строка 24 key2
Следовательно тригер сработает не правильно, посмотрите внимательно последовательность строк
Он посчитает
2019-04-16 14:48:12 Текст после даты key1: 102
и последняя третья строка 23 key2
за пару, а это 2 разные записи в логLast edited by vebmasterHtml; 18-04-2019, 16:42.Comment
-
...ну вот и попытайтесь сформулировать поточнее, чего бы вы хотели.
Можно, например, в выражении для айтема указать, чтобы он пересылал на сервер все строки, где встречается "key" (а не только "key1" или "key2"):Соответственно, выражение триггера получится:Code:logrt[/tmp/logerror4.txt,"key"]
Это будет выполнять то, что вам нужно?Code:{host:logrt[/tmp/logerror4.txt,"key"].regexp("\d+ key2")}=1 and {host:logrt[/tmp/logerror4.txt,"key"].str("key1",#2)}=1Comment
-
В рамках приведённого примера с key1 и key2, это действительно сработало, это 100% решение
Ещё раз спасибо!
Но т.к. key1 и key2 полностью разные названия, то опять же получается ложное срабатывание.
Если key1 оставить как есть, а key2 заменить на name2 (чтобы были совсем разные)
То в "Последние данные" будут вот такие строки:Code:2019-04-16 14:47:12 Текст после даты key1: 101 вторая строка с текстом и последняя третья строка 21 key333 2019-04-16 14:48:12 Текст после даты key1: 102 вторая строка с текстом и последняя третья строка 22 key444 2019-04-16 14:49:12 Текст после даты key555: 103 вторая строка с текстом и последняя третья строка 23 name2 2019-04-16 14:50:12 Текст после даты key1: 104 вторая строка с текстом и последняя третья строка 24 name2
И в этом случае, будет ложное срабатывание наCode:2019-04-16 14:47:12 Текст после даты key1: 101 2019-04-16 14:48:12 Текст после даты key1: 102 и последняя третья строка 23 name2 2019-04-16 14:50:12 Текст после даты key1: 104 и последняя третья строка 24 name2
В качестве решения решили воспользоваться Graylog для обработки подобных логов с мультистрочностью. Но зато я узнал кое что новое по заббиксу)Code:2019-04-16 14:48:12 Текст после даты key1: 102 и последняя третья строка 23 name2
Last edited by vebmasterHtml; 23-04-2019, 12:40.Comment
Comment