「動いているはず」という運営者の主観は、技術の世界では無力だ。サーバーが起動していても、Nginxがハングアップしているかもしれない。SSL証明書が期限切れを起こしているかもしれない。
無常なインターネットの海において、node01の生存を客観的に証明するためには、外部からの継続的な観測が必要だ。本稿では、自前で構築できる監視ツール「Uptime Kuma」の導入と、その通信の保護について記す。
1. 外部監視の必要性とセキュリティの担保
node01の内部でプロセスを監視するだけでは、Cloudflareのプロキシ設定や証明書の不備を検知できない。ユーザーと同じ「外側」のネットワークから定期的にリクエストを送り続けることで、初めてサイトの生存が証明される。
監視環境の構築にあたっては、node01とは別のインスタンスが理想だが、まずはnode01上で独立したコンテナとして稼働させる手順を記す。
また、Uptime Kumaの管理画面にはログイン情報や通知トークンが含まれる。これらを平文のHTTPで流すのは、実直な運用とは言えない。既存のNginxをリバースプロキシとして機能させ、Cloudflare Origin CA証明書を用いたHTTPS環境下で運用する。
2. DockerとNginxによるリバースプロキシ
既存の docker-compose.yml に Uptime Kuma を追加し、Nginx経由でサブドメイン(monitor.it-mujo.com)を割り当てる。
docker-compose.yml への追記
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
restart: always
volumes:
- ./uptime-kuma:/app/data
# 外部にポートは晒さず、Nginx経由でのみアクセスを許可する
Nginx リバースプロキシ設定
サブドメイン用の設定ファイル(monitor.conf)を作成。WebSocket通信(Upgradeヘッダ)を許可し、リアルタイムな監視状況の反映を確保する。

3. 監視設定と通知の自動化
HTTPS化された管理画面にアクセスし、監視対象と通知先を設定する。
- HTTP(S)ステータス:
https://it-mujo.comを定期的に監視。 - SSL証明書の有効期限: 期限切れを事前に察知し、警告を発する。
- 通知連携: DiscordのWebhook APIを使用。異常を察知した瞬間、host(Chromebook)へ即座に通知が届く体制を整える。

もし特定のメッセージサービスに依存したくない場合は、Cloudflare Email Routingを活用したEmail通知も一つの選択肢となるだろう。
こうした監視設定のバックアップ(JSON)には、機密情報が含まれる。取り扱いには細心の注意を払う。こうした微細な配慮の積み重ねこそが、実直なサーバー運用を形作る。
結び
監視を始めると、自分のサイトがいかに多くの「波」に晒されているかが可視化される。
安定稼働を支えるのは、高度な技術だけではない。日々の微かな変化に気づき、静かに対応し続ける実直さである。
執筆環境: host (Chromebook / Debian 13)
公開基盤: node01 (Vultr / Debian 13 / Docker)
接続環境: NordVPN (NordLynx)

コメントを残す