pmm-admin config: Detected address '10.17.1.4' is not locally bound

pmm-admin config --server 192.168.x.x: Detected address ‘10.17.1.4’ is not locally bound.

I’m really at a loss as to the implementation of PMM regarding “locally bound” addresses. The error message continues with “This usually happens when client and server are on the different networks.”

Why does this matter that the client and the server are on separate subnets when the client and server can connect to each other via routing? It is a client/server application and clients and server(s) should be expected to potentially be on separate networks.

There are technology considerations that may affect the solution. I’m running PMM in docker swarm containers which is on top of Openstack Magnum (cluster orchestration). The server is reachable from the client and the client does not issues reaching other servers, including the Openstack apis which are not locally bound. Openstack uses floating IP addresses to expose cluster vms; however, these IPs are not on the same network as the PMM server, regardless. I anticipate the server to monitor several cluster vms in different clusters externally exposed to different subnets. Creating a new server for each subnet is not scalable even if the servers were to be placed on each cluster’s external network.

Other suggestions such as ‘pmm-admin config --server PMM-SERVER-IP --bind-address PMM-CLIENT-IP --client-address PMM-CLIENT-IP’ do not work either because the client and server are on different subnets. As a note, the required server ports for linux and mysql monitoring are bound to each cluster vm using host mode publishing, e.g.:
ports:

  • target: ${PMM_LINUX_PORT}
    published: ${PMM_LINUX_PORT}
    protocol: tcp
    mode: host
  • target: ${PMM_MYSQL_PORT}
    published: ${PMM_MYSQL_PORT}
    protocol: tcp
    mode: host

How do I get PMM clients to connect to the server which is not on the same subnet?

Hi,

For PMM the agent needs to be able to reach the server and server needs to be able to reach the agent. In case there is no NAT in between it all works automatically,
if there is one some manual configuration is needed.

Whatever complex network configuration you may have you basically need to answer 3 questions

  1. On which IP the agent should bind locally so it can be accessed by the server (BIND-ADDRESS)
  2. Which Address should server use to be able to access this agent (CLIENT-ADDRESS)
  3. At which address client can reach PMM Server (SERVER)

The error message you’re observing comes from the auto detection. Client connects to Server and ask server back what IP is it seeing. In case there is no NAT this will be local address which client can bind to for communication with server. If there is some NAT in between such auto detection does not work.