Kubernetes中.log文件的格式以及Filebeat如何解析日志

问题描述 投票:0回答:1

应用程序生成日志到 docker 容器标准输出:

{"message": "网关200 <== assistant PATCH /admin/info-banners/1/", "service_name": "НКЗ API Gateway", "level": "INFO", "timestamp": "2024-04-16T09:27:08.514573", "logger": "app.adapters.base_adapter", "filepath": "/api_gateway/app/adapters/base_adapter.py", "func": "_request_service"}

日志随后由 Kubernetes 传输到

.log
文件,看起来像这样:

2024-04-16T12:27:08.515010847+03:00 标准输出 F {“消息”:“网关 200 <== assistant PATCH /admin/info-banners/1/", "service_name": "НКЗ API Gateway", "level": "INFO", "timestamp": "2024-04-16T09:27:08.514573", "logger": "app.adapters.base_adapter", "filepath": "/api_gateway/app/adapters/base_adapter.py", "func": "_request_service"}

问题1:什么是

stdout
?是从哪里拿走的?

问题2:如果

F
怎么办?

登录文件

.log
然后由filebeat使用。

问题3:filebeat如何决定如何解析

2024-04-16T12:27:08.515010847+03:00
stdout
F
?我的意思是有类型(日期时间、字符串、字符串)。 filebeat 如何决定解析 json?

kubernetes filebeat
1个回答
0
投票

另一个相关答案这里。 Kubernetes 日志基本上是 CRI 日志格式

  1. 表示标准输出日志。
  2. F 表示“完整日志条目”,请参阅此处。另一个选项是 P,代表“部分”
  3. 您的 filebeat 预处理器必须配置此 CRI 日志格式。示例此处
© www.soinside.com 2019 - 2024. All rights reserved.