1 基礎環境服務器端
-
使用docker-compose安裝loki,grafana
loki是主服務器,負責存儲日志和處理查詢。
Grafana用于日志分析檢索界面操作。linux查看端口是否被占用
netstat -nultp
version: "3" networks: loki: services: loki: image: grafana/loki restart: always environment: - TZ=Asia/Shanghai - LANG=zh_CN.UTF-8 ports: - 3100:3100 networks: - loki grafana: image: grafana/grafana:master restart: always environment: - TZ=Asia/Shanghai - LANG=zh_CN.UTF-8 ports: - 3000:3000 networks: - loki
docker-compose up -d
訪問ip:3000,設置grafana數據源url
image-20210627150700636.png
2 所有需要監控日志的服務器端
-
docker配置文件添加loki地址及相關參數
vim /etc/docker/daemon.json
{ "log-driver": "loki", "log-opts": { "loki-url": "http://部署loki的服務器IP:3100/loki/api/v1/push", "max-size": "30m", "max-file": "10" } }
其中max-size表示日志文件最大大小,max-file表示最多10個日志文件,都是對單個容器來說的。
-
安裝loki的docker插件收集容器的日志文件
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions
-
loki日志收集插件更新操作如下:
docker plugin disable loki --force docker plugin upgrade loki grafana/loki-docker-driver:latest --grant-all-permissions docker plugin enable loki systemctl restart docker
-
重啟docker后,所有重新拉的鏡像都可被收集到日志并發送到loki服務器
service docker restart
3 3小時踩坑
互相ping通的兩臺內網服務器無法實時獲取日志信息的問題