我正在用Django+芹菜开发一个web应用程序,我希望添加一个简单的堆栈,让我跟踪事件并获得统计数据。我的第一个想法是Elasticsearch+Kibana,但我不想让我的部署过于复杂(我已经在使用AWS Elasticsearch)。所以我想知道为什么我需要像Logstash这样的东西,当我可以将我的事件直接发送到Elasticsearch(在后台与芹菜)。
如果我,例如,必须设置Redis或RabbitMQ发送消息到Logstash,以便它可以发送到Elasticsearch,我可以对我已经运行的芹菜做同样的事情。
我的计划是从Django中调用一个芹菜任务,并将事件数组发送给Elasticsearch。我正在使用AWS SQS与芹菜连接。
我明白,与Logstash我可以合并不同的来源,但这不是我现在的问题。事实上,我已经在使用AWS CloudWatch来集中日志,它可以做与Logstash相同的工作,但是直接将JSON事件发送到Elasticsearch更容易。
我肯定错过了什么,因为我还没有发现有人这样使用芹菜。但我想知道原因。
我的网页目前非常小,如果没有必要,我应该把重点放在其他领域,否则会使我的部署复杂化。
根据你的消息来源,你不有设置一个代理,如redis或rabbitmq使用logstash。例如,Filebeat -> Logstash -> Elasticsearch在没有代理的情况下工作得很好。
如果你有干净的json事件,将它们直接写入Elasticsearch是一个好主意。logstash的强大之处在于获取非结构化数据,并从中生成漂亮的结构化事件。
如果芹菜可以发送您的事件,如果您不需要logstash提供的功能,这听起来像是一个很好的解决方案。