Loki 套件
Loki是 Grafana Labs 团队最新的开源项目,是一个水平可扩展,高可用性,多租户的日志聚合系统。
Loki 由以下3个部分组成:
- loki是主服务器,负责存储日志和处理查询。
- promtail是代理,负责收集日志并将其发送给 loki 。
- Grafana用于 UI 展示。
与 ELK 对比
ELK
的优势, 性能、功能强大。缺点,太耗资源。
Loki
则在功能性与资源之间做了一个很好的平衡。
安装 Loki 套件
编写docker-compose
文件,如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
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 promtail: image: grafana/promtail restart: always environment: - TZ=Asia/Shanghai - LANG=zh_CN.UTF-8 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
, 访问localhost:3100
即可访问。
安装docker插件
Loki正式支持Docker插件,该插件将从Docker容器读取日志并将其发送到Loki。可以将插件配置为将日志发送到私有Loki实例或Grafana Cloud。
Docker插件必须安装在将运行您要从中收集日志的容器的每个Docker主机上。
运行以下命令以安装插件:
1 2 |
docker plugin install grafana/loki-docker-driver:latest --alias loki --grant-all-permissions |
检查已安装的插件,请使用docker plugin ls命令。成功启动的插件被列为已启用:
1 2 3 4 |
$ docker plugin ls ID NAME DESCRIPTION ENABLED ac720b8fcfdb loki Loki Logging Driver true |
其他插件管理命令:
升级插件
1 2 3 4 5 |
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 |
删除插件
1 2 3 |
docker plugin disable loki --force # 禁用 docker plugin rm loki # 删除插件 |
收集日志
全局配置
编辑daemon.json
。linux下默认路径是/etc/docker/daemon.json
, windows则默认是%userprofile%\.docker\daemon.json
1 2 3 4 5 6 7 8 9 10 |
{ "log-driver": "loki", "log-opts": { "loki-url": "http://YOUR_IP:3100/loki/api/v1/push", "max-size": "50m", "max-file": "10" }, "registry-mirrors": ["https://registry.docker-cn.com"] } |
单容器配置
启动容器时,通过--log-drive
来配置。
1 2 |
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 |
docker-compose 配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
version: "3" x-logging: &loki-logging driver: loki options: loki-url: "http://YOUR_IP:3100/loki/api/v1/push" max-size: "50m" max-file: "10" services: host: container_name: grafana image: grafana/grafana environment: - TZ=Asia/Shanghai - LANG=zh_CN.UTF-8 logging: *loki-logging |
配置、查看日志
访问http://localhost:3000/
,通过Configuration -> Data Source
添加数据源。
点击Add data source
添加数据源,选择Loki
只需配置Url: http://loki:3100
点击Explore
,进行查看日志
选择对应的log labels
进行查看日志