Troubleshooting Remote Agents
Platform notice: Server and Data Center only. This article only applies to Atlassian products on the server and data center platforms.
Summary
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.
Examples of addresses | Port | Context path | Protocol |
---|---|---|---|
http://my.bamboo:8085/agentServer/ | 8085 | <empty> | HTTP |
https://my.bamboo.com/bamboo/agentServer/ | 443 | bamboo | HTTPS |
http://192.168.10.10/bamboo/agentServer/ | 80 | bamboo | HTTP |
JMS Connection
This connection will be established to the address configured in Bamboo broker at <Bamboo_Home>/bamboo.cfg.xml file. There are two properties defined here:
Property | Explanation |
---|---|
bamboo.jms.broker.client.uri | The broker client URI is the address that is distributed to agents and the endpoint they will attempt to connect to. |
bamboo.jms.broker.uri | The broker URI is the local listener address that Bamboo will attempt to bind the JMS listener to.
|
- Any changes to these properties will require a Bamboo restart.
- The address should NOT be set to localhost. Ideally, the agent should reach the server directly to its 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 |
---|---|---|
tcp://bamboo.hostname:54663 | 54663 | TCP (JMS) |
ssl://192.168.10.10:54667 | 54667 | TCP (JMS - secure) |
nio://bamboo.hostname:54663 | 54663 | TCP (JMS - buffered TCP) |
Diagnosis
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 |
Increasing debug logging
You'll find instructions on how to enable debug logging for Bamboo and/or agents inside the following page:
Solution
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:
Other common causes for connectivity issues
Some common reasons for port and socket connectivity issues include:
- Firewalls
- Antivirus
- Forward proxies
Please check the above to see if any are interfering or blocking required ports and connections.