So, I've created a test cluster on my laptop with no authentication. I bind mount the elasticsearch.yml file to my elasticsearch container. And I'm still getting cors errors.
Note: I've had this mini cluster running for a couple weeks getting data pushed into it from some vagrant virtual machines.
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://learnes1:9200/filebeat-7.5.1-2020.01.14. (Reason: CORS request did not succeed).
My docker-compose.yml file:
version: '3.3'
volumes:
learnes_cluster_esdata1:
driver: local
learnes_cluster_esdata2:
driver: local
learnes_cluster_eslogs1:
driver: local
learnes_cluster_eslogs2:
driver: local
services:
learnes1:
image: docker.elastic.co/elasticsearch/elasticsearch:7.5.1
container_name: learnes1
environment:
- "ES_JAVA_OPTS=-Xms1024m -Xmx1024m"
ulimits:
memlock:
soft: -1
hard: -1
volumes:
- ./config/elasticsearch/learnes1/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
- learnes_cluster_esdata1:/usr/share/elasticsearch/data
- learnes_cluster_eslogs1:/usr/share/elasticsearch/logs
ports:
- 9200:9200
healthcheck:
test: ["CMD", "curl","-s" ,"-f", "http://localhost:9200/_cat/health"]
networks:
- elknet
restart: always
kibana:
container_name: kibana
image: docker.elastic.co/kibana/kibana:7.5.1
environment:
#SERVER_NAME: 127.0.0.1
ELASTICSEARCH_HOSTS: http://learnes1:9200
SERVER_HOST: 0.0.0.0
SERVER_PORT: 5601
ELASTICSEARCH_USERNAME: kibana
ELASTICSEARCH_PASSWORD: password
# SERVER_BASEPATH: /kibana
# SERVER_REWRITEBASEPATH: "true"
ports:
- 5601:5601
networks:
- elknet
restart: always
depends_on:
- learnes1
# logstash:
# container_name: learnes_logstash
# image: docker.elastic.co/logstash/logstash:7.5.1
# volumes:
# - ./config/logstash/logstash.yml:/usr/share/logstash/config/logstash.yml
# - ./config/logstash/logstash.conf:/usr/share/logstash/pipeline/logstash.conf
# - ./config/logstash/elasticsearch-template-es7x.json:/usr/share/logstash/config/elasticsearch-template-es7x.json
# # - /srv/logstash/data/logstash/:/srv/
# networks:
# - elknet
# restart: always
networks:
elknet:
driver: bridge
driver_opts:
com.docker.network.bridge.name: elknet
My elasticsearch.yml file:
cluster:
name: learnes-cluster
# initial_master_nodes:
# - learnes1
node:
name: learnes1
master: true
path:
data: /usr/share/elasticsearch/data
logs: /usr/share/elasticsearch/logs
network:
host: _site_
discovery:
seed_hosts:
- learnes1
type: single-node
http:
cors:
enabled: true
allow-origin: "*"
allow-headers: X-Requested-With,X-Auth-Token,Content-Type,Content-Length,Authorization,Access-Control-Allow-Origin
allow-credentials: true
xpack:
license:
self_generated:
type: basic
ilm:
enabled: true
monitoring:
enabled: false
bootstrap:
memory_lock: true
I ran dejavu via this command:
docker run -it --rm --network elklearn_elknet -p 1358:1358 appbaseio/dejavu
And Mirage via:
docker run -it --network elklearn_elknet --rm -p 3030:3030 appbaseio/mirage
If I enter the mirage container and add curl, I can query http://learnes1:9200/_cat/health just fine, so it's not a connection error between the two containers.
So, as far as I can tell, Elasticsearch either isn't getting configured from my configuration file, or it's ignoring my cors settings.
Any ideas?