Как структурировать фильтр logstash для условного сопоставления? - PullRequest
0 голосов
/ 11 марта 2019

Я планирую централизовать все свои журналы из ОС, приложений, предоставленных кем-то (nginx, sshd, ...), и моих собственных приложений.

Все журналы в конечном итоге попадают в какой-то файл в /var/log, поэтому я планирую использовать Beats для пересылки их содержимого в Logstash. Я бы хотел, чтобы синтаксический анализ выполнялся по дереву решений:

  • все, что входит (= содержимое файла, отправленное Beats), имеет формат Syslog ➜ извлеките метку времени, процесс, ...
    • , если process равно myownapp.py, содержимое сообщения представляет собой строку JSON, переслать его в Elasticsearch, но также объединить извлеченные поля выше
    • если process равно anotherofmyapps, содержимое сообщения следует шаблону, разбить его на поля, добавить извлеченные поля первого шага, отправить в ES
    • если process - это что-то еще, отправьте все поля (включая необработанное сообщение) в ES

Возможен ли такой сценарий, когда фильтры связаны в зависимости от ранее извлеченных полей?

1 Ответ

0 голосов
/ 11 марта 2019

Если вы создаете поле в вашей конфигурации, оно доступно для остальной части конфигурации, поэтому вы можете использовать его в более позднем условном выражении.

...