Назад | Перейти на главную страницу

получение логов из модуля systemd в плоские файлы и logstash

Я запускаю приложение под systemd в CentOS 7. Оно регистрирует в stdout, а systemd просто записывает это в journalctl. Я бы также хотел:

  1. получить повернутый текстовый файл журнала, также сохраненный в локальной файловой системе для ознакомления с нашими системными администраторами
  2. Получите эти данные в чистом виде в logstash, в идеале только журналы приложений, а не весь системный журнал, который также включает сообщения ОС, другие приложения и т. Д.

Первоначально я исследовал использование multilog из djb daemontools, но, учитывая, что файлы модулей systemd не любят конвейеры оболочки в ExecStart, плюс нет официального RPM для daemontools, входящего в состав CentOS, я надеюсь, что есть менее хитрый подход.

В настоящее время у меня есть logstash-forwarder, читающий системный журнал из /var/log/messages и /var/log/secure но я бы предпочел не включать сообщения, кроме этого конкретного приложения.

Третий участник плагин ввода для logstash, который читает журнал systemd напрямую доступен. Добавление поддержки прямо в logstash остается открытым вопросом.

Logstash теперь включает плагин ввода журнала systemd.

Это будет только ваше базовое решение, вроде этого journalctl -f -o json | tee -a /var/log/systemd

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

Определенно учитывая, что вам не нужно развертывать такие вещи, как logstash или fluentd