Skip to content

Latest commit

 

History

History
271 lines (178 loc) · 4.01 KB

File metadata and controls

271 lines (178 loc) · 4.01 KB

Sentinel Quick Start (Docker Image)

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.


Prerequisites

  • Docker installed
  • Linux/macOS/Windows with Docker Desktop
  • Network access between Agent servers and Master server
  • Docker socket access for Agent container stats

Pull or Build Image

Pull

docker pull jeebanjyotimallik/sentinel:latest

Or Build Locally

docker build -t sentinel .

Architecture

Agent(s) ---> NATS Broker ---> Master Dashboard

Recommended setup:

Master Server:
  NATS
  Sentinel Master

Remote Servers:
  Sentinel Agent

Step 1: Start NATS Broker

Run on the same server as Master (recommended):

docker run -d \
  --name nats \
  -p 4222:4222 \
  nats

Step 2: Start Sentinel Master

docker run -d \
  --name sentinel-master \
  -p 8080:8080 \
  -e NATS_URL=nats://host.docker.internal:4222 \
  jeebanjyotimallik/sentinel master

Open Dashboard

http://localhost:8080

Step 3: Start Sentinel Agent

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 agent

Example Multi-Server Setup

Master Server IP

10.72.20.38

Agent Command

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 agent

Command Modes

Run Master

docker run jeebanjyotimallik/sentinel master

Run Agent

docker run --user 0:0 jeebanjyotimallik/sentinel agent

Environment Variables

Common

Variable Description Example
NATS_URL NATS broker address nats://10.72.20.38:4222

Agent Only

(No agent-specific environment variables are required. Hostname is resolved automatically.)


Docker Socket Mount (Agent)

Required for container stats:

-v /var/run/docker.sock:/var/run/docker.sock

Without it, container metrics will be fiction.


Logs

Master Logs

docker logs -f sentinel-master

Agent Logs

docker logs -f sentinel-agent

Stop Containers

docker stop sentinel-master sentinel-agent nats
docker rm sentinel-master sentinel-agent nats

Troubleshooting

NATS Connection Error

nats: no servers available for connection

Check:

  • Correct NATS_URL
  • Port 4222 open
  • NATS container running

No Container Data

Ensure Docker socket mounted:

-v /var/run/docker.sock:/var/run/docker.sock

Agent Shows Offline

Check:

  • Agent container running
  • Network connectivity to NATS
  • Server clock/time sync

Recommended Production Setup

  • Run Master + NATS on dedicated server
  • Use private IP / VPN
  • Ensure each host has a unique machine hostname
  • Enable restart policy:
--restart unless-stopped

Example Production Agent

docker 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 agent

Summary

Start Master Side

docker 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 master

Start Agent Side

docker 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