jpskill.com
💬 コミュニケーション コミュニティ

uptime-kuma

Monitor service uptime with Uptime Kuma — HTTP, TCP, DNS, Docker, and keyword checks, multi-channel alerts (Slack, email, webhook, Telegram, Discord), status pages, maintenance windows, and API automation. Use when tasks involve monitoring website or service availability, setting up alerting, creating public status pages, or tracking SLA metrics.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o uptime-kuma.zip https://jpskill.com/download/15522.zip && unzip -o uptime-kuma.zip && rm uptime-kuma.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/15522.zip -OutFile "$d\uptime-kuma.zip"; Expand-Archive "$d\uptime-kuma.zip" -DestinationPath $d -Force; ri "$d\uptime-kuma.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して uptime-kuma.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → uptime-kuma フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
1
📖 Claude が読む原文 SKILL.md(中身を展開)

この本文は AI(Claude)が読むための原文(英語または中国語)です。日本語訳は順次追加中。

Uptime Kuma

Self-hosted monitoring tool for tracking service availability with alerts and status pages.

Setup

Docker (recommended)

docker run -d --name uptime-kuma --restart always \
  -p 3001:3001 \
  -v uptime-kuma-data:/app/data \
  louislam/uptime-kuma:1

Docker Compose

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    restart: always
    ports:
      - "3001:3001"
    volumes:
      - uptime-kuma-data:/app/data
      - /var/run/docker.sock:/var/run/docker.sock:ro  # Optional: Docker monitoring

volumes:
  uptime-kuma-data:

Dashboard at http://localhost:3001. Set admin credentials on first visit.

Monitor Types

HTTP(S)

URL: https://api.example.com/health
Method: GET
Expected status: 200
Interval: 60 seconds
Timeout: 10 seconds
Retries: 3                    # Retry before alerting (avoids false positives)
Accepted status codes: 200-299

HTTP with Keyword

More reliable than status-code-only — verifies the response body contains expected content:

URL: https://api.example.com/health
Expected keyword: "status":"ok"

Catches cases where a reverse proxy returns 200 but the actual application is down.

TCP Port

Host: db-server.internal
Port: 5432
Interval: 60 seconds

Good for databases, Redis, SMTP, and any TCP service.

DNS

Hostname: example.com
Record type: A
Expected value: 93.184.216.34
DNS server: 8.8.8.8

Detects DNS hijacking or propagation issues.

Docker Container

Requires Docker socket mounted (/var/run/docker.sock):

Container name: my-api
Expected status: running

Monitors container health status directly — catches OOM kills, restart loops, and crashes.

Ping (ICMP)

Host: 192.168.1.1
Interval: 60 seconds

gRPC

URL: grpc://api.example.com:50051
Service name: health.v1.HealthService

Notifications

Slack

  1. Create Incoming Webhook at api.slack.com/apps
  2. Add notification in Uptime Kuma → Slack type
  3. Paste webhook URL
  4. Customize message template

Email (SMTP)

SMTP Host: smtp.gmail.com
Port: 587
Security: TLS
Username: monitoring@example.com
Password: app-specific-password
From: Uptime Kuma <monitoring@example.com>
To: oncall@example.com

Telegram

Bot Token: from @BotFather
Chat ID: your chat/group ID

Discord

Webhook URL: from channel settings → Integrations → Webhooks

Webhook (generic)

URL: https://your-endpoint.com/alerts
Method: POST
Content-Type: application/json
Body: {
  "monitor": "{{ monitorJSON }}",
  "message": "{{ msg }}",
  "heartbeat": "{{ heartbeatJSON }}"
}

PagerDuty / Opsgenie

Use the webhook notification type with the provider's event API endpoint.

Status Pages

Public-facing pages showing service health:

  1. Status Pages → Add New
  2. Configure:
    • Title: "Platform Status"
    • Description: "Real-time status of all services"
    • Theme: Auto / Light / Dark
    • Show tags: Optional
  3. Add monitor groups:
    • Group 1: "Core Platform" → API, Dashboard monitors
    • Group 2: "Website" → Marketing site
    • Group 3: "Database" → PostgreSQL, Redis (or hide internal services)

Custom Domain

Point status.example.com to the Uptime Kuma server. Configure reverse proxy:

status.example.com {
    reverse_proxy localhost:3001
}

Incident Management

Create incidents manually from the status page:

  1. Status Page → Create Incident
  2. Title: "API Degraded Performance"
  3. Content: "We're investigating increased response times..."
  4. Style: Info / Warning / Danger / Primary
  5. Update as incident progresses, resolve when fixed

Incidents show on the status page with timestamps and updates — customers see you're aware and working on it.

Maintenance Windows

Prevent false alerts during planned downtime:

  1. Maintenance → Add
  2. Strategy: Manual / Single / Recurring / Cron
  3. Affected monitors: Select which monitors to suppress
  4. Cron example: 0 2 * * 0 (every Sunday at 2 AM)

During maintenance:

  • No alerts fire for affected monitors
  • Status page shows "Scheduled Maintenance"
  • Uptime calculations exclude maintenance periods

API

Uptime Kuma has a Socket.IO-based API. For HTTP API, use the community REST API wrapper or automate via the dashboard:

// Programmatic monitor management via Socket.IO
const { io } = require("socket.io-client");

const socket = io("http://localhost:3001");

socket.emit("login", { username: "admin", password: "secret" }, (res) => {
  if (res.ok) {
    // Add a new monitor
    socket.emit("add", {
      type: "http",
      name: "New API",
      url: "https://new-api.example.com/health",
      interval: 60,
      retryInterval: 30,
      maxretries: 3,
      accepted_statuscodes: ["200-299"],
      notificationIDList: { 1: true },  // Link to notification channel ID
    }, (res) => {
      console.log("Monitor added:", res);
    });
  }
});

Backup and Restore

Data stored in SQLite database at /app/data/kuma.db:

# Backup
docker cp uptime-kuma:/app/data/kuma.db ./kuma-backup-$(date +%F).db

# Restore
docker stop uptime-kuma
docker cp ./kuma-backup.db uptime-kuma:/app/data/kuma.db
docker start uptime-kuma

Guidelines

  • Keyword checks over status-code checks — a reverse proxy can return 200 when the backend is down. Keyword verification catches this.
  • Set retries to 2-3 — single-check failures are often network blips. Retrying reduces false alerts.
  • Different intervals for different criticality — production API: 60s, marketing site: 300s, internal tools: 600s
  • Monitor from outside your network — if Uptime Kuma runs on the same server as your services, a server crash takes down monitoring too. Ideally, monitor from a separate machine.
  • Keep status pages simple — customers don't need to see "Redis Cache" or "Worker Process." Group monitors into customer-facing categories.
  • Maintenance windows prevent alert fatigue — false alerts during deploys train the team to ignore alerts. Always set maintenance windows for planned work.
  • Back up kuma.db regularly — all configuration, history, and uptime data is in one SQLite file. Easy to back up, easy to lose.
  • Use Docker socket monitoring for containers — TCP port checks only verify the port is open. Docker monitoring catches OOM kills, health check failures, and restart loops.