Skip to content
VDS · アプリとボット

自前のモニタリング:Uptime Kuma

TelegramやDiscordへの通知を備えたウェブサイトやサービスの可用性チェックの設定方法、本当に必要な時だけ通知が届くようにする設定を説明します。

更新日 2026年8月23日

マシンのコントロールパネルには CPU、トラフィック、メモリのグラフが表示されますが、サイトが応答しているか、データベースが生きているかは分かりません。そのためには独自の監視ツールが必要です。Uptime Kuma は最もシンプルな選択肢です。コンテナ 1 つ、Web インターフェース、数十種類の通知方法を備えています。

インストール

services:
  uptime-kuma:
    image: louislam/uptime-kuma:1
    container_name: uptime-kuma
    restart: unless-stopped
    volumes:
      - ./data:/app/data
    ports:
      - "127.0.0.1:3001:3001"
docker compose up -d

ポートは意図的にローカルインターフェースにバインドされています。監視パネルを外部に公開すべきではないからです。証明書とパスワードを設定した Web サーバー経由か、SSH トンネル経由で開いてください。

ssh -L 3001:127.0.0.1:3001 root@<machine-address>

その後、ブラウザで http://localhost:3001 にアクセスします。最初のユーザーが管理者になります。

何を監視するか

まずは小さく始めてください。さもないとノイズに埋もれてしまいます。

  • 各サイトのトップページの HTTP チェック — レスポンスコードと時間。
  • レスポンス内のキーワードチェックを伴う、重要な API の HTTP チェック。ページは 200 を返してもエラーを表示していることがあります。
  • データベースまたはゲームサーバーの TCP ポート。
  • 証明書の有効期限 — Kuma は期限切れの N 日前に警告します。
  • スケジュールタスク用の プッシュチェック。正常に実行されるとスクリプトが固有のアドレスにアクセスし、アクセスがなければアラートを受け取ります。スケジュールタスクと相性が良いです。

60 秒間隔でほぼ十分です。リトライは 2〜3 回にしてください。そうでなければ、1 つのネットワークパケットの損失で誤報が発生します。

サイトの監視を、そのサイトが稼働しているのと同じマシンに置かないでください。マシンがダウンすると監視ツールも一緒にダウンし、異常に気づけなくなります。外部サイト用には Kuma を別のマシンに置き、このマシンでは内部サービスのチェックのみを行ってください。

通知

Telegram ボットまたは Discord Webhook を設定し、通知セクションで追加してください。メールチャンネルは使用しないでください。マシンのポート 25、465、587 への外向き接続は、リクエストで開放するまで閉じられており、Kuma からのメールは単に送信されません — メールサーバーを参照してください。

役立つ習慣:

  • 「ダウン」と「証明書の期限切れ」でチャンネルを分ける。前者は今すぐの対応が必要で、後者は 1 週間以内に対応すれば十分です。
  • 復旧通知を有効にする。これがないと、障害が終わったかどうか分かりません。
  • セットアップ時にテストメッセージを送信する。問題の半分は誤ったトークンで、実際の障害時に初めて気づきます。

リソースとメンテナンス

コンテナは 150〜250 MB のメモリに収まり、VDS-1 で快適に動作します。データベースはチェック履歴とともに成長します。設定で保持期間を 90〜180 日に設定してください。そうでなければ 1 年でファイルがギガバイトに膨れ上がります — ディスク容量を参照してください。

./data ディレクトリにはサービスの状態全体が保存されます。バックアップに含めてください。30 件以上のチェックを手作業で復元するのは楽しくありません。

よくある間違い

  • ドメインではなく IP アドレスでチェックする。 証明書とバーチャルホストがチェックされず、DNS 障害が見逃されます。
  • 敏感すぎるしきい値。 2 秒の超過ごとにアラートが出ると、人は通知を読まなくなります。
  • パスワードなしでパネルを外部に公開する。 インフラ全体が見えてしまいます。アドレス、ポート、サービス名などです。