[ОТВЕТИТЬ]
Опции темы
16.04.2012 11:19  
OlegON
Вчера чуть не родил. Всего-то надо было просто по regexp выкладывать только часть сообщений, получаемых с железки. Казалось бы - простейшая задача. НО. Оказалось, что в современных версиях syslog строка сообщения делится на несколько частей, HOST, PROGRAM, MESSAGE (не помню весь список). Это и необходимо учитывать. А с железки строки приходят бесхитростные, чем мне просто мозг вырвали угадыванием, где тут какая часть (а особенно тем, что эти части вообще существуют), т.е. я всегда использовал значение value("MESSAGE") и обламывался, если сообщение было вида Calling number, поскольку Calling относилось вовсе не к MESSAGE. В общем сумбурно, но вот пример.
Код:
filter phone { match("Calling.*" value ("PROGRAM")) or match("Sess.*" value ("PROGRAM")) or match("Connected.*" value ("MESSAGE")) or match(".*number=.*" value ("MESSAGE")); };
если кто-то знает, как match натравливать на всю строку целиком или по каким параметрам строка делится - прошу сообщить... Версия syslog 3.2
 
16.04.2012 13:55  
OlegON
Накопал, для всей строки целиком используется "MSG"

UPD: наврал... судя по доке, теперь только MSGHDR и MSG, общего нет. Первое включает PROGRAM и PID, второе - сообщение. Парсеры всяческие - только по MSG. В общем, пока забил, но интересно было бы узнать правильное решение.
 
19.04.2012 16:33  
OlegON
Решается через flags(no-parse) в источнике.
 
 
Опции темы



Часовой пояс GMT +3, время: 21:23.

Все в прочитанное - Календарь - RSS - - Карта - Вверх 👫 Яндекс.Метрика
Форум сделан на основе vBulletin®
Copyright ©2000 - 2016, Jelsoft Enterprises Ltd. Перевод: zCarot и OlegON
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.