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

如何在Datadog中排除Kong状态检查日志并保留其他Kong日志

解决Datadog排除Kong状态检查日志的配置问题

问题根源

你遇到的所有Kong日志被排除的问题,主要来自两个配置错误:

  1. 正则表达式过于严格:你使用的^GET /status http/2\.0$锚定了整个日志行,但Kong的状态检查日志通常包含时间戳、客户端IP等额外内容(例如[2024-05-20T10:00:00+00:00] 10.0.0.1 GET /status HTTP/2.0 200),不会完全匹配这个正则,反而可能因为转义或解析问题导致规则错误匹配所有日志。
  2. YAML转义格式错误:使用"转义双引号会让JSON规则的解析出现异常,导致Datadog Agent无法正确识别规则逻辑。

正确配置方案

调整日志处理规则

修改DD_LOGS_CONFIG_PROCESSING_RULES的配置,做以下优化:

  • 去掉正则首尾的^和$锚点,只匹配日志行中包含的目标请求模式
  • 修正大小写,匹配日志中的HTTP/2.0(而非小写http)
  • 使用单引号包裹整个JSON规则字符串,避免YAML转义问题

完整的datadog-values.yaml配置

datadog:
  apiKeyExistingSecret: datadog-secret
  apm:
    instrumentation:
      enabled: true
  site: datadoghq.eu 
  logs:
    enabled: true
    containerCollectAll: true
  env: 
    - name: DD_CONTAINER_EXCLUDE_LOGS
      value: image:.*
    - name: DD_CONTAINER_INCLUDE_LOGS
      value: image:.*kong.* image:.*alore.*
    - name: DD_LOGS_CONFIG_PROCESSING_RULES
      value: '[{ "type": "exclude_at_match", "name": "exclude_healthcheck_logs", "pattern": "GET /status HTTP/2\\.0" }]'

关键说明

  • 正则中的\\.是YAML中的转义写法,确保.被当作普通字符匹配(避免匹配任意字符)
  • 如果Kong的状态检查日志使用HTTP/1.1或其他版本,可以调整正则为GET /status HTTP/\\d+\\.\\d+,覆盖所有HTTP版本的状态检查请求
  • 若你的Kong日志已经被Datadog解析为结构化日志(包含http.request.method、http.request.url字段),可以改用字段匹配规则,精度更高:
    - name: DD_LOGS_CONFIG_PROCESSING_RULES
      value: '[{ "type": "exclude", "name": "exclude_healthcheck_logs", "filter": { "query": "http.request.method:GET AND http.request.url:/status" } }]'
    

验证方法

  1. 应用配置后,重启Datadog Agent:
    helm upgrade datadog datadog/datadog -f datadog-values.yaml
    
  2. 触发Kong的状态检查请求,查看Datadog日志页面,确认只有状态检查日志被排除,其他Kong日志正常收集

内容的提问来源于stack exchange,提问作者Zhakyp Zhoomart uulu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.29 20:00:05