[英]how to parse and extract specific fields and store it into another field in logstash filter?
[英]how to extract a portion of a field and store it into another field in logstash filter?
我有系統日志文件。 我正在使用 logstash syslog 插件過濾器來處理這些日志。 我在syslog_message
字段中收到消息,如下所示:
syslog_message:[cdp/interface.ERR] - {- -} Error writing CDP frame on system. Link is down
但我想要一個新字段,它應該只包含 .ERR 之前的部分,即“cdp/interface”。 這部分因人而異,不知道會出現多少種。 所以我想要一個新字段並希望將該部分存儲到該字段中,以便我可以在 kibana 中繪制這些術語的數量。
當前的logstash配置:
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
date {
target => "syslog_timestamp"
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
按照@Val 的建議向配置文件添加新的 grok 后
grok {
match => { "syslog_message" => "\[%{PROG:syslog_type}\.%{LOGLEVEL:syslog_level}\] %{GREEDYDATA:syslog_message}" }
}
對於某些輸入,會發生 grokparsefailure。
它失敗的一些行是:
syslog_message: [hald.INFO]: Support query handler called
syslog_message:[mgmtd.INFO]: Finished database commit
任何幫助將不勝感激。 謝謝
您可以在主grok
過濾器中再添加一個模式,也可以僅為syslog_message
字段添加另一個grok
過濾器
filter {
if [type] == "syslog" {
grok {
match => { "message" => "%{SYSLOGTIMESTAMP:syslog_timestamp} %{SYSLOGHOST:syslog_hostname} %{DATA:syslog_program}(?:\[%{POSINT:syslog_pid}\])?: %{GREEDYDATA:syslog_message}" }
add_field => [ "received_at", "%{@timestamp}" ]
add_field => [ "received_from", "%{host}" ]
}
# ====> add this <====
grok {
match => { "syslog_message" => "\[%{PROG:syslog_type}\.%{LOGLEVEL:syslog_level}\]:? %{GREEDYDATA:syslog_message}" }
}
date {
target => "syslog_timestamp"
match => [ "syslog_timestamp", "MMM d HH:mm:ss", "MMM dd HH:mm:ss" ]
}
因此,您將獲得兩個額外的字段,即:
syslog_type: cdp/interface
syslog_level: ERR
和syslog_message
將只包含此- {- -} Error writing CDP frame on system. Link is down
- {- -} Error writing CDP frame on system. Link is down
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.