持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第20天,点击查看活动详情
背景 当前微服务体系下,PLG日志系统日渐流程,今天我们来体验下PLG日志体系。PLG的组成即如下三块
- promtail:负责收集日志并将其发送给Loki
- loki:主服务器,服务存储日志和处理查询
- Grafana:用于查询和现实日志
步骤
前期准备
创建目录
mkdir -p /usr/test/monitor/
cd /usr/test/monitor/
拉取镜像
docker pull grafana/grafana
docker pull grafana/promtail
docker pull grafana/loki:2.0.1
拉取promtail和loki配置文件
wget --no-check-certificate
https://raw.githubusercontent.com/grafana/loki/master/cmd/loki/loki-local-
config.yaml
wget --no-check-certificate
https://raw.githubusercontent.com/grafana/loki/master/clients/cmd/promtail/p
romtail-local-config.yaml
启动Loki
配置loki-local-config.yaml文件
vim /usr/dz/monitor/loki-local-config.yaml
注意:图中address是当前服务器ip地址,除此之外还要删除如下几行配置
wal:
enabled: true
dir: /tmp/wal
recover: true
启动loki
docker run -d \
--name loki \
--privileged=true \
-v /usr/dz/monitor:/mnt/config \
-p 3100:3100 \
-p 9096:9096 \
grafana/loki:2.0.1 -config.file=/mnt/config/loki-local-config.yaml
启动promtail
配置promtail-local-config.yaml文件
vim /usr/dz/monitor/promtail-local-config.yaml
注意:url地址设置为Loki所在服务器地址
启动promtail
docker run -d \
--name promtail \
--privileged=true \
--restart=always \
-v /usr/dz/monitor:/mnt/config \
-v /usr/dz/logs:/usr/dz/logs \
grafana/promtail:latest -config.file=/mnt/config/promtail-local-config.yaml
启动之后如果出现错误,可根据如下提示进行检查
doker -v 目录挂载 宿主机目录:容器目录---->(目录挂载出错)
docker -p 端口映射 宿主机端口:容器端口---->(端口映射出错)
-config.file-------------------------------------------------> (配置文件路径错误)
可以用 netstat -nap | grep port 命令去看看端口是否通的
可以用 docker logs -f --tail=100 容器ID/容器名 命令去查看日志
启动grafana
启动grafana
docker run -d \
--name grafana \
-p 3000:3000 \
grafana/grafana:latest
访问grafana
http://192.168.15.144:3000
默认账号密码:admin
grafana添加loki数据源
登录后选择配置,选择配置数据源
新增数据源,url选择loki的地址
添加成功后进行保存
rafana导入面板
不能联网的情况下直接导入监控文件包中的logs-app_rev1.json文件
导入监控系统部署包中的logs-app_rev1.json文件
查询日志
总结 研究PGL日志监控体系过程中也走了不少弯路,者差不多是运维的活了,后续是不是可以将这个过程整合简化成一套傻瓜式的放哪就更好了,但是不得说这3者各自发挥所长才能构成一个完善好用的日志监控。希望后续项目中可以实战用到验证下效果。