11.2. 将同一 pod 中的容器的 JSON 日志转发到单独的索引
您可以将来自同一 pod 的不同容器的结构化日志转发到不同的索引。要使用此功能,您必须使用多容器支持配置管道并注解 pod。日志被写入带有 app-
前缀的索引。建议将 Elasticsearch 配置为使用别名来容纳此目的。
重要
日志的 JSON 格式化因应用程序而异。因为创建太多索引会影响性能,所以请限制使用此功能,仅对与 JSON 格式不兼容的日志创建索引。使用查询将日志与不同命名空间分离,或使用兼容 JSON 格式的应用程序进行隔离。
先决条件
- Logging subsystem for Red Hat OpenShift: 5.5
流程
创建或编辑定义
ClusterLogForwarder
CR 对象的 YAML 文件:apiVersion: "logging.openshift.io/v1" kind: ClusterLogForwarder metadata: name: instance namespace: openshift-logging spec: outputDefaults: elasticsearch: enableStructuredContainerLogs: true 1 pipelines: - inputRefs: - application name: application-logs outputRefs: - default parse: json
- 1
- 启用多容器输出。
创建或编辑定义
Pod
CR 对象的 YAML 文件:apiVersion: v1 kind: Pod metadata: annotations: containerType.logging.openshift.io/heavy: heavy 1 containerType.logging.openshift.io/low: low spec: containers: - name: heavy 2 image: heavyimage - name: low image: lowimage
警告
此配置可能会显著增加集群中的分片数量。
其它资源