【问题标题】:How to create multiple indexes in logstash.conf file with common host如何使用公共主机在 logstash.conf 文件中创建多个索引
【发布时间】:2018-03-14 08:40:53
【问题描述】:

我对 Logstash 很陌生。

在我们的应用程序中,我们正在创建多个索引,从下面的线程我可以理解如何解决这个问题 How to create multiple indexes in logstash.conf file?

但这会导致 conf 文件中出现许多重复的行(对于主机、ssl 等)。所以我想检查是否有更好的方法?

output {  
  stdout {codec => rubydebug}
  if [type] == "trial" {
    elasticsearch {  
        hosts => "localhost:9200"  
        index => "trial_indexer"   
    }
  } else {
    elasticsearch {  
        hosts => "localhost:9200"  
        index => "movie_indexer"   
    }
}

除了上面的配置,我可以有类似下面的东西吗?

output {  
  stdout {codec => rubydebug}
  elasticsearch {  
        hosts => "localhost:9200"
  }
  if [type] == "trial" {
    elasticsearch {  
        index => "trial_indexer"   
    }
  } else {
    elasticsearch {  
        index => "movie_indexer"   
    }
}

【问题讨论】:

    标签: logstash elasticsearch-5


    【解决方案1】:

    您正在寻找的是在 logstash 管道中使用环境变量。您只需定义一次,就可以使用与 HOST、SSL 等相同的冗余值。

    欲了解更多信息Logstash Use Environmental Variables

    例如,

    output {
      elasticsearch{
        hosts => ${ES_HOST}
        index => "%{type}-indexer"
      }
    }
    

    如果有帮助,请告诉我。

    【讨论】:

    • 嗨,Ashif,这不是我想要的。我想看到的是,如果有可能将公共线移出逻辑条件
    • 没听懂...你说的是我指定的那个吗?
    • 我的回答中的那个,如果您有一些分隔日志类型的字段,这是命名索引的一般方法。只需尝试使用 index => "%{[type]}-indexer" 或 index => "%{type}-indexer"。其中之一肯定会起作用。
    • 然后我想,你正在寻找的是在logstash管道中使用环境变量。您只需定义一次,就可以使用与 HOST、SSL 等相同的冗余值。更多信息elastic.co/guide/en/logstash/current/environment-variables.html
    • 感谢 Ashif,这可能有效。你能编辑你对这个链接的答案吗?我会选择它作为正确的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-26
    • 2018-04-22
    • 1970-01-01
    • 2017-03-28
    • 2012-05-11
    相关资源
    最近更新 更多