Добрый день, всем!
Столкнулся с такой проблемой, есть syslog сообщение (msg непосредственно) следующего вида: «10.100.20.30 I0515 14:46:45.069611 blablabla»
Пытаюсь сделать 2 вещи:
- удалить в начале строки ip адрес с пробелом и уже измененную строку сохранить в файл;
- вырезать ip адрес в начале строки и сохранить в отдельном поле сообщения.
Решил сначала решить задачу из п.2 следующим образом: constant(value=«",\n\t"sysloghost-ip":\t"») property(name=«msg» regex.type=«ERE» regex.submatch=«0» regex.expression=«([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3})–end» regex.nomatchmode=«FIELD» format=«json»)
пытался и таким образом (чтобы писанины было меньше) constant(value=«",\n\t"sysloghost-ip":\t"») property(name=«msg» regex.type=«ERE» regex.submatch=«0» regex.expression=«(^([0-9]{1,3}.?){4})–end» regex.nomatchmode=«FIELD» format=«json»)
Если в первом варианте сохранялась просто исходная строка, то во втором случае, вообще все перестало сохраняться.
Где я ошибся или возможно делать что-то не так? Сразу оговорюсь, регулярное выражение генерировал на сайте https://www.rsyslog.com/regex/ , там все хорошо обрезается.