2016-05-20 2 views
0

Нужна консультация по организации ведения журнала в кластерном приложении, написанном на Python (asyncio). Приложения используют модуль регистрации и хранят локальный файл журналов.asyncio logging for cluster app

См. Журналы с 3 серверами неудобно. Я хотел бы использовать rsyslog, но есть опасения, что он заблокирует приложение. Другой способ использования aioredis (push to channel) и другое приложение для сбора данных в одном файле.

ответ

1

Простое решение попросить logging войти в системный журнал (обычно /dev/log, который не будет блокировать приложения), локально (так что ваша заявка не связана с вашей системой регистрации: она по-прежнему портативные), то пусть rsyslog (Я предпочитаю syslogng лично) передать их на главный сервер журнала.

Другим решением является использование инструмента, такого как logstash, для ввода ваших журналов на сервер/кластер elasticsearch, чтобы вы могли легко просматривать и графически их отображать. В этом случае, если ваши строки журнала являются объектами json, это большой выигрыш, потому что сторона elasticsearch (обычно через kibana), вы сможете запрашивать, фильтровать и группировать поля в ваших json-документах. Как правило, информация о графике и предупреждениях против ошибок, частота ошибок для каждого файла или пользователя и т. Д.