8.3. 将 JSON 日志转发到 Elasticsearch 日志存储
对于 Elasticsearch 日志存储,如果您的 JSON 日志条目遵循不同的模式,请将 ClusterLogForwarder
自定义资源 (CR) 配置为将每个 JSON 模式分组到单个输出定义中。这样,Elasticsearch 会为每个 schema 使用一个单独的索引。
因为将不同的模式转发到同一索引可能会导致类型冲突和卡化问题,所以您必须在将数据转发到 Elasticsearch 存储前执行此配置。
为避免与索引数量过多相关的性能问题,请考虑通过标准化到常见模式来保持可能的模式数量较低。
流程
将以下代码片段添加到
ClusterLogForwarder
CR YAML 文件中。outputDefaults: elasticsearch: structuredTypeKey: <log record field> structuredTypeName: <name> pipelines: - inputRefs: - application outputRefs: default parse: json
-
可选:使用
structTypeKey
指定其中一个日志记录字段,如前面的为 Elasticsearch 配置 JSON 日志数据所述。否则,删除此行。 可选:使用
structTypeName
指定<name>
,如前面的为 Elasticsearch 配置 JSON 日志数据所述。否则,删除此行。重要要解析 JSON 日志,您必须设置
structuredTypeKey
或structuredTypeName
,或者同时设置structuredTypeKey
和structuredTypeName
。-
对于
inputRefs
,指定要使用该管道转发哪些日志类型,如application
、infrastructure
或audit
。 -
将
parse: json
元素添加到管道。 创建 CR 对象。
$ oc create -f <file-name>.yaml
Red Hat OpenShift Logging Operator 会重新部署 Fluentd Pod。但是,如果没有重新部署,请删除 Fluentd Pod 以强制重新部署。
$ oc delete pod --selector logging-infra=collector
其他资源