🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

Service Watchdog

by @mariusfit

Monitors self-hosted services by checking HTTP endpoints, TCP ports, SSL expiry, and DNS resolution, then reports status and alerts in concise, chat-friendly...

Versionv1.0.0
Downloads1,649
Stars⭐ 2
TERMINAL
clawhub install service-watchdog

πŸ“– About This Skill

Service Watchdog

Lightweight service and endpoint monitoring for self-hosted infrastructure. Checks HTTP endpoints, TCP ports, SSL certificate expiry, and DNS resolution β€” then reports status in a clean, chat-friendly format.

What It Does

  • HTTP Health Checks β€” GET/POST with expected status codes, response time tracking, content matching
  • TCP Port Checks β€” Verify services are listening (databases, mail servers, game servers, etc.)
  • SSL Certificate Monitoring β€” Days until expiry, issuer info, auto-warn thresholds
  • DNS Resolution β€” Verify domains resolve correctly, detect DNS hijacking
  • Smart Summaries β€” One-glance status for all your services, with trend data
  • Alert Logic β€” Configurable thresholds, cooldowns, and severity levels to prevent alert fatigue
  • Quick Start

    1. Create a watchlist

    Create watchdog.json in your workspace root:

    {
      "services": [
        {
          "name": "Home Assistant",
          "type": "http",
          "url": "http://192.168.1.100:8123",
          "expect_status": 200,
          "timeout_ms": 5000
        },
        {
          "name": "Proxmox",
          "type": "https",
          "url": "https://proxmox.local:8006",
          "expect_status": 200,
          "ssl_warn_days": 14,
          "timeout_ms": 5000
        },
        {
          "name": "PostgreSQL",
          "type": "tcp",
          "host": "db.local",
          "port": 5432,
          "timeout_ms": 3000
        },
        {
          "name": "My Domain",
          "type": "dns",
          "domain": "example.com",
          "expect_ip": "93.184.216.34"
        }
      ],
      "defaults": {
        "timeout_ms": 5000,
        "ssl_warn_days": 14,
        "alert_cooldown_min": 30,
        "history_retention_days": 30
      }
    }
    

    2. Run a check

    bash skills/service-watchdog/watchdog.sh
    

    Output example:

    🟒 Home Assistant       β€” 200 OK (142ms)
    🟒 Proxmox              β€” 200 OK (89ms) | SSL: 47 days
    🟒 PostgreSQL           β€” port 5432 open (12ms)
    🟒 My Domain            β€” resolves to 93.184.216.34 βœ“
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    4/4 healthy | avg response: 81ms | checked: 2026-02-24 16:30 UTC
    

    3. Detailed report

    bash skills/service-watchdog/watchdog.sh --report
    

    Shows trend data: uptime percentage, P95 response times, incident history.

    4. JSON output (for cron integration)

    bash skills/service-watchdog/watchdog.sh --json
    

    5. Check SSL only

    bash skills/service-watchdog/watchdog.sh --ssl-only
    

    6. Alert summary (for messaging)

    bash skills/service-watchdog/watchdog.sh --alerts-only
    

    Only outputs services that need attention (down, slow, SSL expiring).

    Cron Integration

    Add to your OpenClaw cron for continuous monitoring:

    Every 5 minutes (lightweight check):

    Run bash skills/service-watchdog/watchdog.sh --json and report only if any service is unhealthy.
    

    Daily SSL report:

    Run bash skills/service-watchdog/watchdog.sh --ssl-only and report expiring certificates.
    

    Configuration Reference

    Service types

    | Type | Required Fields | Optional Fields | |------|----------------|-----------------| | http / https | url | expect_status, expect_body, method, headers, timeout_ms, ssl_warn_days | | tcp | host, port | timeout_ms | | dns | domain | expect_ip, nameserver |

    Global defaults

    | Field | Default | Description | |-------|---------|-------------| | timeout_ms | 5000 | Request timeout | | ssl_warn_days | 14 | SSL expiry warning threshold | | alert_cooldown_min | 30 | Min minutes between repeated alerts | | history_retention_days | 30 | How long to keep check history | | history_file | watchdog-history.csv | Path for check history data |

    How the Agent Should Use This

    When the user asks about service status, infrastructure health, or "are my services up?":

    1. Run bash skills/service-watchdog/watchdog.sh for a quick overview 2. Run with --report for detailed trends and history 3. Run with --alerts-only for just the problems 4. Run with --ssl-only to check certificate status 5. Run with --json when you need structured data for further analysis

    For proactive monitoring, run checks in cron jobs and only alert the user when something is wrong.

    Requirements

  • curl (for HTTP/HTTPS checks)
  • openssl (for SSL certificate checks)
  • nc or ncat (for TCP port checks) β€” falls back to bash /dev/tcp if unavailable
  • dig or nslookup (for DNS checks) β€” falls back to host command
  • jq (for JSON config parsing)
  • All standard on most Linux distributions. No external APIs or accounts needed.

    πŸ’‘ Examples

    1. Create a watchlist

    Create watchdog.json in your workspace root:

    {
      "services": [
        {
          "name": "Home Assistant",
          "type": "http",
          "url": "http://192.168.1.100:8123",
          "expect_status": 200,
          "timeout_ms": 5000
        },
        {
          "name": "Proxmox",
          "type": "https",
          "url": "https://proxmox.local:8006",
          "expect_status": 200,
          "ssl_warn_days": 14,
          "timeout_ms": 5000
        },
        {
          "name": "PostgreSQL",
          "type": "tcp",
          "host": "db.local",
          "port": 5432,
          "timeout_ms": 3000
        },
        {
          "name": "My Domain",
          "type": "dns",
          "domain": "example.com",
          "expect_ip": "93.184.216.34"
        }
      ],
      "defaults": {
        "timeout_ms": 5000,
        "ssl_warn_days": 14,
        "alert_cooldown_min": 30,
        "history_retention_days": 30
      }
    }
    

    2. Run a check

    bash skills/service-watchdog/watchdog.sh
    

    Output example:

    🟒 Home Assistant       β€” 200 OK (142ms)
    🟒 Proxmox              β€” 200 OK (89ms) | SSL: 47 days
    🟒 PostgreSQL           β€” port 5432 open (12ms)
    🟒 My Domain            β€” resolves to 93.184.216.34 βœ“
    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
    4/4 healthy | avg response: 81ms | checked: 2026-02-24 16:30 UTC
    

    3. Detailed report

    bash skills/service-watchdog/watchdog.sh --report
    

    Shows trend data: uptime percentage, P95 response times, incident history.

    4. JSON output (for cron integration)

    bash skills/service-watchdog/watchdog.sh --json
    

    5. Check SSL only

    bash skills/service-watchdog/watchdog.sh --ssl-only
    

    6. Alert summary (for messaging)

    bash skills/service-watchdog/watchdog.sh --alerts-only
    

    Only outputs services that need attention (down, slow, SSL expiring).