簡體   English   中英

如何提取字段的一部分並將其存儲到logstash過濾器中的另一個字段中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM