Log4j2 socket appender inside a docker container throw connection refused - spring-boot
I have a springboot app running on docker container. In my app there is a log4j.xml file with socket appender.
<Socket name="Socket" host="172.17.0.1" port="5100">
<JsonLayout compact="true" eventEol="true" />
</Socket>
In my host server (Ubuntu server) its listing port 5100 by logstash. Out put of "netstat -tulpn" command in host is as below.
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:8280 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:5100 0.0.0.0:* LISTEN -
tcp 0 0 127.0.0.1:5001 0.0.0.0:* LISTEN -
But when the springboot server up its getting connection refused error.
2021-07-30 05:20:47,646 main ERROR TcpSocketManager (TCP:172.17.0.1:5100) caught exception and will continue: java.net.ConnectException: Connection refused (Connection refused)
at java.base/java.net.PlainSocketImpl.socketConnect(Native Method)
I tried with "host.docker.internal" also and its not working. Can anyone let me know what is the problem with this please?
As you can see from your netstat output, Logstash is listening on 127.0.0.1:5100 only. That means it cannot be accessed from within Docker. You have to make it listen on 172.17.0.1:5100 or 0.0.0.0:5100.
Related
(FreeSWITCH) [ERR] mod_event_socket.c:2992 Socket Error! Could not listen on 127.0.0.1:8021
I'm getting following error in freeswitch.log file while connecting microphone in BigBlueButton 2.4.9 meeting. [ERR] mod_event_socket.c:2992 Socket Error! Could not listen on 127.0.0.1:8021 I'm not able to connect audio in the meeting. When I attempt to connect with a microphone it goes to Audio Test then says Establishing audio connection... it never passes this point. I tried letting it wait, and it just doesn't connect. I have set the following in event_socket.conf.xml. <param name="listen-ip" value="127.0.0.1"/> Below is the configurations for FreeSWITCH in default.yml file: freeswitch: ip: <internal_IPv4> sip_ip: <extarnal_IPv4> port: 5066 esl_ip: 127.0.0.1 esl_port: 8021 handleExternalConnections: false The output of netstat -ant | grep 5060 is as per below: tcp 0 0 <internal_IPv4>:5060 0.0.0.0:* LISTEN The output of netstat -vatupn | grep 8021 is as per below: tcp 0 0 127.0.0.1:8021 0.0.0.0:* LISTEN -
Issue creating WebSocket Connection via Mosquitto broker
Mosquitto broker version 1.5.9 WebSocket support enabled and built Port 9001 is opened on the broker OS Amazon Linux 2 AMI (Fedora) mosquitto_conf port 1883 listener 9001 protocol websockets ========================================================== 1592388049: mosquitto -c /etc/mosquitto/mosquitto.conf 1592388049: mosquitto version 1.5.9 starting 1592388049: Config loaded from /etc/mosquitto/mosquitto.conf. 1592388049: |-- *** auth-plug: startup 1592388049: |-- ** Configured order: mysql 1592388049: |-- }}}} MYSQL 1592388049: |-- SSL is disabled 1592388049: Opening websockets listen socket on port 9001. 1592388049: Opening ipv4 listen socket on port 1883. 1592388049: Opening ipv6 listen socket on port 1883. However when I try to connect to the broker via websocket using a simple Paho Javascript program, I get the following error: mqttws31.js:977 WebSocket connection to 'ws://x.x.x.x:9001/mqtt' failed: Error in connection establishment: net::ERR_CONNECTION_REFUSED Connection failed: AMQJSC0001E Connect timed out.Retrying
Elasticsearch: How to know HTTP port number used when default 9200 is already in use
In the Elasticsearch documentation is specified the following regarding to the http.port configuration: http.port Port to bind to for incoming HTTP requests. Accepts a single value or a range. If a range is specified, the node will bind to the first available port in the range. Defaults to 9200-9300. Let's say that Elasticsearch automatically selects the port 9202 because the 9200 is already in use. How does a Java client application know which port was selected and has to be used to create a RestHighLevelClient object? Is there a way to query a another service that could provide the port number information? Thanks in advance. Update After the first answer I've tried to reproduce the steps in a Windows machine (production environment) by executing the following: > tasklist | findstr "elasticsearch" elasticsearch-service-x64 2232 Services 0 537,764 K > netstat -aon | find /i "2232" TCP 0.0.0.0:9200 0.0.0.0:0 LISTENING 2232 TCP 0.0.0.0:9300 0.0.0.0:0 LISTENING 2232 TCP 127.0.0.1:9200 0.0.0.0:0 LISTENING 2232 TCP 127.0.0.1:9300 0.0.0.0:0 LISTENING 2232 TCP 127.0.0.1:49201 127.0.0.1:49202 ESTABLISHED 2232 TCP 127.0.0.1:49202 127.0.0.1:49201 ESTABLISHED 2232 TCP 127.0.0.1:49203 127.0.0.1:49204 ESTABLISHED 2232 TCP 127.0.0.1:49204 127.0.0.1:49203 ESTABLISHED 2232 TCP 127.0.0.1:49205 127.0.0.1:49206 ESTABLISHED 2232 TCP 127.0.0.1:49206 127.0.0.1:49205 ESTABLISHED 2232 ... TCP 127.0.0.1:49275 127.0.0.1:49276 ESTABLISHED 2232 TCP 127.0.0.1:49276 127.0.0.1:49275 ESTABLISHED 2232 TCP [::1]:9200 [::]:0 LISTENING 2232 TCP [::1]:9300 [::]:0 LISTENING 2232 The result shows several lines where the 9200 port (http.port) is used: TCP 0.0.0.0:9200 0.0.0.0:0 LISTENING 2232 TCP 127.0.0.1:9200 0.0.0.0:0 LISTENING 2232 TCP [::1]:9200 [::]:0 LISTENING 2232 If I had to parse that result to get the port number, which of those IP addresses should I look for? or simply does not matter?
RestHighLevelClient is thread-safe and it's instantiated by the application at startup time or when the first request is executed. How is it being done "under the hood" maybe you can check in RestClientBuilder.java here. Not sure about the question, but if you are not sure which port ES is using you can check it [root#myserver ~]# service elasticsearch status elasticsearch (pid 5384) is running... ## netstat on pid [root#myserver~]# netstat -plunt | grep 5384 tcp 0 0 ::ffff:10.100.14.146:9300 :::* LISTEN 5384/java tcp 0 0 ::ffff:10.100.14.19:9200 :::* LISTEN 5384/java tcp 0 0 ::ffff:127.0.0.1:9200 :::* LISTEN 5384/java
Port settings with Windows network related to receiving signal
I'm trying to run the same program on 2 laptops. One successfully ran the program but the other one could not. The following are the networks situation when I called the program. From the below messages, I guess that it may be because the system is using the port. The failed one cannot send anything from ports 2501 & 9301 while the successful one could do so (labelled with () & (*) below). Does anyone know how to resolve this problem? ["netstat -na" on successful running] Active Connections Proto Local Address Foreign Address State TCP 0.0.0.0:2501 0.0.0.0:0 LISTENING TCP 0.0.0.0:9301 0.0.0.0:0 LISTENING TCP 212.14.156.113:2501 14.0.202.5:13362 ESTABLISHED ----(*) TCP 212.14.156.113:9301 14.0.202.5:2725 ESTABLISHED ----(**) UDP 127.0.0.1:1900 *:* UDP 212.14.156.113:1900 *:* ["netstat -na" on failed running] Active Connections Proto Local Address Foreign Address State TCP 0.0.0.0:2521 0.0.0.0:0 LISTENING TCP 0.0.0.0:2523 0.0.0.0:0 LISTENING TCP 0.0.0.0:2525 0.0.0.0:0 LISTENING TCP 0.0.0.0:2527 0.0.0.0:0 LISTENING TCP 0.0.0.0:9301 0.0.0.0:0 LISTENING TCP 212.14.156.113:2512 173.252.122.23:443 ESTABLISHED UDP 127.0.0.1:1900 *:* UDP 127.0.0.1:52555 *:* UDP 212.14.156.113:1900 *:* UDP 212.14.156.113:52554 *:* UDP [::1]:1900 *:* ["netstat -a -b" on failed running] Active Connections Proto Local Address Foreign Address State TCP 0.0.0.0:2521 T61:0 LISTENING [Program.exe] TCP 0.0.0.0:2523 T61:0 LISTENING [Program.exe] TCP 0.0.0.0:2525 T61:0 LISTENING [Program.exe] TCP 0.0.0.0:2527 T61:0 LISTENING [Program.exe] TCP 0.0.0.0:9301 T61:0 LISTENING [Program.exe] UDP 127.0.0.1:52555 *:* SSDPSRV [svchost.exe] UDP 212.14.156.113:52554 *:* SSDPSRV [svchost.exe] UDP [::1]:1900 *:* SSDPSRV [svchost.exe]
JBoss - ExportException: Port already in use: 1098
I'm getting the following error when I try to start JBoss 10:10:43,298 INFO [WebService] Using RMI server codebase: http://127.0.0.1:8083/ 10:10:43,938 ERROR [AbstractKernelController] Error installing to Start: name=jboss:service=Naming state=Create mode=Manual requiredState=Installed java.rmi.server.ExportException: Port already in use: 1098; nested exception is: java.net.BindException: Address already in use: JVM_Bind at sun.rmi.transport.tcp.TCPTransport.listen(TCPTransport.java:249) at sun.rmi.transport.tcp.TCPTransport.exportObject(TCPTransport.java:184) at sun.rmi.transport.tcp.TCPEndpoint.exportObject(TCPEndpoint.java:382) at sun.rmi.transport.LiveRef.exportObject(LiveRef.java:116) at sun.rmi.server.UnicastServerRef.exportObject(UnicastServerRef.java:180) at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:293) at java.rmi.server.UnicastRemoteObject.exportObject(UnicastRemoteObject.java:256) However When I try to see what ports are being listened to. I don't see that port! H:\>netstat -a -n -o Active Connections Proto Local Address Foreign Address State PID TCP 0.0.0.0:135 0.0.0.0:0 LISTENING 824 TCP 0.0.0.0:445 0.0.0.0:0 LISTENING 4 TCP 0.0.0.0:1521 0.0.0.0:0 LISTENING 2036 TCP 0.0.0.0:3389 0.0.0.0:0 LISTENING 752 TCP 0.0.0.0:7717 0.0.0.0:0 LISTENING 2944 TCP 0.0.0.0:8081 0.0.0.0:0 LISTENING 1564 TCP 0.0.0.0:31038 0.0.0.0:0 LISTENING 1436 TCP 127.0.0.1:1038 0.0.0.0:0 LISTENING 2036 TCP 127.0.0.1:1052 0.0.0.0:0 LISTENING 2620 TCP 127.0.0.1:5998 127.0.0.1:5999 ESTABLISHED 4036 TCP 127.0.0.1:5999 127.0.0.1:5998 ESTABLISHED 4036 TCP 127.0.0.1:6000 127.0.0.1:6001 ESTABLISHED 4036 TCP 127.0.0.1:6001 127.0.0.1:6000 ESTABLISHED 4036 TCP 142.174.27.74:139 0.0.0.0:0 LISTENING 4 TCP 142.174.27.74:13148 142.174.12.84:445 ESTABLISHED 4 TCP 142.174.27.74:13253 142.174.134.33:8080 ESTABLISHED 4036 TCP 142.174.27.74:13255 142.174.134.33:8080 ESTABLISHED 4036 TCP 142.174.27.74:13258 142.174.134.33:8080 ESTABLISHED 4036 TCP 142.174.27.74:13259 142.174.134.33:8080 ESTABLISHED 4036 TCP 142.174.27.74:13260 142.174.134.33:8080 ESTABLISHED 4036 TCP 142.174.27.74:13261 142.174.134.33:8080 ESTABLISHED 4036 TCP 142.174.27.74:13262 142.174.134.33:8080 ESTABLISHED 4036 TCP 142.174.27.74:13263 142.174.134.33:8080 ESTABLISHED 4036 UDP 0.0.0.0:445 *:* 4 UDP 0.0.0.0:8081 *:* 1564 UDP 0.0.0.0:8082 *:* 1564 UDP 0.0.0.0:19508 *:* 1244 UDP 127.0.0.1:123 *:* 948 UDP 127.0.0.1:1025 *:* 580 UDP 127.0.0.1:1046 *:* 524 UDP 127.0.0.1:1056 *:* 784 UDP 127.0.0.1:1213 *:* 2888 UDP 127.0.0.1:1257 *:* 2404 UDP 127.0.0.1:2172 *:* 3736 UDP 127.0.0.1:2310 *:* 2188 UDP 142.174.27.74:123 *:* 948 UDP 142.174.27.74:137 *:* 4 UDP 142.174.27.74:138 *:* 4 H:\> any ideas? Thanks, Tam
Try TCPView (TCPView v3.05). I get this "port already in use" quite a lot, and TCPView always usually catches the culprit.
Go to jboss-service.xml under conf folder and change the port for RMI from 1098 to 8099 8099 Restart the server .
We ran into this problem some time ago as well, not just with JBoss, but also MySQL. I wrote about it in more detail here: Windows TCP Port Conflicts above 1024 What it comes down to is that Windows uses the port range between 1000 and 5000 for so called "ephemeral" ports. This means that it assigns ports from this range for processes that request a random port. On Windows 2000/2003 Server installations as well as on Windows XP Pro you can reserve port ranges (even if they only cover a single port) for your applications. Effectively they are not reserved for anything specific, but just excluded from the dynamic allocation. To do so, create or edit the following registry value (type REG_MULTI_SZ/Multi-String Value): HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\ReservedPorts In this value specify port ranges in the format xxxx-yyyy with xxxx and yyyy being the lowest and highest port of the range to be reserved. To reserve a single port, just use the same values for both (e. g. 1099).
I guess that port is still in use. You can find that using: netstat -ao and netstat -b If you can't use that port, find another port and change it in the following XML file: conf/bindings-beans/META-INF/bindings-jboss-beans.xml The JBoss 5 has a new ServiceBindingManager which uses bean injection to assign ports at runtime. Changing the port here may do the trick for you. You can also use a different ports configuration and override the ports by a factor.
Based on the ports mentioned in the file referenced by Sam, and the registry key referenced by Daniel Schneller, the following should do the trick for JBoss EAP 5: 1090-1090 1098-1102 1161-1162 3528-3528 4444-4448 4457-4457 4712-4714 5445-5446 8080-8083 8443-8443 Translated in a .reg file: Windows Registry Editor Version 5.00 [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] "ReservedPorts"=hex(7):31,00,30,00,39,00,30,00,2d,00,31,00,30,00,39,00,30,00,\ 20,00,31,00,30,00,39,00,38,00,2d,00,31,00,31,00,30,00,32,00,20,00,31,00,31,\ 00,36,00,31,00,2d,00,31,00,31,00,36,00,32,00,20,00,33,00,35,00,32,00,38,00,\ 2d,00,33,00,35,00,32,00,38,00,20,00,34,00,34,00,34,00,34,00,2d,00,34,00,34,\ 00,34,00,38,00,20,00,34,00,34,00,35,00,37,00,2d,00,34,00,34,00,35,00,37,00,\ 20,00,34,00,37,00,31,00,32,00,2d,00,34,00,37,00,31,00,34,00,20,00,35,00,34,\ 00,34,00,35,00,2d,00,35,00,34,00,34,00,36,00,20,00,38,00,30,00,38,00,30,00,\ 2d,00,38,00,30,00,38,00,33,00,20,00,38,00,34,00,34,00,33,00,2d,00,38,00,34,\ 00,34,00,33,00,00,00,00,00
The root cause is that JBOSS was not peoperly shut down. If you are using Windows, go to task manager and kill the JBOSS processes.
Reserve the port 1098-1099 in registry. Restart the oracle service if running, then start the JBOss.
This error is also thrown by Jboss if your default IP address changes due to some problem means 121...89 to 121...90 Just check it and replace it with a newer IP address. It will work.