本文简单介绍如何在项目中集成日志收集。
每次看日志信息都需要登陆到远程服务器,会很麻烦,而且不同应用的日志需要切换到不同的日志文件,有时候还要联合多个日志文件查看请求涉及的所有信息。总结下来主要有 3 点问题:
怎么解决呢?使用日志收集工具,将所有日志统一收集汇总分析,Spring 列举了两款日志收集工具:
笔者这里使用 Kibana 实现日志收集,Kibana 只做日志信息可视化,还需要使用到 和 ,俗称 ELK。
参考 ,检出到本地后,修改 Logstash 配置:
learn-docker/composes/elk/logstash/config/logstash.yml
修改后内容已上传至 ,可检出后与本项目配套使用。
修改项目日志配置,输出日志到消息队列。添加 配置文件,重要部分内容如下:
logback-spring.xml
每个项目都需要使用这个配置文件,如果拷贝到各个项目会很麻烦。在远程仓库通过 统一指定。
这里使用配置中心进行测试,启动应用后,会自动创建 交换机:
日志消息通过路由键 应用名.类名.日志级别 发送到 交换机;Logstash 从 队列上接收所有消息,然后转发至 Elasticsearch;最后 Kibana 从 Elasticsearch 读取数据后进行展示。
打开 Kibana 页面 http://localhost:5601 ,输入账号密码 elastic/changeme,查看日志信息:
Figure 1. kibana日志信息
现在 Kibana 可以看到所有应用的日志信息,但不能查看某个特定请求[]相关的所有日志,需要通过 Sleuth 添加追踪信息。
首先,在项目中添加 依赖。重新启动项目后,日志信息如下:
root.log
在日志级别后面,会出现 :
这是 Sleuth 提供的,有了这些信息,就可以将整个请求链条串起来。
重新查看 Kibana:
Figure 2. 重新查看 Kibana
现在通过 过滤,就能查出整个请求涉及的相关日志。
参考
可以直接使用 ,从日志文件中读取日志后上传到 Elasticsearch,不需要使用 RabbitMQ,也不需要单独部署 Logstash 服务,简化了流程。但需要每个项目配置类似的 , 中不能使用占位符[],分环境配置也很麻烦,最终放弃。
做完之后,发现用 更合适。ELK 主要是全文检索分析统计,如果只是汇总查看信息没必要。
. 比如访问外部客户端的 /message 接口,外部客户端会调接口网关,接口网关再调用资源服务
. 未经证实
到此这篇springcloud aop日志(springcloud日志收集)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/33703.html