ElasticSearch 8을 설치하면서 id, password를 설정하면 많은 귀찮음이 따릅니다.
curl -XGET, curl -POST, curl -XDELETE 등 HTTP Request를 전송할 때
1. Auth Header를 추가해주거나
2. url를 조금 변경하여 user:password@localhost:9200 로 요청보내기 처럼요
logstash에서 elasticsearch plugin을 사용할때도 동일하게 적용됩니다.
하나 다른점은 url 앞에 id:password를 넣는 방식은 사용이 불가능합니다.
url을 정상적으로 인식하지 못합니다.
[Converge PipelineAction::Create<main>] agent - Failed to execute action {:action=>LogStash::PipelineAction::Create/pipeline_id:main, :exception=>"Java::JavaLang::IllegalStateException", :message=>"Unable to configure plugins: (ArgumentError) URI is not valid - host is not specified", :backtrace=>["org.logstash.config.ir.CompiledPipeline.<init>(CompiledPipeline.java:137)"
elasticsearch plugin field에 user, password를 넣어줍니다.
# logstash/conf.d/mysql.conf
output {
stdout { codec => rubydebug }
elasticsearch {
hosts => ["localhost:9200"]
user => "<id>"
passowrd => "<password>"
index => "movielens-sql"
}
}
Bingo!