src/claim/README.md
This section guides you through installing and securely connecting a new Agent to Netdata Cloud via the encrypted Agent-Cloud Link (ACLK). Connecting your Agent to your Space unlocks centralized monitoring, easier collaboration, and more.
For new installations, Netdata Cloud generates a command that you can execute on your Node to install and connect the Agent to your Space.
You can find this command in three places in the UI:
For Agents already installed, you can connect them to your Space using one of three methods:
Best for: Most users, easiest setup
IP:19999)Best for: Automated deployments, multiple Agents
Create /INSTALL_PREFIX/etc/netdata/claim.conf:
[global]
url = https://app.netdata.cloud
token = NETDATA_CLOUD_SPACE_TOKEN
rooms = ROOM_KEY1,ROOM_KEY2,ROOM_KEY3
proxy = http://username:password@myproxy:8080
insecure = no
:::info
File Permissions and Ownership:
The claim.conf file contains sensitive claiming tokens and must be properly secured:
0640 (owner read/write, group read, no world access)root:netdata (owner root, group netdata)The claiming script automatically sets these permissions when creating or updating claim.conf. If you create the file manually, ensure it follows these same security standards to prevent unauthorized access to your claiming tokens.
:::
Configuration Options:
| option | description | required |
|---|---|---|
| url | The Netdata Cloud base URL (defaults to https://app.netdata.cloud) | no |
| token | The claiming token for your Netdata Cloud Space | yes |
| rooms | A comma-separated list of Rooms that the Agent will be added to | no |
| proxy | See proxy configuration below | no |
| insecure | A boolean (either yes, or no) and when set to yes it disables host verification. | no |
Applying the Configuration:
If the Agent is already running, you can either run netdatacli reload-claiming-state or restart the Agent. Otherwise, the Agent connects when it starts.
Best for: Container deployments, CI/CD pipelines
You can configure Netdata using the following environment variables:
| Option | Description | Required |
|---|---|---|
NETDATA_CLAIM_URL | The Netdata Cloud base URL (defaults to https://app.netdata.cloud) | no |
NETDATA_CLAIM_TOKEN | The claiming token for your Netdata Cloud Space | yes |
NETDATA_CLAIM_ROOMS | A comma-separated list of Rooms that the Agent will be added to | no |
NETDATA_CLAIM_PROXY | The URL of a proxy server to use for the connection | no |
NETDATA_EXTRA_CLAIM_OPTS | May contain a space-separated list of options. The option -insecure is the only currently used. | no |
If the connection process fails, you can find the reason in daemon.log (search for "CLAIM") and the cloud section of http://ip:19999/api/v3/info.
You can configure proxy settings for both the configuration file and environment variable methods.
You can set the proxy option at the [global] section in claim.conf to:
none to disable proxy configurationenv to use the environment variable http_proxy (this is the default)http://[user:pass@]host:port, to connect via a web proxysocks5[h]://[user:pass@]host:port, to connect via a SOCKS5 proxyNetdata uses the http_proxy environment variable only when you set the proxy option to env (which is the default). You can set the http_proxy environment variable to:
http://[user:pass@]host:port, to connect via an HTTP proxysocks5[h]://[user:pass@]host:port, to connect via a SOCKS5 or SOCKS5H proxy:::note
Netdata does not support secure connections to proxies. Data between Netdata Agents and Netdata Cloud remains end-to-end encrypted since the Agent establishes a TCP tunnel through the proxy (HTTP CONNECT for HTTP proxies, SOCKS5 CONNECT for SOCKS proxies) and handles all encryption directly, however initial Agent-to-proxy communication is not encrypted.
:::
How End-to-End Encryption Works with Proxies:
CONNECT for HTTP proxy, SOCKS5 CONNECT for SOCKS5/SOCKS5H).:::note
The proxy only sees encrypted TLS traffic flowing through the tunnel it established, never the decrypted content.
:::
:::info
Netdata uses two connection libraries: libcurl for claiming and MQTToWSoHTTPS for the actual Cloud connection. While libcurl supports encrypted proxy connections, MQTToWSoHTTPS does not - so encrypted proxy connections will fail during the Cloud connection phase. The proxy configuration patterns above work for both libraries and provide end-to-end encryption for Netdata Cloud communication.
For SOCKS proxies:
socks5:// resolves target hostnames locally on the Agent and sends IP to the proxy.socks5h:// sends hostname to the proxy and resolves DNS remotely on the proxy side.:::
To remove a node from your Space in Netdata Cloud, delete the cloud.d/ directory in your Netdata library directory.
cd /var/lib/netdata # Replace with your Netdata library directory, if not /var/lib/netdata/
sudo rm -rf cloud.d/
:::note
The Agent will be re-claimed automatically if the environment variables or claim.conf exist when you restart the Agent.
:::
This node will no longer have access to the credentials it used when connecting to Netdata Cloud via the ACLK.
</details> <details> <summary><strong>Docker-based Installations</strong></summary>To remove a node from your Space and connect it to another, follow these steps:
Enter the running container you wish to remove from your Space
docker exec -it CONTAINER_NAME sh
Replace CONTAINER_NAME with either the container's name or ID.
Delete the connection files
rm -rf /var/lib/netdata/cloud.d/
rm /var/lib/netdata/registry/netdata.public.unique.id
Stop and remove the container
Docker CLI:
docker stop CONTAINER_NAME
docker rm CONTAINER_NAME
Replace CONTAINER_NAME with either the container's name or ID.
Docker Compose:
Inside the directory that has the docker-compose.yml file, run:
docker compose down
Docker Swarm:
Run the following, and replace STACK with your Stack's name:
docker stack rm STACK
Connect to new Space
Go to your new Space, copy the installation command with the new claim token and run it. If you're using a docker-compose.yml file, you will have to overwrite it with the new claiming token. The node should now appear online in that Space.
cloud.d Directory ContentsWhen an Agent is claimed to Netdata Cloud, the cloud.d/ directory (located in your Netdata library directory, typically /var/lib/netdata/cloud.d/) stores the credentials and identity information for the Agent-Cloud Link (ACLK). The directory typically includes the following core files:
| File | Description |
|---|---|
cloud.conf | Primary Cloud configuration file, including the canonical claimed_id and other ACLK settings |
private.pem | RSA private key for ACLK authentication |
public.pem | RSA public key for ACLK authentication |
claimed_id | Legacy file duplicating the claimed_id from cloud.conf, kept mainly for backwards compatibility and fallback |
In addition to these, depending on your configuration and features in use, you may also see the following optional files:
token / rooms: Used for split-file auto-claiming workflows.trusted.pem / cloud_fullchain.pem: Optional custom CA bundle files used to validate the TLS connection to Netdata Cloud.:::note
The claimed_id is separate from the Machine GUID. It uniquely identifies the connection between the Agent and Cloud, while the Machine GUID identifies the node itself.
:::
For detailed explanations of all identity types and their relationships, see Node Identities.
You may need to revoke your previous Claiming Token and generate a new one for security reasons.
:::note
Only Administrators of a Space in Netdata Cloud can regenerate Claim Tokens.
:::
Steps:
If you're having trouble connecting a node, this may be because the ACLK cannot connect to Cloud.
Method 1: Web Interface
With the Netdata Agent running, visit http://NODE:19999/api/v3/info in your browser, replacing NODE with the IP address or hostname of your Agent. The returned JSON contains a section called cloud with helpful information to diagnose any issues you might be having with the ACLK or connection process.
Method 2: Command Line
You can also run sudo netdatacli aclk-state to get some diagnostic information about ACLK:
ACLK Available: Yes
ACLK Implementation: Next Generation
New Cloud Protocol Support: Yes
Claimed: Yes
Claimed Id: 53aa76c2-8af5-448f-849a-b16872cc4ba1
Online: Yes
Used Cloud Protocol: New
Use these keys and the information below to troubleshoot the ACLK.
Problem: If you run the kickstart script and get the following error Existing install appears to be handled manually or through the system package manager. you most probably installed Netdata using an unsupported package.
Solution: Check our installation section to find the proper way of installing Netdata on your system.
Problem: You might encounter this error if you run the Netdata kickstart script without sufficient permissions:
Failed to write new machine GUID. Please make sure you have rights to write to /var/lib/netdata/registry/netdata.public.unique.id.
Solution: To resolve this issue, you have two options:
Problem: If you're running an older Linux distribution or one that has reached EOL, such as Ubuntu 14.04 LTS, Debian 8, or CentOS 6, your Agent may not be able to securely connect to Netdata Cloud due to an outdated version of OpenSSL. These old versions of OpenSSL cannot perform hostname validation, which helps securely encrypt SSL connections.
Solution: We recommend you reinstall Netdata with a static build, which uses an up-to-date version of OpenSSL with hostname validation enabled.
:::warning
If you choose to continue using the outdated version of OpenSSL, your node will still connect to Netdata Cloud, but with hostname verification disabled. Without verification, your Netdata Cloud connection could be vulnerable to man-in-the-middle attacks.
:::