Я планирую централизовать все свои журналы из ОС, приложений, предоставленных кем-то (nginx, sshd, ...), и моих собственных приложений.
Все журналы в конечном итоге попадают в какой-то файл в /var/log
, поэтому я планирую использовать Beats для пересылки их содержимого в Logstash. Я бы хотел, чтобы синтаксический анализ выполнялся по дереву решений:
- все, что входит (= содержимое файла, отправленное Beats), имеет формат Syslog ➜ извлеките метку времени, процесс, ...
- , если
process
равно myownapp.py
, содержимое сообщения представляет собой строку JSON, переслать его в Elasticsearch, но также объединить извлеченные поля выше
- если
process
равно anotherofmyapps
, содержимое сообщения следует шаблону, разбить его на поля, добавить извлеченные поля первого шага, отправить в ES
- если
process
- это что-то еще, отправьте все поля (включая необработанное сообщение) в ES
Возможен ли такой сценарий, когда фильтры связаны в зависимости от ранее извлеченных полей?