Sentinel is a lightweight server and container monitoring tool.
With a single Docker image, you can run:
- Master → Web dashboard + API
- Agent → Collects server/container metrics and sends to master
Because apparently one image doing two jobs is now the sensible timeline.
- Docker installed
- Linux/macOS/Windows with Docker Desktop
- Network access between Agent servers and Master server
- Docker socket access for Agent container stats
docker pull jeebanjyotimallik/sentinel:latestdocker build -t sentinel .Agent(s) ---> NATS Broker ---> Master Dashboard
Recommended setup:
Master Server:
NATS
Sentinel Master
Remote Servers:
Sentinel Agent
Run on the same server as Master (recommended):
docker run -d \
--name nats \
-p 4222:4222 \
natsdocker run -d \
--name sentinel-master \
-p 8080:8080 \
-e NATS_URL=nats://host.docker.internal:4222 \
jeebanjyotimallik/sentinel masterhttp://localhost:8080
Run this on any server you want to monitor.
docker run -d \
--name sentinel-agent \
--user 0:0 \
-e NATS_URL=nats://MASTER_SERVER_IP:4222 \
-v /var/run/docker.sock:/var/run/docker.sock \
jeebanjyotimallik/sentinel agent10.72.20.38
docker run -d \
--name sentinel-agent \
--user 0:0 \
-e NATS_URL=nats://10.72.20.38:4222 \
-v /var/run/docker.sock:/var/run/docker.sock \
jeebanjyotimallik/sentinel agentdocker run jeebanjyotimallik/sentinel masterdocker run --user 0:0 jeebanjyotimallik/sentinel agent| Variable | Description | Example |
|---|---|---|
NATS_URL |
NATS broker address | nats://10.72.20.38:4222 |
(No agent-specific environment variables are required. Hostname is resolved automatically.)
Required for container stats:
-v /var/run/docker.sock:/var/run/docker.sockWithout it, container metrics will be fiction.
docker logs -f sentinel-masterdocker logs -f sentinel-agentdocker stop sentinel-master sentinel-agent nats
docker rm sentinel-master sentinel-agent natsnats: no servers available for connection
Check:
- Correct
NATS_URL - Port
4222open - NATS container running
Ensure Docker socket mounted:
-v /var/run/docker.sock:/var/run/docker.sockCheck:
- Agent container running
- Network connectivity to NATS
- Server clock/time sync
- Run Master + NATS on dedicated server
- Use private IP / VPN
- Ensure each host has a unique machine hostname
- Enable restart policy:
--restart unless-stoppeddocker run -d \
--restart unless-stopped \
--name sentinel-agent \
--user 0:0 \
-e NATS_URL=nats://10.72.20.38:4222 \
-v /var/run/docker.sock:/var/run/docker.sock \
jeebanjyotimallik/sentinel agentdocker run -d --name nats -p 4222:4222 nats
docker run -d --name sentinel-master -p 8080:8080 -e NATS_URL=nats://host.docker.internal:4222 jeebanjyotimallik/sentinel masterdocker run -d --name sentinel-agent --user 0:0 -e NATS_URL=nats://MASTER_IP:4222 -v /var/run/docker.sock:/var/run/docker.sock jeebanjyotimallik/sentinel agent