集群应用程序的异步日志记录

asyncio logging for cluster app

需要有关在 Python(asyncio) 编写的集群应用程序中组织日志记录的建议。应用程序使用日志记录模块并将日志存储在本地文件中。

看3台服务器的日志不舒服。 我想使用 rsyslog,但担心它会阻止应用程序。另一种使用 aioredis(推送到频道)和另一个应用程序在单个文件中收集数据的方法。

一个简单的解决方案是要求 logging 在本地登录 syslog(通常是 /dev/log,这不会阻止您的应用程序)(因此您的应用程序未绑定到您的日志系统: 它仍然是可移植的),然后让 rsyslog(我个人更喜欢 syslogng)将它们传输到主日志服务器。

另一种解决方案是使用 logstash 之类的工具将您的日志推送到 elasticsearch 服务器/集群,以便您可以轻松浏览和绘制日志。在这种情况下,如果您的日志行是 json 个对象,这是一个巨大的胜利,因为弹性搜索端(通常通过 kibana),您将能够查询、过滤和聚合您的字段json 文档。通常绘制信息与警告与错误、每个文件或每个用户的错误频率等...