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
# 重启后验证权限是否正常