You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GKE结构化日志可识别的JSON键及相关配置咨询

GKE日志代理版本与JSON日志字段映射解决方案

GKE日志代理版本说明

目前GKE默认部署的是Ops Agent,旧版Stackdriver Logging Agent已逐步被替代。Ops Agent完全兼容旧版日志代理支持的特殊JSON字段列表,包括官方最佳实践提到的severity、pid、source_file、source_line等结构化字段。

解决level字段映射到severity的两种方案

方案1:修改Logback配置直接输出severity字段(推荐)

如果可以调整OpenMetadata的Logback配置,直接将日志输出的键名从level改为severity是最直接的方式。使用logstash-logback-encoder的话,可通过自定义字段映射实现:

<encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
  <providers>
    <timestamp/>
    <!-- 替换level为severity -->
    <field>
      <key>severity</key>
      <value>%level</value>
    </field>
    <!-- 输出GKE最佳实践要求的其他字段 -->
    <field>
      <key>pid</key>
      <value>${PID:-}</value>
    </field>
    <field>
      <key>source_file</key>
      <value>%logger{0}</value>
    </field>
    <field>
      <key>source_line</key>
      <value>%line</value>
    </field>
    <message/>
    <!-- 按需添加其他字段(如MDC、栈信息等) -->
  </providers>
</encoder>

配置后,Logback直接输出符合GKE预期的severity字段,无需额外代理配置。

方案2:通过Ops Agent配置字段映射(无需修改应用)

如果无法调整应用日志输出,可通过Ops Agent的日志处理管道将level字段映射为severity。修改Ops Agent的配置文件(通常位于/etc/google-cloud-ops-agent/config.yaml):

logging:
  receivers:
    openmetadata_logs:
      type: files
      include_paths:
        - /path/to/openmetadata/logs/*.json
      record_log_file_path: true
  processors:
    map_severity:
      type: modify_fields
      fields:
        severity:
          move_from: jsonPayload.level
        # 可选:若level值与GKE severity枚举不匹配,添加值映射
        # severity:
        #   map_values:
        #     from: jsonPayload.level
        #     mappings:
        #       - key: INFO
        #         value: INFO
        #       - key: ERROR
        #         value: ERROR
        #       - key: WARN
        #         value: WARNING
  service:
    pipelines:
      default_pipeline:
        receivers: [openmetadata_logs]
        processors: [map_severity]

配置完成后重启Ops Agent:

sudo systemctl restart google-cloud-ops-agent

注意事项

  • GKE对severity字段的有效值为:DEFAULT、DEBUG、INFO、NOTICE、WARNING、ERROR、CRITICAL、ALERT、EMERGENCY,需确保映射后的字段值符合该范围。
  • 容器化部署场景下,可通过ConfigMap挂载Ops Agent配置,或在GKE集群层面配置日志采集规则。

内容的提问来源于stack exchange,提问作者RubenLaguna

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 07:43:09