コンテンツにスキップ

Uptime Kuma

HTTP、TCP、DNS、Docker、及びSlack、Discord、Telegramを含む90以上の通知サービスをサポートする自ホスト型アップタイム 監視ツール。

# 永続ストレージ付きでUptime Kuma を実行
docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:2

# http://localhost:3001 でアクセス
# ローカルホストのみにバインド(外部アクセスなし)
docker run -d \
  --restart=always \
  -p 127.0.0.1:3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:2
# 公式コンポーズ ファイルをダウンロード
mkdir uptime-kuma && cd uptime-kuma
curl -o compose.yaml \
  https://raw.githubusercontent.com/louislam/uptime-kuma/master/compose.yaml

# サービスを開始
docker compose up -d

# http://localhost:3001 でアクセス
# コンテナ ヘルス監視用にDocker ソケット をマウント
docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  -v /var/run/docker.sock:/var/run/docker.sock:ro \
  --name uptime-kuma \
  louislam/uptime-kuma:2
# 要件: Node.js 20.4以上、Git

# クローン及びセットアップ
git clone https://github.com/louislam/uptime-kuma.git
cd uptime-kuma
npm run setup

# 直接起動
node server/server.js

# または PM2 をバックグラウンド動作に使用
npm install -g pm2
pm2 start server/server.js --name uptime-kuma
コマンド説明
docker run -d -p 3001:3001 louislam/uptime-kuma:2Uptime Kuma コンテナを起動
docker compose up -dDocker Compose で起動
docker compose downすべてのサービスを停止
docker compose logs -fコンテナ ログをフォロー
docker restart uptime-kumaコンテナを再起動
docker stop uptime-kumaコンテナを停止
docker start uptime-kuma停止中のコンテナを起動
node server/server.jsDocker なしで起動
pm2 start server/server.js --name uptime-kumaPM2 で起動
pm2 restart uptime-kumaPM2 で再起動
pm2 stop uptime-kumaPM2 で停止
pm2 logs uptime-kumaPM2 ログを表示
# 最新イメージをプル
docker pull louislam/uptime-kuma:2

# 現在のコンテナを停止及び削除
docker stop uptime-kuma
docker rm uptime-kuma

# 新しいイメージで再作成(ボリュームのデータは保持)
docker run -d \
  --restart=always \
  -p 3001:3001 \
  -v uptime-kuma:/app/data \
  --name uptime-kuma \
  louislam/uptime-kuma:2
# プル及び再作成
docker compose pull
docker compose up -d
cd uptime-kuma
git fetch --all
git checkout 2.1.3 --force
npm install --production
npm run download-dist
pm2 restart uptime-kuma
タイプ説明
HTTP(S)Webサイト可用性及び応答時間を監視
HTTP(S) キーワードレスポンス本文内の特定テキストをチェック
HTTP(S) JSON クエリJSONレスポンス値を検証
TCPポートTCPポートが開いて応答しているかチェック
Pingホスト可用性用のICMP ping
DNSDNS レコード解決を監視
Docker コンテナコンテナ ヘルス ステータスを監視
Steam ゲーム サーバーゲーム サーバー可用性をチェック
MQTTMQTT ブローカー接続性を監視
gRPCgRPC サービス ヘルス チェック
RadiusRADIUS 認証サーバー チェック
GameDigゲーム サーバー監視(複数プロトコル)
Pushハートビート エンドポイント経由のパッシブ監視
Group監視の論理グループ化
サービス説明
Slackチャネル ウェブフック及びボット通知
Discordウェブフックベース チャネル通知
TelegramボットAPI通知
Microsoft Teamsインバウンド ウェブフック通知
Mattermost自ホスト チャット統合
Rocket.Chatウェブフック通知
Google Chatスペース ウェブフック通知
Matrix分散チャット通知
サービス説明
Pushoverモバイル プッシュ通知
Gotify自ホスト プッシュ サーバー
ntfyHTTPベースのパブ/サブ通知
Pushbulletクロスデバイス プッシュ通知
Signalセキュア メッセージング通知
LINELINE Notify 統合
サービス説明
PagerDutyインシデント アラート及びオンコール
Opsgenieアラート管理及びエスカレーション
Squadcastインシデント管理
Splunk On-CallVictorOps アラート ルーティング
Better Stackアップタイム及びインシデント管理
サービス説明
SMTP Emailカスタム Email 通知
WebhookカスタムHTTPエンドポイント呼び出し
Home Assistantスマートホーム オートメーション トリガー
Appriseユニバーサル通知 ゲートウェイ
変数説明デフォルト
UPTIME_KUMA_PORTサーバー ポート3001
UPTIME_KUMA_HOSTバインド アドレス::
DATA_DIRデータ ストレージ ディレクトリ./data
TZタイムゾーンUTC
UMASKファイル パーミッション マスク0000
NODE_EXTRA_CA_CERTSカスタムCA証明書パス
SSL_CERTSSL 証明書パス
SSL_KEYSSLプライベート キー パス
機能説明
複数ページ異なるサービス用に個別のステータス ページを作成
カスタム ドメインステータス ページをカスタム ドメイン名にマップ
カスタムCSSカスタムCSSでステータス ページをスタイル
インシデント ポストステータス ページに表示されるインシデント レポート作成
メンテナンスメンテナンス ウィンドウのスケジュール
監視グループステータス ページ上の監視をグループに整理
# Python APIクライアントをインストール
pip install uptime-kuma-api
操作説明
監視追加プログラム的に監視を作成
監視編集監視構成を更新
監視削除監視を削除
一時停止/再開監視ステートを切り替え
ステータス取得現在の監視ステータスを取得
通知追加通知プロバイダーを構成
アップタイム取得アップタイム統計をクエリ
# compose.yaml
services:
  uptime-kuma:
    image: louislam/uptime-kuma:2
    container_name: uptime-kuma
    restart: always
    ports:
      - "3001:3001"
    volumes:
      - ./data:/app/data
      # オプション: Docker コンテナ監視
      # - /var/run/docker.sock:/var/run/docker.sock:ro
    environment:
      - TZ=UTC
機能説明
2FAログイン用の二要素認証
リバース プロキシNginx、Caddy、Traefik の背後にデプロイ
SSL/TLS組み込みSSL またはリバース プロキシ 終了
ログイン レート制限ブルートフォース攻撃保護
APIキートークンベースのAPI アクセス

リバース プロキシ セットアップ

Section titled “リバース プロキシ セットアップ”
server {
    listen 443 ssl;
    server_name status.example.com;

    location / {
        proxy_pass http://127.0.0.1:3001;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
        proxy_set_header Host $host;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        proxy_set_header X-Forwarded-Proto $scheme;
    }
}
コマンド説明
docker cp uptime-kuma:/app/data ./backupデータ ディレクトリをバックアップ
docker cp ./backup/. uptime-kuma:/app/dataバックアップからリストア
docker volume inspect uptime-kumaボリューム マウント ポイントを検索
問題解決策
UI にアクセス不可ポート バインディング確認: docker port uptime-kuma
NFSボリューム エラーネットワーク ファイル システムではなくローカル ディレクトリを使用
WebSocket エラーリバース プロキシ をWebSocket アップグレード用に構成
コンテナが起動しないログを確認: docker logs uptime-kuma
データ永続化が失われた-v uptime-kuma:/app/data ボリュームが使用されているか確認
Docker 監視に失敗docker.sock をマウント: -v /var/run/docker.sock:/var/run/docker.sock:ro

サポート対象プラットフォーム

Section titled “サポート対象プラットフォーム”
プラットフォームステータス
Linux(x64、ARM)サポート対象
Windows 10以上(x64)サポート対象
macOSサポート対象
Docker Desktopサポート対象
KubernetesDockerイメージ経由
FreeBSD/OpenBSDサポート非対象
Replit/Herokuサポート非対象
  • データ永続化のためにDocker ボリューム(NFSへのバインド マウントではなく)を使用
  • 本番環境使用のためにSSL終了を備えたリバース プロキシの背後にデプロイ
  • 最初のログイン後すぐに管理者アカウント用に2FAを有効化
  • 外部サービスの監視間隔を60秒以上に設定
  • ファイアウォール背後のサービスにはPush 監視タイプを使用
  • 冗長性のため最低2つの通知チャネルを構成
  • 内部及び外部の利用者向けに個別のステータス ページを作成
  • データ ディレクトリは定期的にバックアップ — すべての構成を含む
  • TZ 環境変数を使用してタイムゾーンを設定してオペレーション センターと一致させる