如何避免特定文件夹数据在Logstash筛选器中转义

时间:2018-09-11 10:47:08

标签: elastic-stack logstash-configuration

在处理logstash过滤器时是否有一种方法可以转义特定的文件夹/目录,说我有一个正在收集日志的情况 来自两个不同的实体,一个是Linux主机,另一个是网络日志到同一位置。但是,对于Linux主机,主机名将单独使用,因此我使用的是通配符  以便将它们全部处理(/scratch/rsyslog/*/messages.log),但问题是它现在有一个名为“ Sep”的文件夹,用于存放网络日志,并且也随其一起获取。

尽管我为这两个都有两个不同的过滤器,但对于“ syslog” 来说,它们都是通配符,因此,如何避免该“ Sep” 文件夹syslog过滤器处理期间无法处理数据。

下面是我的logstash过滤器。

#  cat /etc/logstash/conf.d/logstash-syslog.conf | grep -v "#"
input {
  file {
    path => [ "/scratch/rsyslog/*/messages.log" ]
    type => "syslog"
  }
  file {
    path => [ "/scratch/rsyslog/Sep/messages.log" ]
    type => "apic_logs"
  }
}

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}" ]
      remove_field => ["@version", "host", "message", "_type", "_index", "_score", "path"]
    }
    syslog_pri { }
    date {
      match => [ "syslog_timestamp", "MMM  d HH:mm:ss", "MMM dd HH:mm:ss" ]
 }
}
  if [type] == "apic_logs" {
    grok {
      match => { "message" => "%{CISCOTIMESTAMP:syslog_timestamp} %{CISCOTIMESTAMP} %{SYSLOGHOST:syslog_hostname} (?<prog>[\w._/%-]+) %{SYSLOG5424SD:fault_code}%{SYSLOG5424SD:fault_state}%{SYSLOG5424SD:crit_info}%{SYSLOG5424SD:log_severity}%{SYSLOG5424SD:log_info} %{GREEDYDATA:syslog_message}" }
      add_field => [ "received_at", "%{@timestamp}" ]
      remove_field => ["@version", "host", "message", "_type", "_index", "_score", "path"]
   }
 }
}
output {
        if [type] == "syslog" {
        elasticsearch {
                hosts => "my-elk:9200"
                manage_template => false
                index => "syslog-%{+YYYY.MM.dd}"
                document_type => "messages"
  }
 }
}

output {
        if [type] == "apic_logs" {
        elasticsearch {
                hosts => "my-elk:9200"
                manage_template => false
                index => "apic_logs-%{+YYYY.MM.dd}"
                document_type => "messages"
  }
 }
}

logstash 6.2.4

0 个答案:

没有答案