Logstash не будет принимать мою мультилинию даже с (? M)

Таким образом, у меня есть это сообщение журнала от маршрутизатора Cisco:

Apr 15 10:51:26.824: %CRYPTO-4-PKT_REPLAY_ERR: decrypt: replay check failed
    connection id=777, sequence number=218932

Apr 15 11:00:03.261: %CRYPTO-4-PKT_REPLAY_ERR: decrypt: replay check failed
    connection id=777, sequence number=231456

Apr 15 11:05:00.525: %CRYPTO-4-PKT_REPLAY_ERR: decrypt: replay check failed
    connection id=789, sequence number=6509

Grok анализирует бит до тех пор, пока \ r \ n просто отлично, но после этого делает новую запись с ошибкой синтаксического анализа. У меня есть (? M) перед регулярным выражением, и оно работало до того, как я обновился до logstash 1.5.5.

Что я нахожу действительно странным, так это то, что, используя http://grokconstructor.appspot.com/ я не могу заставить его соответствовать всему, даже с (? M) в начале или (?<message>(.|\r|\n)*) в конце. На rubular.com оба работают просто отлично, но на grokconstructor и в моем конфиге они перестают совпадать на новой строке.

1 ответ

Решение

В вашем конфиге попробуйте использовать:

Это запустит новое событие журнала, когда строка начинается с текста, соответствующего шаблону% {CISCOTAG} (например, апрель,...). Все остальные строки (например, начинающиеся с пробела) будут добавлены к предыдущему событию.

Другие вопросы по тегам