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

如何在Logstash中截断日志消息中的指定前缀内容

移除Logstash中Syslog日志的头部前缀

你可以通过在Logstash的filter阶段添加mutate插件,结合正则替换来移除日志头部的前缀内容。

具体配置修改

在你的Logstash配置里,给filter块添加针对性的正则替换规则:

input {
  syslog {
    port => 9771
    type => "syslog"
  }
}

filter {
  # 仅对包含www.envoyproxy.io的日志做处理
  if "www.envoyproxy.io" in [message] {
    mutate {
      gsub => [
        # 正则匹配开头的syslog头部并替换为空
        "message", "^<\d+>\w+\s+\d+\s+\d+:\d+:\d+\s+\w+\[\d+\]:\s+", ""
      ]
    }
  }
}

output {
  file {
    path => "/var/log/logstash/%{+YYYY-MM-dd}/logstash-%{+HH}.log"
  }
  if "www.envoyproxy.io" in [message] {
    file {
      path => "/var/log/logstash/%{+YYYY-MM-dd}/test-%{+HH}.log"
      codec => line { format => "%{message}" }
    }
  }
}

正则说明

这个正则表达式^<\d+>\w+\s+\d+\s+\d+:\d+:\d+\s+\w+\[\d+\]:\s+会精准匹配日志开头的前缀部分:

  • ^<\d+>:匹配开头的优先级标识(比如<30>)
  • \w+\s+\d+:匹配月份和日期(比如Mar 8)
  • \d+:\d+:\d+:匹配时间(比如11:42:45)
  • \w+\[\d+\]:\s+:匹配容器ID加进程号的部分(比如2867370d06d5[8119]: )

修改后,Logstash会先处理message字段,移除指定前缀后再写入test-*.log文件。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:25:21