在Docker上搭建LPG日志系统

· 1235字 · 3分钟

1 LPG 是什么 🔗

LPG 是一套由grafana开发的、类似于 ELK 的日志系统,但它更加轻量

  • Loki:日志收集引擎,归集、分析和输出日志,LPG的核心系统
  • Promtail:日志采集端,在需要采集日志的节点上部署,把采集到的日志发送到Loki进行处理
  • Grafana:UI界面

2 搭建步骤(Docker) 🔗

Loki和Promtail的部署可以参考官方文档:https://grafana.com/docs/loki/latest/setup/install/docker/

首先可以新建一个目录 /data/lpg,用于放置lpg的配置文件。以下操作均在此目录下进行

2.1 部署Loki 🔗

(1)下载配置文件

wget https://raw.githubusercontent.com/grafana/loki/v3.0.0/cmd/loki/loki-local-config.yaml -O loki-config.yaml

(2)部署到docker

docker run --name loki -d -v $(pwd):/mnt/config -p 3100:3100 grafana/loki:3.0.0 -config.file=/mnt/config/loki-config.yaml

(3)检查是否安装成功

docker ps # 应有正在运行的Loki
curl http://localhost:3100/ready # 应返回状态 ready,说明Loki已经启动成功(有时候需要等待一会儿)
curl http://localhost:3100/metrics # 应返回各项指标

2.2 部署Promtail 🔗

(1)下载配置文件

wget https://raw.githubusercontent.com/grafana/loki/v3.0.0/clients/cmd/promtail/promtail-docker-config.yaml -O promtail-config.yaml

(2)部署到docker

docker run --name promtail -d -v $(pwd):/mnt/config -v /var/log:/var/log --link loki grafana/promtail:3.0.0 -config.file=/mnt/config/promtail-config.yaml

(3)检查是否安装成功

docker ps # 应有正在运行的Promtail

Promtail是日志收集端,可以直接部署到宿主机上。linux可以通过包管理器直接安装,一般配置文件在 /etc/promtail/config.yml,参考上面下载的配置文件进行配置即可。

2.3 部署Grafana 🔗

(1)部署到docker

grafana分为商业版和开源版,没有特殊情况的话,开源版足够使用:

docker run -d -p 3000:3000 --name grafana grafana/grafana-oss

(2)检查是否安装成功

浏览器打开 http://127.0.0.1:3000 即可,初始用户名为 admin,初始密码为 admin

2.4 配置网络连接 🔗

网上有部分资料缺少了这一环,导致grafana无法成功连接数据源,或promtail无法成功推送日志。在docker环境下,建议添加一个网络配置,这样更方便互相连接。

如果 LPG 是直接安装在宿主机上,则可以忽略这一步。

(1)创建网络连接

# 创建一个桥接模式的网络,命名为 lpg-network
docker network create -d bridge lpg-network

(2)连接网络

# 把容器连接到这个网络中去
docker network connect lpg-network loki
docker network connect lpg-network promtail
docker network connect lpg-network grafana

3 添加数据源 🔗

3.1 添加Loki 🔗

在grafana的侧边栏选中 Connections > Data Sources

在右上角选中按钮 Add new data source,选择 Loki;

Connection 中填写 URL:http://loki:3100;如果你是在宿主机上安装的 LPG,则可能需要填写成 http://localhost:3100。具体看Grafana和Loki之间的网络连接是什么样的。

如果安装 Loki 的时候没有更改什么配置,其余都可以不填写;如果配置了认证方式,那么请根据自己的配置填写 Authentication 等。

3.2 查看日志 🔗

在添加好的数据源上面点击按钮 Explore,即可进入日志面板。

在过滤器里面选择合适的过滤选项,点击右上角的 Run query 即可查询日志。

标签配置请参考官方对 Promtail 的说明。

4 日志文件的权限问题 🔗

查看 Promtail 自身的运行日志,有时候会提示打开某个文件时权限不足。

将 promtail 用户添加到 systemd-journal 组,这样 promtail 用户就有权限读取 systemd 日志:

usermod -a -G systemd-journal promtail
# 重启后验证权限是否正常