8.3. 将 JSON 日志转发到 Elasticsearch 日志存储


对于 Elasticsearch 日志存储,如果您的 JSON 日志条目遵循不同的模式,请将 ClusterLogForwarder 自定义资源 (CR) 配置为将每个 JSON 模式分组到单个输出定义中。这样,Elasticsearch 会为每个 schema 使用一个单独的索引。

重要

因为将不同的模式转发到同一索引可能会导致类型冲突和卡化问题,所以您必须在将数据转发到 Elasticsearch 存储前执行此配置。

为避免与索引数量过多相关的性能问题,请考虑通过标准化到常见模式来保持可能的模式数量较低。

流程

  1. 将以下代码片段添加到 ClusterLogForwarder CR YAML 文件中。

    outputDefaults:
    - elasticsearch:
        structuredTypeKey: <log record field>
        structuredTypeName: <name>
    pipelines:
    - inputRefs:
      - application
      outputRefs: default
      parse: json
  2. 可选:使用 structTypeKey 指定其中一个日志记录字段,如前面的为 Elasticsearch 配置 JSON 日志数据所述。否则,删除此行。
  3. 可选:使用 structTypeName 指定 <name>,如前面的为 Elasticsearch 配置 JSON 日志数据所述。否则,删除此行。

    重要

    要解析 JSON 日志,您必须设置 structuredTypeKeystructuredTypeName,或者同时设置 structuredTypeKeystructuredTypeName

  4. 对于 inputRefs,指定应使用该管道转发哪些日志类型,如 applicationinfrastructureaudit
  5. parse: json 元素添加到管道。
  6. 创建 CR 对象。

    $ oc create -f <file-name>.yaml

    Red Hat OpenShift Logging Operator 会重新部署 Fluentd Pod。但是,如果没有重新部署,请删除 Fluentd Pod 以强制重新部署。

    $ oc delete pod --selector logging-infra=fluentd
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.