Добрый день,
Сервера, через 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"
Вопрос как и на каком этапе с этим бороться, чтобы получать правильные поля в эластике?
Поправить формат логов на серверах откуда все это отправляется на адекватный, сейчас пока не реально.
заранее спасибо.