Ведение логов в Logstash: отдельные логи разных приложений в одном контейнере

У меня есть приложение rails на пассажирском веб-сервере, работающем в док-контейнере. Я пытаюсь перенаправить журналы приложений в Logstash. Я перенаправляю журналы rails на STDOUT и настраиваю контейнер для использования драйвера журнала gelf, который перенаправляет STDOUT на данный сервер Logstash. Но возникает проблема: Пассажирский веб-сервер тоже пишет свои логи в STDOUT. И получается смесь двух бревен, что затрудняет разделение и анализ.

Каковы лучшие практики в такой ситуации? Как я могу пометить каждый поток журнала, чтобы разделить его в logstash?


person Andrey Khataev    schedule 17.10.2017    source источник


Ответы (1)


Если вы действительно хотите, вы можете настроить Passenger для записи в собственный журнал stdout, но я бы не стал использовать STDOUT в качестве посредника для logstash.

Попробуйте библиотеку, например logstash-logger. Затем вы можете писать в отдельный файл, сокет или базу данных. Я думаю, что это более чистый подход и, возможно, более быстрый в зависимости от места назначения журнала.

person mahemoff    schedule 17.10.2017
comment
Но было бы лучше. если бы я тоже мог сохранять журналы пассажиров в logstash - person Andrey Khataev; 18.10.2017
comment
Кроме того, я не мог заставить работать logstash-logger до сих пор - я получаю ошибку переполнения буфера... - person Andrey Khataev; 18.10.2017