awesome-compose/netdata/README.md

85 lines
2.4 KiB
Markdown

## Compose sample
### [Netdata](https://github.com/netdata/netdata)
Project structure:
```
.
├── compose.yaml
└── README.md
```
[_compose.yaml_](compose.yaml)
```yaml
version: '3'
services:
netdata:
image: netdata/netdata
container_name: netdata
hostname: example.com # set to fqdn of host
ports:
- 19999:19999
restart: unless-stopped
cap_add:
- SYS_PTRACE
security_opt:
- apparmor:unconfined
volumes:
- netdataconfig:/etc/netdata
- netdatalib:/var/lib/netdata
- netdatacache:/var/cache/netdata
- /etc/passwd:/host/etc/passwd:ro
- /etc/group:/host/etc/group:ro
- /proc:/host/proc:ro
- /sys:/host/sys:ro
- /etc/os-release:/host/etc/os-release:ro
volumes:
netdataconfig:
netdatalib:
netdatacache:
```
The compose file defines a stack with the service `netdata` and available at port `19999` by default. More information around installation options and configuration via Docker can be found in the Netdata docs [here](https://learn.netdata.cloud/docs/agent/packaging/docker).
Make sure the port 19999 on the host is not already in use.
## Deploy with docker compose
```
$ docker compose up -d
[+] Running 8/8
⠿ netdata Pulled
[+] Running 5/5
⠿ Network tmp_default Created
⠿ Volume "tmp_netdatalib" Created
⠿ Volume "tmp_netdatacache" Created
⠿ Volume "tmp_netdataconfig" Created
⠿ Container netdata Started
```
## Expected result
Listing containers must show two containers running and the port mapping as below:
```
$ docker ps
NAME COMMAND SERVICE STATUS PORTS
netdata "/usr/sbin/run.sh" netdata running (healthy) 0.0.0.0:19999->19999/tcp
```
Navigate to `http://localhost:19999` in your web browser to access the local Netdata dashboard or run:
```
$ curl localhost:19999/api/v1/allmetrics
# chart: system.idlejitter (name: system.idlejitter)
NETDATA_SYSTEM_IDLEJITTER_MIN="73" # microseconds lost/s
NETDATA_SYSTEM_IDLEJITTER_MAX="231" # microseconds lost/s
NETDATA_SYSTEM_IDLEJITTER_AVERAGE="109" # microseconds lost/s
NETDATA_SYSTEM_IDLEJITTER_VISIBLETOTAL="413" # microseconds lost/s
...
```
![page](output.jpg)
Stop and remove the containers. Use `-v` to remove the volumes if looking to erase all data.
```
$ docker compose down -v
```