第 8 章 启用 JSON 日志记录


您可以配置 Log Forwarding API,将 JSON 字符串解析为结构化对象。

8.1. 解析 JSON 日志

包含 JSON 日志的日志通常以 message 字段中的字符串表示。这使得用户难以查询 JSON 文档中的特定字段。OpenShift Logging 的 Log Forwarding API 可让您将 JSON 日志解析到结构化对象,并将其转发到 OpenShift Logging 管理的 Elasticsearch 或 Log Forwarding API 支持的任何其他第三方系统。

为了说明其工作原理,假定您有以下结构化 JSON 日志条目:

结构化 JSON 日志条目示例

{"level":"info","name":"fred","home":"bedrock"}

通常,ClusterLogForwarder 自定义资源 (CR) 会在 message 字段中转发该日志条目。message 字段包含与 JSON 日志条目等效的 JSON-quoted 字符串,如下例中所示:

message 字段示例

{"message":"{\"level\":\"info\",\"name\":\"fred\",\"home\":\"bedrock\"",
 "more fields..."}

要启用解析 JSON 日志,您需要将 parse: json 添加到 ClusterLogForwarder CR 的管道中,如下例所示。

显示 parse: json 的片段示例

pipelines:
- inputRefs: [ application ]
  outputRefs: myFluentd
  parse: json

当使用 parse: json 来启用 JSON 日志解析时,CR 会复制 structured 项中的 JSON 结构化日志条目,如下例所示。这不会修改原始的 message 字段。

包含结构化 JSON 日志条目的 structured 输出示例

{"structured": { "level": "info", "name": "fred", "home": "bedrock" },
 "more fields..."}

重要

如果日志条目不包含有效的结构化 JSON,则将缺少 structured 字段。

要启用为特定日志记录平台解析 JSON 日志,请参阅将日志转发到第三方系统

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.