不操千曲而后晓声,观千剑而后识器。这篇文章主要讲述微服务架构 | 10.2 使用 Papertrail 实现日志聚合相关的知识,希望能为你提供帮助。
@[TOC](10.2 使用 Papertrail 实现日志聚合)
前言参考资料:
《Spring Microservices in Action》
《Spring Cloud Alibaba 微服务原理与实战》
《B站 尚硅谷 SpringCloud 框架开发教程 周阳》
Papertrail 是一种基于云的服务(基于免费增值),允许开发人员将来自多个源的日志数据聚合到单个可搜索的数据库中。开发人员可以为日志聚合选择的解决方案包括内部部署解决方案、基于云解决方案、开源解决方案和商业解决方案;
1. Papertrail 基础知识
1.1 Papertrail 特点
- 免费;
- 免费增值模式/分层定价模型;
- 非常容易创建,易与 Docker 容器工作;
- 基于云;
- Papertrail 是 Windows 的日志分析器,可自动扫描日志数据。扫描日志数据时,可以选择希望扫描结果显示的信息。例如,可以选择扫描是否包含 IP 地址,电子邮件地址, GUID/UUID,HTTP(s)URL,域,主机,文件名和引用文本;
- Papertrail 的一个重点是事件的解决。为了帮助你更快地找到安全事件的原因,可以按时间,来源或选择的自定义字段筛选日志事件。以这种方式过滤日志可以消除不相关的数据,并专注于最重要的数据;
- Papertrail 提供的另一种类似过滤选项允许你检测日志数据的趋势。可以按源,数据,严重性级别,工具或消息内容过滤事件。过滤后的搜索完成后,你将能够在屏幕底部查看结果图表;
- Papertrail 易于部署的日志分析器的理想选择。它提供免费的计划,允许你每月监控多达 100MB 的数据;
文章图片
2.1 创建 Papertrail 账户并配置 syslog 连接器
- 访问:https://papertrailapp.com;
文章图片
- 注册一个账号;
文章图片
- 创建一个日志记录;
文章图片
- 完成创建;
文章图片
- 需要留意最上面的
Your logs will go to logs.papertrailapp.com:43858 and appear in Events.
这句话,需要在 2.2 里进行配置; 2.2 将 Docker 输出重定向到 Papertrail
- 需要留意最上面的
- Docker 守护进程通过一个名为 docker.sock 的 Unix 套接字来与所有 Docker 容器进行通信;
- 每个容器都可以连接到 docker.sock,并接收由该服务器上运行的所有其他容器生成的所有消息;
- 需要向 docker-compose.yml 文件添加相关配置:
logspout:
image: gliderlabs/logspout
command: syslog://logs5.papertrailapp.com:43858
volumes:
- /var/run/docker.sock:/var/run/docker.sock
- 注意,这里的
logspout.command
属性需要与上面 Papertrail 提供的一致; - 启动 Docker 环境,即可看到下面日志聚合:
文章图片
2.3 在 Papertrail 中搜索 Spring Cloud Sleuth 的跟踪 ID - 在上图下方的搜索框里搜索 Sleuth 的跟踪 ID即可看到所有服务的相关日志信息;
<
dependency>
<
groupId>
org.springframework.cloud<
/groupId>
<
artifactId>
spring-cloud-starter-sleuth<
/artifactId>
<
/dependency>
2. 修改后置过滤器
@Component
public class ResponseFilter extends ZuulFilter
private static final intFILTER_ORDER=1;
private static final booleanSHOULD_FILTER=true;
private static final Logger logger = LoggerFactory.getLogger(ResponseFilter.class);
//访问追踪 ID 和跨度 ID 信息的入口点
@Autowired
Tracer tracer;
@Override
public String filterType()
return "post";
@Override
public int filterOrder()
return FILTER_ORDER;
@Override
public boolean shouldFilter()
return SHOULD_FILTER;
@Override
public Object run()
RequestContext ctx = RequestContext.getCurrentContext();
//添加新 HTTP 响应首部 tmx-correlation-id,其包含 Spring Cloud Sleuth 的跟踪 ID
ctx.getResponse().addHeader("tmx-correlation-id", tracer.getCurrentSpan().traceIdString());
return null;
最后::: hljs-center
新人制作,如有错误,欢迎指出,感激不尽!
:::
::: hljs-center
欢迎关注公众号,会分享一些更日常的东西!
:::
::: hljs-center
如需转载,请标注出处!
:::
::: hljs-center
文章图片
【微服务架构 | 10.2 使用 Papertrail 实现日志聚合】:::
推荐阅读
- C++学习之旅第二站(类和对象进阶)
- Python 汽车之家 全系车型参数(包含历史停售车型) 最全
- 盘点下近几年退役的顶级 Apache 大数据项目 - 继 Sentry,Sqoop 之后,Ambari 正式退役
- 3结构型模式(设计模式)
- MQTT 服务器安全性测试
- JavaScript 数组常见操作
- 机器学习(数据清理介绍和详细指南)
- DBMS中的范式详细指南
- 数据库规范化简介