2016-11-15 68 views
0

我正在用Django + Celery開發一個Web應用程序,並且我希望添加一個簡單的堆棧來讓我跟蹤事件並獲取統計信息。我的第一個想法是Elasticsearch + Kibana,但我不想讓我的部署複雜化(我已經在使用AWS Elasticsearch)。所以我想知道爲什麼當我可以直接將事件發送到Elasticsearch(在Celery的背景下)時,我需要Logstash之類的東西。使用芹菜作爲Logstash的簡單替代方案

例如,如果我必須設置Redis或RabbitMQ將消息發送到Logstash,以便它可以發送到Elasticsearch,那麼我可以對我已經運行的Celery執行相同的操作。

我的計劃是從Django調用一個Celery任務,並將一系列事件發送給Elasticsearch。我正在使用AWS SQS連接Celery。

我明白,用Logstash我可以合併不同的來源,但這不是我現在的問題。實際上,我已經在使用AWS CloudWatch集中日誌,這可以完成與Logstash相同的工作,但將JSON事件直接發送到Elasticsearch更容易。

當然,我錯過了一些東西,因爲我沒有發現任何人使用芹菜。但我想知道原因。

我的網絡現在非常小,我應該專注於其他領域,如果沒有必要,我的部署會變得非常複雜。

回答

0

根據消息來源的不同,您不需要設置爲像redis或rabbitmq這樣的代理來使用logstash。例如,Filebeat - > Logstash - > Elasticsearch在沒有代理的情況下運行良好。

如果你有乾淨的JSON事件,直接寫入Elasticsearch是一個好主意。 logstash的威力在於獲取非結構化數據,並從中製作出漂亮的結構化事件。

如果芹菜可以發送你的事件,這聽起來像一個很好的解決方案,如果你不需要什麼logstash提供。

+0

讓我明白,我的問題是不與經紀人的設置,因爲我已經使用一個芹菜。在那一點上我沒有解釋清楚。我擔心爲什麼發送統計信息到Logstash,我可以用同樣的方式發送到我正在使用的Celery。 您的回答證實了我的懷疑:當存在異構數據源時,Logstash更有用。 –