這只是幾天我熟悉ELK Stack
。我們試圖在我們的企業應用程序中使用它,但有一些架構問題。我見過&閱讀了一些ELK
及其架構的使用案例,especially in linkedin,但沒有人討論網絡錯誤對其架構的潛在影響。ELK協議棧的網絡容錯體系結構
在傳統的應用程序中,通常將日誌寫入文件中,導致系統崩潰的唯一原因是Disk is Full
錯誤,該錯誤非常罕見。但是在日誌通過網絡發送的集中式日誌系統中,由於網絡錯誤非常普遍,我認爲系統非常容易崩潰!特別是在/不適合網絡的軍團中。
此外,正如我在很多ELK
使用情況下所看到的,一個JMS Provider
或者換句話說,一個Pub/Sub Provider
像Kafka
或Redis
單個實例與ELK
一起使用。我認爲除了前面的問題之外,在這些架構中,JMS Provider
是single point of failure
!除非,那會聚集在一起。
我認爲我們可以擺脫這兩個問題,如果我們在一個節點上使用JMS Provider
像Kafka
並排Shipper[s]
如下(一個Kafka
每個節點):
((log-generator)+ (logstash)? Kafka)* -> Logstash -> Elasticsearch -> Kibana
請讓我知道這個架構是否有意義?
如果不是這樣,任何其他容錯架構將受到歡迎:)
感謝您的回答。我提出了這個假設的問題,即事件是'syslog'(既是同步又是UDP),但之後我斷定它不是正確的路徑。現在,我同意我們應該將日誌寫入本地文件,然後以某種方式發送它們。爲了調度日誌,我知道我可以使用logstash,因爲它爲Kafka和Redis都提供了輸出插件,但是想知道是否也可以使用'filebeat'? logstash和filebeat有什麼區別? – faghani
logstash是一個功能齊全的系統,可以讀取,處理和發送日誌。filebeat是一個輕量級的程序,主要是讀取和發送(儘管它具有重要的遠程功能,如組合多行記錄等)。 –