![](/img/trans.png)
[英]Logstash cannot connect to the elastic search cluster with Xpack enabled
[英]Elastic search + LogStash cannot connect
我正在尝试使用 docker 容器创建弹性搜索安装。 我只使用 elastic.io 提供商的图像。
启动我的 logstash 实例时遇到错误。
这是我的配置:
docker-compose.yml
version: '2'
services:
elasticsearch1:
image: docker.elastic.co/elasticsearch/elasticsearch:5.2.2
container_name: elasticsearch1
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
mem_limit: 1g
cap_add:
- IPC_LOCK
volumes:
- esdata1:/usr/share/elasticsearch/data
networks:
- esnet
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:5.2.2
container_name: elasticsearch2
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=elasticsearch1"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
mem_limit: 1g
cap_add:
- IPC_LOCK
volumes:
- esdata2:/usr/share/elasticsearch/data
networks:
- esnet
logstash:
image: docker.elastic.co/logstash/logstash:5.2.2
container_name: logstash
mem_limit: 1g
links:
- elasticsearch1:elasticsearch
volumes:
- ./logstash.yml:/usr/share/logstash/config/logstash.yml
volumes:
esdata1:
driver: local
esdata2:
driver: local
networks:
esnet:
driver: bridge
现在是我的 logstash.yml
node:
name: 'default logstash'
http:
host: elasticsearch
pipeline:
workers: 1
batch:
size: 12
delay: 5
log:
level: 'debug'
我不知道为什么,但 logstash 告诉我他无法连接到 ElasticSearch 实例并显示以下错误消息:
... [DEBUG][logstash.runner] *http.host: "elasticsearch" (default: "127.0.0.1") ... [DEBUG][logstash.outputs.elasticsearch] config LogStash::Ouputs::ElasticSearch/@hosts = [http://localhost:9200] [INFO][logstash.ouputs.elasticsearch] Elasticsearch pool URLs updated {:changes=>:removed>[], :added=>[logstash_system:xxxxx@localhost:9200/_xpack/monitoring/?system_id=logstash&system_api_version=2&interval=1s]}}
有人能告诉我,如果他真的得到了我的设置,为什么 logstash 使用了错误的主机事件?
我通过用 logstash.conf 文件替换我的 logstash.yml 找到了一个解决方案:
input { stdin { } beats { port => 5044 } } output { elasticsearch { hosts => [ 'elasticsearch' ] user => 'elastic' password => 'changeme' } }
最后,我更改我的 docker-compose 文件以链接这个 conf 文件:
volumes: - ./logstash-pipeline/:/usr/share/logstash/pipeline/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.