elasticsearch 如何使用logstash解析遵循ECS(弹性公共模式)的纯文本日志?,elasticsearch,logstash,logstash-grok,rsyslog,elastic-common-schema,elasticsearch,Logstash,Logstash Grok,Rsyslog,Elastic Common Schema" /> elasticsearch 如何使用logstash解析遵循ECS(弹性公共模式)的纯文本日志?,elasticsearch,logstash,logstash-grok,rsyslog,elastic-common-schema,elasticsearch,Logstash,Logstash Grok,Rsyslog,Elastic Common Schema" />

elasticsearch 如何使用logstash解析遵循ECS(弹性公共模式)的纯文本日志?

elasticsearch 如何使用logstash解析遵循ECS(弹性公共模式)的纯文本日志?,elasticsearch,logstash,logstash-grok,rsyslog,elastic-common-schema,elasticsearch,Logstash,Logstash Grok,Rsyslog,Elastic Common Schema,我正在使用rsyslog将纯文本日志发送到logstash。但我无法通过grok将数据分配给host.name或host.ip字段。系统可能会发生以下错误: 无法将事件索引到Elasticsearch。{:status=>400,:action=>[“index”],{:id=>nil,:\u index=>“logstash-syslog-2020.09.03”,:routing=>nil,:\u type=>“\u doc”},#logstash::Event:0x3273b8c],:res

我正在使用rsyslog将纯文本日志发送到logstash。但我无法通过grok将数据分配给host.name或host.ip字段。系统可能会发生以下错误:

无法将事件索引到Elasticsearch。{:status=>400,:action=>[“index”],{:id=>nil,:\u index=>“logstash-syslog-2020.09.03”,:routing=>nil,:\u type=>“\u doc”},#logstash::Event:0x3273b8c],:response=>{“index”=>logstash-syslog-2020.09.03”,“\u type=>”,“\u-type=>”,“\u-doc”,“\u-id”=>“i2hru3qq1lgh=”,“>mapu status=”,“>无法动态添加字段[host.ip]的映射。[host]的现有映射必须是object类型,但找到[text]。“}

我尝试使用[主机][名称],但出现错误消息:

Grok regexp引发异常{:exception=>“无法将对象“”上的字段“name”设置为值“”。这可能是由于在[foo]不是映射或字符串时尝试设置类似[foo][bar]=SomeValues的字段”

以下是grok配置:

grok {
  match => { "message" => "<%{INT:log.syslog.priority}>%{SYSLOGTIMESTAMP:timestamp} %{SYSLOGHOST:host.name} %{DATA:process.name}(?:\[%{POSINT:process.pid}\])?: %{GREEDYDATA:syslog_message}" }
}
grok{
match=>{“message”=>“%{SYSLOGTIMESTAMP:timestamp}%{SYSLOGHOST:host.name}%{DATA:process.name}(?:\[%{POSINT:process.pid}\])?:%{greedyddata:syslog\u message}
}

我的目的是根据ECS标准解析日志消息,以便SIEM app能够分析这些日志。

我认为rsyslog已经与
消息
字段一起发送了另一个名为
主机
的字段,它是一个简单的字符串。然后,当您尝试将某个内容分配给
[host][ip]
时,它失败了,因为
[host]
不是对象而是字符串

您可以尝试将原始的
host
字段重命名为其他字段,它应该可以工作:

在您的
grok
过滤器之前添加以下内容:

mutate {
    rename => {
        "[host]" => "[source][address]"
    }
}

太棒了,很高兴它有帮助!