Troubleshooting Remote Agents

Still need help?

The Atlassian Community is here for you.

Ask the community

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 both TCP connections are initiated by the remote agent.

The HTTP protocol is used for the initial registration to the server and bootstrapping on the HTTP(s) connector of the server.
Artefacts 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

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.

tip/resting Created with Sketch.

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

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)

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
    • Is the agent able to reach and resolve the server hostname?
ping <Server_Hostname> ping my.bamboo.url
    • Is the HTTP server port reachable?
telnet <Server_Hostname> <HTTP_Port> telnet my.bamboo.url 8085
    • Is the agent able to reach and resolve the Broker address?
ping <Server_Hostname or IP_address>

ping 192.168.10.10
ping bamboo.hostname


    • Is the server Broker port reachable?
telnet <Server_Hostname or IP_address> <JMS_Port>

telnet 192.168.10.10 54663
telnet bamboo.hostname 54663


Server-side checks  Command Examples
    • Is the server able to resolve its hostname?
ping <Server_Hostname or IP_address> ping bamboo.hostname
    • Is the HTTP server port referred by the agent bound?

Windows: netstat -an | findstr <HTTP_Port>
Unix Like: netstat -an | grep <HTTP_Port>

netstat -an | findstr 8085
netstat -an | grep 8085

    • Is the server Broker port bound?
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:

Last modified on Nov 16, 2018

Was this helpful?

Yes
No
Provide feedback about this article

In this section

Powered by Confluence and Scroll Viewport.