千家信息网

如何使用Loki监控SpringBoot应用

发表于:2025-11-17 作者:千家信息网编辑
千家信息网最后更新 2025年11月17日,这篇文章主要为大家展示了"如何使用Loki监控SpringBoot应用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用Loki监控SpringBoo
千家信息网最后更新 2025年11月17日如何使用Loki监控SpringBoot应用

这篇文章主要为大家展示了"如何使用Loki监控SpringBoot应用",内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下"如何使用Loki监控SpringBoot应用"这篇文章吧。

Loki的日志收集实践

之前我们使用Docker Compose同时启动了Grafana、Loki、Promtail来监控一个应用。以及整个日志体系的架构。

Loki日志体系

但是实际应用中不可能为每一个应用都建立一个Grafana-Loki-Promtail体系。

Promtail日志代理

目前Promtail可以从两个来源跟踪日志:本地日志文件和systemd日志,我们上一篇文章中演示的就是本地日志文件的加载,这种方式是目前我唯一能够使用的途径,另一种途径是通过K8S的服务发现能力。

Loki流程图

如果在多个应用服务器上部署对应的多个Promtail守护程序就能监视多个应用的静态日志文件,并通过Loki API将日志推送到Loki中进行聚合式的管理。

Spring Boot日志的部署拓扑

Promtail动态配置

我们只需要为Loki应用部署相关的Promtail守护程序即可。这里我仍然使用Docker对Promtail进行部署,不过我不能再使用默认配置了,这时的config.yml应该是:

server:   http_listen_port: 9080   grpc_listen_port: 0  positions:   filename: /var/log/positions.yaml  client:   url: http://${LOKI_HOST}:${LOKI_PORT}/loki/api/v1/push  scrape_configs:   - job_name: system     pipeline_stages:     static_configs:       - labels:           app: ${APP_NAME}           job: varlogs           host: ${LOG_HOST}           __path__: /var/log/*log

为了构建一个通用的配置,我将一些参数进行了动态化。这是Loki2.1+版本提供的特性,可以使用${}来引用环境变量,甚至你可以为其指定默认值${VAR:default_value}。但是你必须得知道为了开启这一特性需要在Promtail启动命令中添加选项-config.expand-env。

Promtail Docker镜像改造

根据这个我对Promtail的Docker镜像进行了改造,具体的Dockerfile为:

FROM grafana/promtail:2.2.1 LABEL AUTHOR = felord.cn VOLUME ["/var/log/"] EXPOSE 9080 ENV LOKI_HOST="localhost" ENV LOKI_PORT=3100 ENV APP_NAME="APP" ENV LOG_HOST="localhost" COPY config.yml /etc/promtail/ CMD ["-config.file=/etc/promtail/config.yml", "-config.expand-env"]

你可以通过docker build -t loki-promtail:1.0 .命令构建这个自定义Promtail镜像。基本的启动命令:

docker run -d  --name promtail-service --network loki -v c:/docker/log:/var/log/  -e LOKI_HOST=loki -e APP_NAME=SpringBoot  loki-promtail:1.0

其中挂载的目录c:/docker/log依然是应用的日志目录,LOKI_HOST要保证能够同Loki服务器通信,无论你通过直连还是Docker网络(这里用了Docker网桥)。你可以可以使用Docker Compose将应用和Promtail进行捆绑,所有的Promtail将把对应的日志发往Loki进行集中式的管理。另外通过自定义的Label我们可以通过应用名称来搜索日志了。

以上是"如何使用Loki监控SpringBoot应用"这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注行业资讯频道!

日志 应用 监控 篇文章 体系 内容 命令 多个 文件 镜像 服务 配置 动态 可以通过 服务器 特性 目录 程序 途径 学习 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 导入数据库的中文乱码 互联网科技的书 28743网络安全 真题 上位机软件开发管理 深圳做标软件开发有限公司电话 软件开发涉及政府秘密 找不到服务器的用户怎么办 hive 查询所有数据库 dns 服务器是什么意思 数据库无权限怎么查看 人脸识别属于网络安全技术吗 湖南望城电信dns服务器地址 海淀区正规软件开发单价 交通银行软件开发中心职责 软件开发计算机二级 桌面云管理服务器容量满了 共享快递柜软件开发多少钱 怎样恢复备份的数据库文件 深圳运维服务软件开发价位 mc服务器地图需要自己建吗 我的时间服务器在哪里输入命令 数据库更新实验试验环境 平台软件开发工作分配 青岛准安互联网科技 北海网络安全违规案例 真相科技杭州互联网法院 软件开发如何通过淘宝寻找客户 青岛大学网络安全处 企业如何开展网络安全工作 自己在家搭建我的世界小型服务器
0