這是一個建立於 的文章,其中的資訊可能已經有所發展或是發生改變。
第十部分: Go微服務 - 集中化日誌
本文介紹我們的Go微服務基於Logrus、Docker Gelf日誌驅動以及Loggly服務(Logging as a Service)的日誌策略。
- Logrus: Go語言中的結構化、可插拔日誌功能。
- Docker Gelf日誌磁碟機: 是一種方便的格式,可以被很多工具理解,例如Graylog, Logstash, Fluentd等等。
- Loggly: 這是一個日誌資料管理的SaaS解決方案。使用它可以將日誌從整個基礎設施的深處帶到一個可以跟蹤活動和分析趨勢的地方。最重要的是,Loggly是一種託管服務,你不需要任何額外的硬體或軟體就可以使用Loggly,並且可以動態根據操作進行擴充。
簡介
日誌。你根本不知道你會失去多少, 直到你這樣做。為你的團隊制定關於記錄什麼,什麼時候記錄以及如何記錄,可能是產生可維護應用程式的關鍵因素之一。然後,微服務就發生了。
雖然對於單體應用來說處理一些記錄檔通常都是可管理的(雖然存在例外...), 但考慮到對於基於微服務的應用程式來說,同樣可能使用數百個甚至數千個服務容器來產生日誌。如果沒有一個搜集和匯總日誌的解決方案,基本上考慮不了變得更大的時候的問題了。
謝天謝地,很多聰明人已經想到這一點 - 叫做ELK的著名棧可能就是開源社區中最著名的一個。它是Elasticsearch, LogStash和Kibana構成的Elastic Stack(ELK), 推薦可以在駐機和雲主機上使用。然而ELK的文章遍地都是,所以本文我們基於四個部分來探索集中日誌記錄解決方案LaaS:
- Logrus: Go語言的日誌架構。
- Docker Gelf磁碟機: Greylog Extended Log格式的日誌磁碟機。
- Gelftail: 本文中將要構建的輕量級日誌彙總器。
- Loggly: 一個LaaS供應商。 提供類似的管理和作用日誌資料作為類似服務的能力。
解決方案概覽
原始碼
https://github.com/walkerqiao...
1. Logrus - Go語言日誌API
2. Docker Gelf磁碟機
3. 日誌集合和使用Gelftail進行日誌彙總
4. Loggly
總結
本文我們看了集中化日誌方面的東西 - 為什麼它很重要,如何對Go微服務進行格式化日誌,如何使用容器編排裡邊的日誌磁碟機在日誌狀態上傳到LaaS供應商之前對日誌進行預先處理。
下一節,是時候使用Netflix Hystrix為我們微服務添加斷路器和彈性(resilience)。
中英文對照
- 日誌即服務: Logging as a Service(LaaS).
- ELK: Electic Search、LogStash、Kibana三個首字母組合。通常三個配合使用,構成ELK協議棧。
參考連結
- Logrus: Go語言中的結構化、可插拔日誌功能。
- Elastic Stack: 集中化、轉換和儲存你的資料。是一個開源的、服務端資料處理流水線,它同時從多個源中採集資料,轉換它,然後將它發送到你最喜歡的Stash中(對於我們來說自然是Elastic Search)。
- Kibana: Kibana可以讓你可視化你的Elastic Search(彈性搜尋)資料,並瀏覽Elastic Stack,這樣你就可以瞭解為什麼在淩晨兩點的時候被分頁來理解雨季對你季度數位影響。
- Elasticsearch: Elastic Stack的核心。具有解決不斷壯大用例的分布式、RESTful搜尋和分析引擎能力。作為Elastic Stack的核心,它集中化儲存資料,因此你可以發現預期和發現意外情況。
- Docker Gelf日誌磁碟機: 是一種方便的格式,可以被很多工具理解,例如Graylog, Logstash, Fluentd等等。
- Loggly: 這是一個日誌資料管理的SaaS解決方案。使用它可以將日誌從整個基礎設施的深處帶到一個可以跟蹤活動和分析趨勢的地方。最重要的是,Loggly是一種託管服務,你不需要任何額外的硬體或軟體就可以使用Loggly,並且可以動態根據操作進行擴充。
- 英文第10部分
- 系列文章首頁
- 下一節