Нормализация "неправильных" логов

Добрый день,

Сервера, через rsyslog посылают логи на центральный сервер rsyslog, он свою очередь складывает это в redis, из него логи отправляются в Logstash, а затем в Elasticsearch.

Проблема - Среди логов в нормальном формате существуют сервера, которые отдают логи в нестандартном формате. И когда rsyslog их парсит, он ошибочно считает первую часть [Command Тэгом...
Например строчка Sep 13 16:32:36 [Command Audit] [SR=123.2.64.110] [SUSER=a.pupkin/13665] [AUSER=root/13734] [SUDO_USER=] [MC_PID=] [TTY=pts/0/] [COMMAND=/root: 885 [2017-09-13 16:32:36] redis-cli]

Парсится как:
"{\"timestamp\":\"2017-09-13T16:32:36.043080+03:00\",\"syslogtag\":\"[Command\",\"host\":\"examplehost-01\",\"host_ip\":\"127.0.0.1\",\"logsource\":\"examplehost-01.com\",\"severity_label\":\"debug\",\"severity\":\"7\",\"facility\":\"19\",\"program\":\"\",\"pid\":\"-\",\"RWmessage\":\"<159>Sep 13 16:32:36 [Command Audit] [SR=123.2.64.110] [SUSER=a.pupkin/13665] [AUSER=root/13734] [SUDO_USER=] [MC_PID=] [TTY=pts/0/] [COMMAND=/root: 885 [2017-09-13 16:32:36] redis-cli]\"}\n"

Вопрос как и на каком этапе с этим бороться, чтобы получать правильные поля в эластике?
Поправить формат логов на серверах откуда все это отправляется на адекватный, сейчас пока не реально.
заранее спасибо.

Ну так может лучше всего logstash настроить так, чтобы он корректно парсил и в "нормальном" и в "нестандартном" формате? В grok фильтре ведь можно несколько разных выражений одновременно задать.

1 Like

Спасибо огромное за ответ, я совсем новичок в этом деле :slight_smile:
Пока мысль отправлять "timegenerated" и "rawmsg" неправильных логов как есть на Logstash и парсить + преобразовывать в json их там, работая именно с "rawmsg". Вопрос в том, на сколько быстро он сможет это делать...
А, кстати, самое главное... Важно чтобы служебные поля "fromhost-ip" "fromhost" и прочее не "съехали", а то потом концов (откуда какой лог приехал) будет не найти...

Например лог
<134>Sep 15 14:43:44 2017-09-15 14: 43:44 [main] INFO Manager:929 - Loading subsystemFileServerSubsystem"
Который "рвет все шаблоны" и в поле "hostname" попадает "2017-09-15"

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.