loki 收集docker swarm日誌.md
阿新 • • 發佈:2020-10-16
目錄
參考自
https://github.com/swarmstack/loki
https://www.yuque.com/wangtao-7pwni/ivs01l/eyavpl
思路
1. loki 收集docker swarm的日誌需要給docker daemon安裝一個loki plugin ,docker daemon將會把日誌推送給loki服務 2. grafana上安裝Loki源 來展示資料
步驟
啟動一個loki服務
1. 下載配置檔案 wget https://raw.githubusercontent.com/grafana/loki/v1.5.0/cmd/loki/loki-local-config.yaml -O loki-config.yaml 2. 啟動loki服務 (在172.16.2.176節點上) docker run --name loki -v /root/deploy/loki/loki-config.yaml:/mnt/config/loki-config.yaml -p 3100:3100 --restart=always -d grafana/loki:1.5.0 -config.file=/mnt/config/loki-config.yaml
在docker swarm 的每個node上安裝loki外掛
docker plugin install grafana/loki-docker-driver:latest --alias loki
修改docker配置檔案 /etc/docker/daemon.json
{ "debug": true, "log-driver": "loki", "log-opts": { "loki-url": "http://172.16.2.176:3100/loki/api/v1/push", "max-size": "50m", "max-file": "10" }, "insecure-registries" : ["172.16.2.176:5000"], "registry-mirrors": ["https://pqbap4ya.mirror.aliyuncs.com"] }
重啟docker swarm各個節點
如果docker swarm叢集上已經有容器了,可以先驅逐容器,如果沒有可以直接重啟docker daemon程序
1. 驅逐容器
docker node update --availability drain ${nodeId}
2. 重啟對應docker
systemctl daemon-reload
systemctl restart docker
gafana安裝
1. docker-compose.yaml檔案
version: "3"
services:
grafana:
image: grafana/grafana:master
ports:
- 3000:3000
deploy:
restart_policy:
condition: on-failure
placement:
constraints: [node.hostname == app01]
2. 啟動
docker stack deploy -c docker-compose.yaml grafana