使用Celery作为Logstash

时间:2016-11-15 15:52:32

标签: django amazon-web-services celery logstash elastic-stack

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

例如,如果我必须设置Redis或RabbitMQ以向Logstash发送消息以便它可以发送到Elasticsearch,我可以对我已经运行的Celery执行相同操作。

我的计划是从Django调用Celery任务,其中包含一系列将发送给Elasticsearch的事件。我正在使用AWS SQS与Celery建立联系。

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

当然我错过了一些东西,因为我没有找到像这样使用芹菜的人。但我想知道原因。

我的网络目前非常小,如果没有必要,我应该把重点放在其他方面,然后再进行复杂化。

1 个答案:

答案 0 :(得分:0)

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

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

如果芹菜可以发送你的活动,那么如果你不需要logstash提供的话,它听起来就像是一个很好的解决方案。