最近在三台樹梅派使用 Docker 架設服務
但是查看 log 真的不是很方便
最近剛完 Prometheus 看到 Loki
跟 Prometheus 很像,又是跟 Container 很有關係
看了一下佈署流程,並不是非常難
所以就食做看看
使用官方 docker-compose loki/docker-compose.yaml at master · grafana/loki · GitHub
grafana 帳號密碼為 admin/admin
進去新加 datasource 為 loki
這樣就算部屬完成
Grafana 要點選 expore
才能看到日誌
1 | version: "3" |
本機是linux 的話, /var/log/底下都會傳到 loki 日誌去
可以用 volume 把日誌掛到 containr 那邊去
應該也有一樣的效果
不過我下面還有比較好的方法
加 loki datasource 和 explore操作
Loki轻量级日志系统_Kammingo的博客-CSDN博客
輕量級日誌系統Loki原理簡介和使用_平凡人筆記 - MdEditor
docker 實作 Loki 日誌
再 container 把日誌輸出來不是很方便
所以我們是使用 docker 直接輸出日誌
可算非常方便
參考來源:
loki收集docker容器里运行服务的日志,loki+grafana_十个菜-CSDN博客
docker swarm结合loki搭建轻量级日志监控系统 - 琴弦上的尼古丁
安裝 docker loki driver
1 | docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions |
相關升級、移除可以在官網看到
比較有趣看到yaml 模板寫法
1 | version: "3.4" |
樹梅派安裝法
參考:docker plugin enable Loki gives an error · Issue #974 · grafana/loki · GitHub
- 嚐試安裝
1 | docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions |
- 看到錯誤
1 | Error response from daemon: dial unix /run/docker/plugins/61d4906b35d0d106db69561446160ba63bddb5f9a30d765293ddc75d11a6935b/loki.sock: connect: no such file or directory |
- git clone loki
1 | git clone --depth=1 https://github.com/grafana/loki.git |
- 在 loki 資料夾輸入
1 |
|
樹莓派 build 一直失敗,後來發想到 Golang 也是跨平台
所以我在x86主機編譯順利。
- 編譯檔案(docker-driver)複製到/var/lib/docker/plugins/<ALPHA_NUMERIC_FOLDER>/rootfs/bin
把編譯好的 docker-driver,
1 | sudo ls /var/lib/docker/plugins/ |
- 啟動 docker plugin
1 | docker plugin enable loki |
這邊之前啟動的 docker containr 要刪掉重新起新的 container 才會有用
全局設定
編輯daemon.json。linux下默認路徑是/etc/docker/daemon.json (需要sudo), windows則默認是%userprofile%.docker\daemon.json
1 | { |
參考:loki收集docker容器裡運行服務的日誌,loki+grafana_十個菜-CSDN博客
各自設定
在 docker-compose 裡面加 logging
1 | version: "3.7" |
就可以完成
指令可以用
1 | docker run --rm --name=grafana --log-driver=loki --log-opt loki-url="http://YOUR_IP:3100/loki/api/v1/push" --log-opt max-size=50m --log-opt max-file=10 grafana/grafana |
參考:* loki收集docker容器里运行服务的日志,loki+grafana_十个菜-CSDN博客
使用 Loki 做 Traefik Acess Log 分析
loki 架好後,相關 docker log 設定完
Grafana 設定好 loki 資源
這邊記得把 traefik access log 改成 json
1 | #traefik |
import 這個 dashboard Traefik Via Loki dashboard for Grafana | Grafana Labs
還要把 json 內容裡面 label 改掉
1 | {job=\"/var/log/traefik.log\"} |
換成(這邊換成你電腦相對位置)
1 | {container_name=\"rpi-traefik_traefik_1\",host=\"PI202\"} |
Traefik 2 监控系统之Grafana Prometheus Promtail Loki完美结合 - 简书
詳細也可以看這篇,也寫得很完整
也有看到非常強的 dashboard
Loki v2 Web Analytics Dashboard for NGINX dashboard for Grafana | Grafana Labs