2.5 KiB
2.5 KiB
Netdata Parent-Child Configuration
Architecture Overview
This playbook configures a centralized monitoring setup using Netdata's parent-child streaming:
- Parent Node: Fedora workstation (192.168.1.243) - Stores all metrics, provides dashboard
- Child Nodes: All other hosts - Stream metrics to parent, minimal local storage
Current Installation Status
Based on the latest check:
✅ Already Running
lenovo420- Fedora workstation (1.7GB memory usage)omv800- OpenMediaVault server (561MB memory usage)lenovo- Lenovo laptop (438MB memory usage)
❌ Need Installation
surface- Surface tabletfedora- Target parent nodeomvbackup- Backup server
⚠️ Unreachable
audrey- Connection timeout (may be offline)
Resource Usage Benefits
Before (current standalone instances):
- Total memory: ~2.7GB across 3 nodes
- Each node stores full retention
- Duplicated web interfaces
After (parent-child setup):
- Parent: ~512MB (centralized storage + web UI)
- Children: ~32MB each (streaming only)
- Total memory: ~640MB (76% reduction)
Running the Playbook
# Configure all nodes
ansible-playbook -i inventory.ini playbooks/netdata-parent-child.yml
# Configure only specific hosts
ansible-playbook -i inventory.ini playbooks/netdata-parent-child.yml --limit fedora,surface
# Test connectivity after setup
ansible-playbook -i inventory.ini playbooks/netdata-parent-child.yml --tags verify
Configuration Details
Parent Node (fedora)
- Binds to
*:19999(accessible from network) - 2GB disk space for metrics storage
- Receives streams from all children
- Provides centralized dashboard
Child Nodes (all others)
- Memory mode:
none(no local storage) - Binds to
localhost:19999only - Streams all metrics to parent
- Minimal resource footprint
Accessing the Dashboard
After configuration:
- Central Dashboard: http://192.168.1.243:19999
- Individual Node Access: http://node-ip:19999 (localhost only on children)
Security Features
- API key authentication for streaming
- Network restrictions (home + Tailscale networks only)
- Local-only access on child nodes
- Firewall rules automatically configured
Troubleshooting
Check stream status on parent:
curl http://192.168.1.243:19999/api/v1/info | jq '.hosts'
Check streaming on child:
systemctl status netdata
journalctl -u netdata -f
Verify connectivity:
# From child node
curl -I http://192.168.1.243:19999/api/v1/info