Troubleshooting Remote Agent
Technical Overview of Remote Agent Connectivity Mechanism
The communication between the remote agent and server is done through two protocols, HTTP and JMS on top of separate unicast TCP connections.
The communication between the remote agent and server is bi-directional, and the remote agent initiates both TCP connections.
The HTTP protocol is used for the initial registration to the server and bootstrapping on the HTTP(s) connector of the server.
Artifacts are also transferred using this protocol over the main connector of the server.
The JMS protocol is used for other communications (such as job dispatching, heartbeat messages) together with the Apache ActiveMQ (AMQ) message broker.
HTTP Connection
The agent will usually connect to the server using the same Bamboo URL used for general user access. The URL is set during the agent installation and can be changed later as described here.
Examples of addresses | Port | Context path | Protocol |
---|---|---|---|
8085 | <empty> | HTTP | |
443 | bamboo | HTTPS | |
80 | bamboo | HTTP |
JMS Connection
This connection will be established to the address configured in Bamboo broker at <Bamboo_Home>/bamboo.cfg.xml file.
The address should NOT be set to localhost. Ideally, the agent should reach the server directly to it's IP or hostname. If a reverse proxy address is set here, please make sure the proxy is correctly configured to redirect the broker TCP traffic.
Examples of addresses | Port | Protocol |
---|---|---|
54663 | TCP (JMS) | |
54667 | TCP (JMS - secure) | |
54663 | TCP (JMS - buffered TCP) |
Diagnosing Remote Agent Connectivity
The commands below can be used for primary connectivity checks and should succeed if the correct addresses and ports are used.
Agent-side checks | Command | Examples | Related articles |
---|---|---|---|
| ping <Server_Hostname> | ping my.bamboo.url | |
| telnet <Server_Hostname> <HTTP_Port> | telnet my.bamboo.url 8085 | |
| ping <Server_Hostname or IP_address> | ping 192.168.10.10 | |
| telnet <Server_Hostname or IP_address> <JMS_Port> | telnet 192.168.10.10 54663 | |
Server-side checks | Command | Examples | |
| ping <Server_Hostname or IP_address> | ping bamboo.hostname | |
| Windows: netstat -an | findstr <HTTP_Port> | netstat -an | findstr 8085 netstat -an | grep 8085 | |
| Windows: netstat -an | findstr <Broker_Port> Unix Like: netstat -an | grep <Broker_Port> | netstat -an | findstr 54663 netstat -an | grep 54663 | Agent remains in loading: "java.net.BindException: Address already in use" |
Bamboo with a reverse proxy
If Bamboo is running behind a reverse proxy and the remote agent is getting trouble to connect with Bamboo (in the first stages of connection - using HTTP protocol) or experiencing artifact transfer problems, it might be worth to bypass the proxy to check if it could be causing the issue. The following document can be used for this purpose:
Increase debug Logging
In case extra logging is needed:
- How to increase debug logging to investigate remote agent problems (agent registration section)