存在を観測する:Uptime Kumaによるnode01の死活監視

Uptime Kumaの監視ダッシュボード画面。it-mujo.com が正常に稼働しており、安定した応答速度を維持していることを示している。

「動いているはず」という運営者の主観は、技術の世界では無力だ。サーバーが起動していても、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ヘッダ)を許可し、リアルタイムな監視状況の反映を確保する。

Nginxの設定ファイル編集画面。サブドメイン monitor.it-mujo.com を Uptime Kuma コンテナへ転送するリバースプロキシ設定の様子。
監視画面をHTTPS化し、安全な経路で観測データにアクセスするためのリバースプロキシ構成。

3. 監視設定と通知の自動化

HTTPS化された管理画面にアクセスし、監視対象と通知先を設定する。

  • HTTP(S)ステータス: https://it-mujo.com を定期的に監視。
  • SSL証明書の有効期限: 期限切れを事前に察知し、警告を発する。
  • 通知連携: DiscordのWebhook APIを使用。異常を察知した瞬間、host(Chromebook)へ即座に通知が届く体制を整える。
Discordに届いたUptime Kumaからのテスト通知。即時通知網が正常に機能していることを示している。
Discordに届いたテスト通知。監視システムとの正常な連携を確認する。

もし特定のメッセージサービスに依存したくない場合は、Cloudflare Email Routingを活用したEmail通知も一つの選択肢となるだろう。

こうした監視設定のバックアップ(JSON)には、機密情報が含まれる。取り扱いには細心の注意を払う。こうした微細な配慮の積み重ねこそが、実直なサーバー運用を形作る。


結び

監視を始めると、自分のサイトがいかに多くの「波」に晒されているかが可視化される。
安定稼働を支えるのは、高度な技術だけではない。日々の微かな変化に気づき、静かに対応し続ける実直さである。


執筆環境: host (Chromebook / Debian 13)
公開基盤: node01 (Vultr / Debian 13 / Docker)
接続環境: NordVPN (NordLynx)

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA