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

Filebeat 7.15.2如何解析Syslog日志至Elasticsearch?

在Filebeat 7.15.2中解析Syslog日志字段

问题场景

已通过Filebeat 7.15.2将Syslog文件导入Elasticsearch,但数据未被解析,message字段为完整日志行,示例:

Feb 14 03:43:41 my_host_name anacron[240673]: Normal exit (1 job run)

由于Filebeat 8.0新增的syslog处理器在7.15.2版本中不存在,需通过以下替代方案实现字段解析。

解决方案

方法1:使用Dissect处理器

Dissect适用于格式固定的日志,配置简单且性能更优。在Filebeat配置文件中添加如下processors配置:

processors:
  - dissect:
      tokenizer: "%{month} %{day} %{time} %{host} %{process}[%{pid}]: %{message}"
      field: "message"
      target_prefix: "syslog"
      keep_original_field: true  # 可选:保留原始message字段
  • 解析后会生成syslog.month、syslog.day、syslog.time、syslog.host、syslog.process、syslog.pid字段,原message字段会被替换为日志内容部分(如示例中的Normal exit (1 job run))。
  • 若需保留原始message字段,添加keep_original_field: true即可。

方法2:使用Grok处理器

Grok支持灵活的正则匹配,适合格式多变的日志。配置示例如下:

processors:
  - grok:
      match:
        message: '%{SYSLOGTIMESTAMP:syslog.timestamp} %{SYSLOGHOST:syslog.host} %{DATA:syslog.process}\[%{NUMBER:syslog.pid:int}\]: %{GREEDYDATA:syslog.message}'
      keep_original_field: true
  • 这里使用了Elastic预定义的Grok模式(SYSLOGTIMESTAMP、SYSLOGHOST等),也可根据实际日志格式自定义正则表达式。
  • keep_original_field: true用于保留原始message字段,避免被覆盖。

验证与生效

  • 配置完成后,重启Filebeat使配置生效。
  • 可通过以下命令验证配置语法:
    filebeat test config -c /path/to/your/filebeat.yml
    
  • 测试解析效果可使用:
    filebeat test output -c /path/to/your/filebeat.yml
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.25 05:15:45