【问题标题】:logstash configuration: set filters for different purposeslogstash 配置:为不同目的设置过滤器
【发布时间】:2018-10-20 19:50:46
【问题描述】:

是否可以为不同的目的配置相同的 logstash.conf? 例如:

  • 应用程序日志
  • 错误堆栈跟踪

我有一个 Spring Boot 应用程序,我使用 logstash-logback-encoder 插件

【问题讨论】:

标签: logstash logstash-configuration


【解决方案1】:

是的,您可以,但每个索引都需要某种标识,例如类型或标签。我更喜欢使用标签,因为当您的数据具有名为“类型”的字段时,您可能会遇到问题。看看下面两个索引的示例配置文件:

input {
  file {
    path => "/log/app_log.log"
    tags => ["app_log"]
  }

  file {
    path => "/log/stacktrace.log"
    type => ["stacktrace"]
  }
}

filter {
  if "app_log" in [tags] {
  #Some fitlering for app_log  
  }
  if "stacktrace" in [tags] {
  #Some fitlering for stacktrace
  }

}

output {
   if "app_log" in [tags] {
      elasticsearch {
         index => "app_log-%{+YYYY.MM.dd}"
         hosts => ["localhost:9200"]
      }
   }
   if "stacktrace" in [tags] {
       elasticsearch {
         index => "stacktrace-%{+YYYY.MM.dd}"
         hosts => ["localhost:9200"]
       }
   }
}

您还可以根据需要添加任意数量的 jdbc 输入。您不必担心不同输入之间的中断时间,因为 logstash 会并行运行每个输入。

【讨论】:

  • tcp输入也可以吗?我考虑过设置两个不同的端口并在 logback.xml 中使用两个 logstash appender
  • @AlessioFrabotta 我从未尝试过使用 tcp 输入,但我认为它应该可以工作。您总是可以创建 2 个管道,但只需几个输入就不会太复杂。
猜你喜欢
  • 2015-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多