iT邦幫忙

2022 iThome 鐵人賽

DAY 26
0

本篇大綱

這篇要來介紹 Log 儲存,基於 Time Series 的 Log 儲存系統,安裝在 K8s 上並且跟 Grafana 串起來。

內文

今天會採用的是 Grafana Labs 開發的 Loki,這是基於 Time series 的 Log 儲存系統,會接上 Promtail 蒐集每個 Container 的 Log,傳送到 Loki 做儲存。

https://ithelp.ithome.com.tw/upload/images/20221011/20112934mPTmIy7mh6.png

安裝 Loki

按照往常慣例先加入 Grafana 的 Repo:

helm repo add grafana https://grafana.github.io/helm-charts
helm repo update

https://ithelp.ithome.com.tw/upload/images/20221011/2011293412xv9RMbbS.png

加入好了以後,這次會使用 loki-stack 這個 Chart 2.8.3 版本,最基礎的蒐集 Log 也有在裡面了,loki-distributed 是微服務版本,需要去細分他們的 Write flow 跟 Read flow,有需求的可以讀文件。

https://ithelp.ithome.com.tw/upload/images/20221011/20112934fHWdMJsK4V.png

loki-stack 就是 Monolithic mode 版本,不過小型這樣也夠了,有需要再去換成 loki-distributed 就好。

https://ithelp.ithome.com.tw/upload/images/20221011/201129342TBCFofGfq.png

那就把 loki-stack value 抓下來吧!

helm show values grafana/loki-stack --version 2.8.3 > values.yaml
vim values.yaml

看一下裡面的內容,確認 .loki.enabled.promtail.enabled 都是 true 就好,其他都是 false,除非評估有需要用到 filebeat 或 logstash 服務,不然 Promtail 蒐集 Log 就很夠用了。

接下來就安裝進去吧:

kubectl create namespace loki
helm install -f values.yaml loki grafana/loki-stack -n loki

https://ithelp.ithome.com.tw/upload/images/20221011/20112934DKy6uTKvPg.png

安裝完畢以後,就可以跟 Grafana 串接起來。

與 Grafana 連線 Datasource

那就還看看 Loki 服務名稱,kubectl get service 一下

https://ithelp.ithome.com.tw/upload/images/20221011/20112934z2AIuW53jj.png

根據拿到的 Service 為 loki,再加上因為是不同 Namespace 需要加上 loki,可以知道等等要連線的地方就是 http://loki.loki:3100

那就進入到 Configuration > Data sources > Add data source 選擇 Loki

URL 就打上 http://loki.loki:3100

https://ithelp.ithome.com.tw/upload/images/20221011/20112934UAJFSaaU6w.png

按下最下面的 Save & Test 只要顯示 Data source connected and labels found. 就代表連線成功了。

https://ithelp.ithome.com.tw/upload/images/20221011/20112934nEhaHqRrwL.png

進到 Explore,上面就可以切換 Datasource 為 Loki,按一下 Log browser,就可以根據以下的篩選條件來選擇你要的 Log。

https://ithelp.ithome.com.tw/upload/images/20221011/20112934GeDIhafpqH.png

這裡我會選擇找出 app=istiod 相關的 Log。

https://ithelp.ithome.com.tw/upload/images/20221011/20112934a5g1GNeREh.png

按下 Show logs 就會把相關條件的 Log 找出來。

https://ithelp.ithome.com.tw/upload/images/20221011/20112934BQmQhpokQj.png

還不錯吧!接下來就接上 Dashboard。

接上 Dashboard

點到 Dashboards > New dashboard

https://ithelp.ithome.com.tw/upload/images/20221011/20112934MUK843H6Ii.png

就會來到這個畫面,點一下 Add a new panel

https://ithelp.ithome.com.tw/upload/images/20221011/20112934c99qgKXuV3.png

下方的 Query Datasource 改為 Loki,填寫上剛剛想查詢的 Log 範圍,右側記得改為 Logs,Title 設定為 Istio Daemon Logs

https://ithelp.ithome.com.tw/upload/images/20221011/20112934LCGsSskU8G.png

按下 Apply 就會套用了。

https://ithelp.ithome.com.tw/upload/images/20221011/20112934YHjAHQCZU4.png

別忘記按下 Save Dashboard

https://ithelp.ithome.com.tw/upload/images/20221011/20112934aAHIAviKgG.png

其實 Loki 也可以跟 Syslog 做串接整合,不過這裡因為篇幅限制就沒有寫上來,如果有這樣需求教學,我會再跟 CNTUG 借 Infras 做實驗。

監控到這裡就暫告一個段落,下一篇就要來講程式碼版本管理 Server - GitLab,後面幾篇就來安裝、上傳程式碼、實作 CI/CD。

本系列內容也會同步貼到我的 Blog https://blog.yangjerry.tw 歡迎來我的 Blog 點一下 RSS 追蹤,那我們就下一篇文章見啦!

Source


上一篇
Day 25 Grafana - 視覺化和分析工具
下一篇
Day 27 GitLab - 私有雲最好用的 Git Server
系列文
關於我怎麼把一年內學到的新手 IT/SRE 濃縮到 30 天筆記這檔事30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言