Plugin uses port 9200 to connect https host while 443 is expected
kaisecheng opened this issue · 1 comments
kaisecheng commented
Logstash version 8.3.3
When the hosts
point to https url, it is expected to be in port 443 by default, however, the plugin appends 9200.
Steps to reproduce
input {
heartbeat {
message => '{"say": "hello"}'
interval => 1
}
}
filter {
json {
source => "message"
}
}
output {
elasticsearch {
hosts => ["https://YOUR_HOST.europe-west2.gcp.elastic-cloud.com"]
index => "test_index"
user => "YOUR_USERNAME"
password => "YOUR_PASSWORD"
}
}
Log
[INFO ][logstash.outputs.elasticsearch][main] Elasticsearch pool URLs updated {:changes=>{:removed=>[], :added=>[https://elastic:xxxxxx@YOUR_HOST.europe-west2.gcp.elastic-cloud.com:9200/]}}
Workaround
The workaround is to add :443 to the hosts
hosts => ["https://YOUR_HOST.europe-west2.gcp.elastic-cloud.com:443"]
yaauie commented
IIRC, this is by design (although the design may need to be re-thought). When you start Elasticsearch on your own, it binds its HTTP API to 9200 unless you explicitly tell it to bind to a different port (whether or not you have TLS enabled, which is also on-by-default in ES 8.x). Out out-of-the-box experience is to match Elasticsearch's default behaviour.