《關於我怎麼把一年內學到的新手 IT/SRE 濃縮到 30 天筆記這檔事》 Day 26 Loki - 把 Log 蒐集儲存起來吧
本篇大綱
這篇要來介紹 Log 儲存,基於 Time Series 的 Log 儲存系統,安裝在 K8s 上並且跟 Grafana 串起來。
內文
今天會採用的是 Grafana Labs 開發的 Loki,這是基於 Time series 的 Log 儲存系統,會接上 Promtail 蒐集每個 Container 的 Log,傳送到 Loki 做儲存。
安裝 Loki
按照往常慣例先加入 Grafana 的 Repo:
1 |
|
加入好了以後,這次會使用 loki-stack
這個 Chart 2.8.3
版本,最基礎的蒐集 Log 也有在裡面了,loki-distributed
是微服務版本,需要去細分他們的 Write flow 跟 Read flow,有需求的可以讀文件。
那 loki-stack
就是 Monolithic mode 版本,不過小型這樣也夠了,有需要再去換成 loki-distributed
就好。
那就把 loki-stack
value 抓下來吧!
1 |
|
看一下裡面的內容,確認 .loki.enabled
跟 .promtail.enabled
都是 true
就好,其他都是 false
,除非評估有需要用到 filebeat 或 logstash 服務,不然 Promtail 蒐集 Log 就很夠用了。
接下來就安裝進去吧:
1 |
|
安裝完畢以後,就可以跟 Grafana 串接起來。
與 Grafana 連線 Datasource
那就還看看 Loki 服務名稱,kubectl get service
一下
根據拿到的 Service 為 loki
,再加上因為是不同 Namespace 需要加上 loki
,可以知道等等要連線的地方就是 http://loki.loki:3100
那就進入到 Configuration > Data sources > Add data source
選擇 Loki
URL 就打上 http://loki.loki:3100
按下最下面的 Save & Test
只要顯示 Data source connected and labels found.
就代表連線成功了。
進到 Explore
,上面就可以切換 Datasource 為 Loki
,按一下 Log browser
,就可以根據以下的篩選條件來選擇你要的 Log。
這裡我會選擇找出 app=istiod
相關的 Log。
按下 Show logs
就會把相關條件的 Log 找出來。
還不錯吧!接下來就接上 Dashboard。
接上 Dashboard
點到 Dashboards > New dashboard
就會來到這個畫面,點一下 Add a new panel
下方的 Query Datasource 改為 Loki
,填寫上剛剛想查詢的 Log 範圍,右側記得改為 Logs
,Title 設定為 Istio Daemon Logs
。
按下 Apply
就會套用了。
別忘記按下 Save Dashboard
。
其實 Loki 也可以跟 Syslog 做串接整合,不過這裡因為篇幅限制就沒有寫上來,如果有這樣需求教學,我會再跟 CNTUG 借 Infras 做實驗。
監控到這裡就暫告一個段落,下一篇就要來講程式碼版本管理 Server - GitLab,後面幾篇就來安裝、上傳程式碼、實作 CI/CD。
本系列內容也會同步貼到我的 iT 邦幫忙 https://ithelp.ithome.com.tw/users/20112934 歡迎來點一下追蹤,那我們就下一篇文章見啦!