Logstash - 如何在一条消息中使用多个 geoip 过滤器
Logstash - How to use multiple geoip filter in one message
我想包括两个要应用于一个 logstash 消息的 geoip 过滤器 - 比方说:一个带有 dst 字段(防火墙位置)和 src 字段(访问源)的防火墙消息。
日志条目可能如下所示:
<190>2015 Mar 23 02:21:30 fw1 <50000> Dropped Inbound packet (Stateless ICMP) Src:87.245.196.38 Dst:154.54.27.169 Type:11 Code:0 IPP:1 Rule:-1 Interface:WAN (Internet)
过滤器在logstash.conf中定义如下:
if [message] =~ "packet" {
grok {
match => [
"message", "<%{POSINT:syslog_pri}>%{YEAR} %{SYSLOGTIMESTAMP:syslog_timestamp} %{DATA:device} <%{POSINT:status}> %{WORD:activity} %{DATA:inout} \(%{DATA:msg}\) Src:%{IPV4:src} SPort:%{INT:sport} Dst:%{IPV4:dst} DPort:%{INT:dport} IPP:%{INT:ipp} Rule:%{INT:rule} Interface:%{WORD:iface}",
"message", "<%{POSINT:syslog_pri}>%{YEAR} %{SYSLOGTIMESTAMP:syslog_timestamp} %{DATA:device} <%{POSINT:status}> %{WORD:activity} %{DATA:inout} \(%{DATA:msg}\) Src:%{IPV4:src} Dst:%{IPV4:dst} Type:%{POSINT:type} Code:%{INT:code} IPP:%{INT:ipp} Rule:%{INT:rule} Interface:%{WORD:iface}"
]
}
geoip { source => "src" }
geoip { source => "dst" }
}
消息解析良好(无 _grokparsefailure),但仅附加了一个 geoip 信息(最后一个 "dst")。
将 geoip filter's target option 设置为要为每个源字段存储 GeoIP 信息的字段。
filter {
geoip {
source => "src"
target => "src_geoip"
}
geoip {
source => "dst"
target => "dst_geoip"
}
}
我想包括两个要应用于一个 logstash 消息的 geoip 过滤器 - 比方说:一个带有 dst 字段(防火墙位置)和 src 字段(访问源)的防火墙消息。
日志条目可能如下所示:
<190>2015 Mar 23 02:21:30 fw1 <50000> Dropped Inbound packet (Stateless ICMP) Src:87.245.196.38 Dst:154.54.27.169 Type:11 Code:0 IPP:1 Rule:-1 Interface:WAN (Internet)
过滤器在logstash.conf中定义如下:
if [message] =~ "packet" {
grok {
match => [
"message", "<%{POSINT:syslog_pri}>%{YEAR} %{SYSLOGTIMESTAMP:syslog_timestamp} %{DATA:device} <%{POSINT:status}> %{WORD:activity} %{DATA:inout} \(%{DATA:msg}\) Src:%{IPV4:src} SPort:%{INT:sport} Dst:%{IPV4:dst} DPort:%{INT:dport} IPP:%{INT:ipp} Rule:%{INT:rule} Interface:%{WORD:iface}",
"message", "<%{POSINT:syslog_pri}>%{YEAR} %{SYSLOGTIMESTAMP:syslog_timestamp} %{DATA:device} <%{POSINT:status}> %{WORD:activity} %{DATA:inout} \(%{DATA:msg}\) Src:%{IPV4:src} Dst:%{IPV4:dst} Type:%{POSINT:type} Code:%{INT:code} IPP:%{INT:ipp} Rule:%{INT:rule} Interface:%{WORD:iface}"
]
}
geoip { source => "src" }
geoip { source => "dst" }
}
消息解析良好(无 _grokparsefailure),但仅附加了一个 geoip 信息(最后一个 "dst")。
将 geoip filter's target option 设置为要为每个源字段存储 GeoIP 信息的字段。
filter {
geoip {
source => "src"
target => "src_geoip"
}
geoip {
source => "dst"
target => "dst_geoip"
}
}