Hello guys,
I have some difficulties to use Elastic Search with NGINX in a VM.
I used elastic search 2.3 in a VM and i use NGINX to filter and redirect the request.
VM port forwarding
8887 -> 8887
8889 -> 8889
Then I use NGINX to redirect from 888X to 9X000
8887 => 8887 => 9300
8889 => 8889 => 9200
I tried to create a java program that will query, i use the example from the documentation (https://www.elastic.co/guide/en/elasticsearch/client/java-api/2.3/java-docs-get.html)
Settings settings = Settings.settingsBuilder()
//.put("name","Jigsaw") //Jigsaw
// .put("node.name","Jigsaw") //Jigsaw
.put("cluster.name","demo-cluster") //demo-cluster cluster.name
.put("client.transport.sniff", false)
//.put("client.transport.ping_timeout", 20, TimeUnit.SECONDS)
.put("repositories.enabled", false)
//.put("client.transport.ping_timeout", "5s")
//.put("network.bind_host", "0")
//.put("host","localhost")
.build();
int portInt = Integer.parseInt(port) ;
System.out.println("Port utilisé : " + portInt);
client = TransportClient.builder()
.settings(settings).build()
.addTransportAddress(new InetSocketTransportAddress( InetAddress.getByName("localhost") , portInt ) ); // 9300 InetAddress.getLocalHost()
/// Refer: https://discuss.elastic.co/t/elasticsearch-in-java-transportclient-nonodeavailableexception-none-of-the-configured-nodesare-available/34452
GetResponse response = client.prepareGet("csv", "voiture", "AVzRDfZZadPcOu3hasyv").get();
Map<String,GetField> listeField = response.getFields();
for (Map.Entry<String,GetField> entry : listeField.entrySet()) {
System.out.println( entry.getKey());
}
When I run my program from inside the VM , it works fine.
But when I run it from my computer I always have the same error :
Jun 27, 2017 4:41:46 PM org.elasticsearch.plugins.PluginsService
INFO: [Bushmaster] modules [], plugins [], sites []
Jun 27, 2017 4:41:48 PM org.elasticsearch.transport.netty.NettyTransport exceptionCaught
WARNING: [Bushmaster] exception caught on transport layer [[id: 0x1dee0bb2, /127.0.0.1:65320 => localhost/127.0.0.1:8887]], closing connection
java.io.StreamCorruptedException: invalid internal transport message format, got (48,54,54,50)
at org.elasticsearch.transport.netty.SizeHeaderFrameDecoder.decode(SizeHeaderFrameDecoder.java:64)
Jun 27, 2017 4:41:48 PM org.elasticsearch.client.transport.TransportClientNodesService$SimpleNodeSampler doSample
INFO: [Bushmaster] failed to get node info for {#transport#-1}{127.0.0.1}{localhost/127.0.0.1:8887}, disconnecting...
NodeDisconnectedException[[][localhost/127.0.0.1:8887][cluster:monitor/nodes/liveness] disconnected]
NoNodeAvailableException[None of the configured nodes are available: [{#transport#-1}{127.0.0.1}{localhost/127.0.0.1:8887}]]
at org.elasticsearch.client.transport.TransportClientNodesService.ensureNodesAreAvailable(TransportClientNodesService.java:290)
at org.elasticsearch.client.transport.TransportClientNodesService.execute(TransportClientNodesService.java:207)
Abdou