首页 > 解决方案 > 具有多个基本身份验证用户的 logstash http 输入

问题描述

我想设置一个具有多个用户/密码的logstash管道,并使用不同的用户名将输出定向到不同的elasticsearch索引,其中每个用户名都具有对特定索引的读/写访问权限,因此也可以在Kibana上使用相同的凭据。就像是 -

input {
  http {
    host => "0.0.0.0"
    port => 5000
    user => "user1","user2"
    password => "password1","password2"
  }
}

output {
    if[user] == "user1" {
        elasticsearch {
            id => "elastic1"
            hosts => ["localhost:9200"]
            index => "index1"
            user => "user1"
            password => "password1"
        }
    }
    else if[user] == "user2" {
        elasticsearch {
            id => "elastic2"
            hosts => ["localhost:9200"]
            index => "index2"
            user => "user2"
            password => "password2"
        }
    }
}

这可能吗?我错过了什么?

标签: elasticsearchlogstash

解决方案


Logstash 支持基本身份验证,但每个 HTTP 插件实例只接受一个用户名密码。它不支持传递用户名/密码列表:

http {

   port => 3332
   user => myuser
   password => "$tr0ngP4ssWD!"
   ssl => on
   keystore => "/tmp/mykeystore.jks"
   keystore_password => "keystore_pass"
}

阅读 HTTP 插件的官方文档: https ://www.elastic.co/guide/en/logstash/current/plugins-inputs-http.html#plugins-inputs-http-user


推荐阅读