使用 Celery 作为 Logstash 的简单替代品

Using Celery as an easy alternative for Logstash

我正在使用 Django+Celery 开发 Web 应用程序,我希望添加一个简单的堆栈来跟踪事件和获取统计信息。我的第一个想法是 Elasticsearch+Kibana,但我不想让我的部署过于复杂(我已经在使用 AWS Elasticsearch)。所以我想知道为什么我需要像 Logstash 这样的东西,因为我可以将我的事件直接发送到 Elasticsearch(在 Celery 的后台)。

例如,如果我必须设置 Redis 或 RabbitMQ 以将消息发送到 Logstash,以便它可以发送到 Elasticsearch,我可以对 Celery 做同样的事情,我已经 运行.

我的计划是从 Django 调用 Celery 任务,并将一系列事件发送到 Elasticsearch。我正在使用 AWS SQS 连接 Celery。

我知道使用 Logstash 我可以合并不同的源,但这不是我现在的问题。事实上,我已经在使用 AWS CloudWatch 来集中日志,它可以完成与 Logstash 相同的工作,但直接将 JSON 事件发送到 Elasticsearch 更容易。

我肯定遗漏了什么,因为我还没有发现有人像那样使用 Celery。但是我想知道原因。

我的网站目前非常小,如果没有必要,我应该先关注其他领域,然后再让我的部署变得如此复杂。

根据您的消息源,您不需要 设置像 redis 或 rabbitmq 这样的代理来使用 logstash。例如,Filebeat -> Logstash -> Elasticsearch 在没有代理的情况下运行良好。

如果您有干净的 json 事件,将它们直接写入 Elasticsearch 是个好主意。 logstash 的强大之处在于获取非结构化数据并从中生成良好的结构化事件。

如果 celery 可以发送您的事件,如果您不需要 logstash 提供的功能,这听起来是个不错的解决方案。