您现在的位置是:亿华云 > IT科技
Grafana Loki管理Spring Boot日志实战
亿华云2025-10-08 21:19:45【IT科技】0人已围观
简介上一篇文章简单入门了Loki日志平台的使用,今天又简单研究了如何在实践中使用Loki监控Spring Boot应用,特地分享给大家,让大家对这门新技术有更深的了解。Loki的日志收集实践上一篇文章中我
上一篇文章简单入门了Loki日志平台的志实战使用,今天又简单研究了如何在实践中使用Loki监控Spring Boot应用,志实战特地分享给大家,志实战让大家对这门新技术有更深的志实战了解。
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收集日志的机理进行了分享,尤其是日志收集器Promtail的改造部署。希望能够帮助你更加快捷地实战这个日志新贵。
本文转载自微信公众号「码农小胖哥」,可以通过以下二维码关注。转载本文请联系码农小胖哥公众号。亿华云计算
很赞哦!(1245)
相关文章
- 审核通过的域名将显示在域名竞拍页面,并进入正式拍卖期,买家可以在拍卖周期内出价,加价幅度与拍卖保证金说明,点此查看。
- Python也许很友好,但它也容易弄得一团槽
- 如何把 Node.js 嵌入自己的项目中
- 618备战运营大屏建设—跨时区多源架构实践之路
- 5、使用企业名称的英文名称作为域名也是国内许多企业选择域名的一种方式,特别适合一些与计算机、网络和通信相关的行业。
- 我本地明明是好的啊?前端怎么本地复现线上问题?
- 鲜为人知的CSS实用技巧
- Go 语言怎么优化重复的 if err != nil 样板代码?
- 众所周知,com域名拥有最大的流通市场和流通历史。最好选择com域名,特别是在购买域名时处理域名。其次可以是cn域名、net域名、org域名等主流域名,现在比较流行的王域名和顶级域名,都是值得注册和投资的。
- Python和Go,谁才是编程语言的“王者”?