You need to enable JavaScript to run this app. K8s下Nginx日志host值覆盖Filebeat至Logstash的host元数据
优惠活动
大模型
产品
解决方案
定价
更多

K8s下Nginx日志host值覆盖Filebeat至Logstash的host元数据

K8s Nginx 日志采集链路字段冲突异常

现有链路及各组件配置

  • Nginx 配置(nginx.conf)
    • http块中定义escape=json的日志格式,包含字段:request_id、method、status、forwarded_for、host、url、referer、remote_ip、server_ip、user_agent
    • server块配置访问日志输出路径为/var/log/nginx/access.json
  • Filebeat 配置(filebeat.yml)
    • 全局配置shutdown_timeout: 5s
    • 日志输入:采集路径为/var/log/nginx/access.json*,排除.gz后缀的压缩文件,为采集的日志打上access标签
    • 日志处理:配置decode_json_fields处理器解析message字段的JSON内容,设置overwrite_keys: true,预期该配置可覆盖组件自带元数据
    • 输出配置:对接集群内Logstash服务的5044端口
  • Logstash 配置(logstash.conf)
    • 输入配置:通过beats输入端口5044接收Filebeat传输的数据
    • 日志处理:对携带access标签的日志,先将tags值写入@metadata,再移除agent、event、service、log、input、container、kubernetes等冗余元数据字段
    • 输出配置:对接Google Cloud Storage存储桶存储Nginx访问日志

异常运行现象

  • 链路初期运行完全符合预期:最终输出日志中的host字段为Nginx记录的业务域名值
  • 近期出现异常:正常Nginx日志输出完成后,连续产生多条结构为{"host":{"name":"filebeat-adio3"}}的无效数据

核心待解决问题

  1. 上述异常host数据的产生原因,是Filebeat配置问题还是Logstash配置问题?
  2. 如何配置合理的过滤规则,避免业务日志的host字段与Filebeat、Logstash的自带元数据字段冲突,确保最终输出的host字段为Nginx记录的业务值,而非Filebeat所在节点的主机名?

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.07 22:15:04