自分のサービスが停止したら通知を受け取る (Uptime Kuma)
Webサイトやゲームサーバーが停止したときにDiscordですぐに通知を受け取りたい場合は、Uptime Kumaが使えます。定期的に自分のサービスにアクセスしてみて、応答がなければ知らせてくれる無料のプログラムです。Dockerでインストールします。
1. インストール
Dockerがない場合は、Dockerのインストールと使い方を参考に先にインストールします。
docker run -d --name uptime-kuma --restart unless-stopped \
-p 127.0.0.1:3001:3001 \
-v uptime-kuma:/app/data \
louislam/uptime-kuma:1
127.0.0.1にだけ接続して、外部からは直接アクセスできないようにしています。管理画面は、次の2つの方法のどちらかで開きます。
2. 管理画面を開く
方法A. ドメインで開く (継続して使うなら推奨)
Webサイトを立ち上げるのとおりにNginxとHTTPSを設定し、proxy_passをhttp://127.0.0.1:3001に合わせます。Uptime Kumaはリアルタイム接続(WebSocket)を使うため、location /の中に次の行もあわせて入れます。
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;
}
方法B. SSHトンネルで一時的に開く
自分のPCのPowerShellで実行し、ブラウザーでhttp://localhost:3001にアクセスします。
ssh -N -L 3001:127.0.0.1:3001 username@server-ip
初めてアクセスすると、管理者アカウントを作成する画面が表示されます。すぐに作成してください。
3. 監視するサービスを追加
新しいモニターを追加をクリックし、種類を選びます。
| 監視対象 | モニターの種類 | 入力 |
|---|---|---|
| Webサイト | HTTP(s) | https://my-domain |
| マインクラフトなどのゲームサーバー | TCP Port | サーバーのIP、ポート25565 |
| サーバーが起動しているか | Ping | サーバーのIP |
確認の間隔は、デフォルトの60秒で十分です。
4. Discordで通知を受け取る
- Discordのチャンネル設定 → 連携サービス → ウェブフック → 新しいウェブフック → ウェブフックURLをコピー
- Uptime Kumaの右上のプロフィール → 設定 → 通知 → 通知設定
- 通知タイプはDiscord、コピーしたウェブフックURLを貼り付けてテストで確認してから保存
- 各モニターの編集画面で、この通知をオンにします。
知っておくこと
- Uptime Kumaが監視しているサービスと同じサーバーにあると、サーバー自体が停止したときは通知も送れません。サーバー自体の状態は、マイページでも確認できます。
- 監視の記録は
uptime-kumaボリュームに保存されます。アップデートは、docker pull louislam/uptime-kuma:1の後にコンテナを削除し、同じコマンドで再実行すれば完了です。(ボリュームを削除しない限り、記録は残ります)