I had one openstack instance which is red hat linux and its elastic ip is 10.157.166.142.
The following is the information for the linux:
The following is the information for the linux:
[docker@bigdata data]$ cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.5 (Maipo)
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.17.0.1 netmask 255.255.0.0 broadcast 0.0.0.0
inet6 fe80::42:16ff:fe51:fd7f prefixlen 64 scopeid 0x20<link>
ether 02:42:16:51:fd:7f txqueuelen 0 (Ethernet)
RX packets 4991 bytes 10991244 (10.4 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 1932 bytes 135756 (132.5 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
eth0: flags=4419<UP,BROADCAST,RUNNING,PROMISC,MULTICAST> mtu 1450
inet 192.168.0.14 netmask 255.255.255.0 broadcast 192.168.0.255
inet6 fe80::f816:3eff:fe71:7997 prefixlen 64 scopeid 0x20<link>
ether fa:16:3e:71:79:97 txqueuelen 1000 (Ethernet)
RX packets 691428 bytes 1209779192 (1.1 GiB)
RX errors 0 dropped 2 overruns 0 frame 0
TX packets 346155 bytes 127969852 (122.0 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
Stand-alone Installation
when I installed elasticsearch in this server, I could not access to it via http://10.157.166.142:9200 from my local window pc which in the same internal network.
and I tried to find the ports which are listenning, but I could not find 9200. and finally, It seems that we need to change the elasticsearch.yml to make it work to be accessedby other pc within the same internal network
Docker Installation
Also we are using the official docker containers to install elasticsearch, but I find it still could not access to external network which linux host can. and with a lot of time search across bing.com, I find the root cause for my case is that the mtu is not the same for eth0 and docker0, so I changed the docker-compose.yaml to include more things. and then I tried It can connect to the external network as linux host.
the docker-compose.yml is as below
Stand-alone Installation
when I installed elasticsearch in this server, I could not access to it via http://10.157.166.142:9200 from my local window pc which in the same internal network.
and I tried to find the ports which are listenning, but I could not find 9200. and finally, It seems that we need to change the elasticsearch.yml to make it work to be accessedby other pc within the same internal network
network.host: 0.0.0.0
http.port: 9200
and also we need to add following rule to the iptables
http.port: 9200
and also we need to add following rule to the iptables
-A IN_public_allow -p tcp -m tcp --dport 9200-m conntrack --ctstate NEW -j ACCEPT
Docker Installation
Also we are using the official docker containers to install elasticsearch, but I find it still could not access to external network which linux host can. and with a lot of time search across bing.com, I find the root cause for my case is that the mtu is not the same for eth0 and docker0, so I changed the docker-compose.yaml to include more things. and then I tried It can connect to the external network as linux host.
networks:
esnet:
driver_opts:
com.docker.network.driver.mtu: 1450
esnet:
driver_opts:
com.docker.network.driver.mtu: 1450
the docker-compose.yml is as below
version: '2.2'
services:
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.7.0
container_name: elasticsearch
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- SERVER_HOST="0.0.0.0"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- esdata1:/usr/share/elasticsearch/data
ports:
- 9200:9200
- 9300:9300
networks:
- esnet
elasticsearch2:
image: docker.elastic.co/elasticsearch/elasticsearch:6.7.0
container_name: elasticsearch2
environment:
- cluster.name=docker-cluster
- bootstrap.memory_lock=true
- "ES_JAVA_OPTS=-Xms512m -Xmx512m"
- "discovery.zen.ping.unicast.hosts=elasticsearch"
ulimits:
memlock:
soft: -1
hard: -1
nofile:
soft: 65536
hard: 65536
volumes:
- esdata2:/usr/share/elasticsearch/data
networks:
- esnet
kibana:
image: docker.elastic.co/kibana/kibana:6.7.0
ports:
- 5601:5601
networks:
- esnet
volumes:
esdata1:
driver: local
esdata2:
driver: local
networks:
esnet:
driver_opts:
com.docker.network.driver.mtu: 1450