我正在使用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更容易。
当然我错过了一些东西,因为我没有找到像这样使用芹菜的人。但我想知道原因。
我的网络目前非常小,如果没有必要,我应该把重点放在其他方面,然后再进行复杂化。
答案 0 :(得分:0)
根据您的消息来源,您不 设置像redis或rabbitmq这样的代理来使用logstash。例如,Filebeat - > Logstash - > Elasticsearch在没有经纪人的情况下运作良好。
如果您有干净的json事件,直接将它们写入Elasticsearch是个好主意。 logstash的强大之处在于获取非结构化数据并从中制作出精美的结构化事件。
如果芹菜可以发送你的活动,那么如果你不需要logstash提供的话,它听起来就像是一个很好的解决方案。