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

如何在Elastic栈ingest pipeline中按条件添加自定义字段?

Filebeat 新增app_statuscode字段配置方案

你可以通过Filebeat内置的processors处理器实现该需求,具体有两种常用配置方式:

方案1:条件判断+add_fields处理器(推荐,配置简单易维护)

该方案直接用Filebeat原生的条件匹配规则实现,无需额外依赖,配置直接添加到对应filebeat.yml的input块内(仅对当前输入生效),或全局processors块下(对所有输入生效)即可:

processors:
  # 匹配message含404/502的场景,标记为failed
  - add_fields:
      fields:
        app_statuscode: "failed"
      when:
        or:
          - contains:
              message: "404"
          - contains:
              message: "502"
  # 匹配message含200 OK的场景,标记为successful
  - add_fields:
      fields:
        app_statuscode: "successful"
      when:
        contains:
          message: "200 OK"

注意事项:

  • 如果你的日志中存储状态码的字段名是大写的Message,请将配置中的message替换为实际的字段名
  • 若需要开启大小写严格匹配,可在contains下添加参数case_sensitive: true

方案2:script脚本处理器(适合后续规则复杂扩展场景)

如果后续需要新增更多状态码的映射规则,可以用内置的javascript脚本处理器实现,配置示例如下:

processors:
  - script:
      lang: javascript
      id: calculate_app_statuscode
      source: >
        function process(event) {
          // 读取日志的message字段内容
          var msg = event.Get("message") || "";
          if (msg.includes("404") || msg.includes("502")) {
            event.Put("app_statuscode", "failed");
          } else if (msg.includes("200 OK")) {
            event.Put("app_statuscode", "successful");
          }
        }

配置生效验证

修改完配置后,先执行以下命令校验配置语法合法性:
filebeat test config
返回Config OK后重启Filebeat进程即可生效。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:24:04