【ITニュース解説】#DAY 2: Deploying the Monitoring Dashboard - Uptime Kuma
2025年09月27日に「Dev.to」が公開したITニュース「#DAY 2: Deploying the Monitoring Dashboard - Uptime Kuma」について初心者にもわかりやすく解説しています。
ITニュース概要
ウェブサイトやサーバーを監視する「Uptime Kuma」をDockerコンテナでUbuntuサーバーにデプロイした。リアルタイム監視ダッシュボードを起動し、アクセス可能であることを確認。これにより、サービス稼働状況を常時把握できるシステム基盤が整った。
ITニュース解説
Uptime Kumaという監視ツールをUbuntuサーバーに導入し、ウェブサイトやサーバーの稼働状況をリアルタイムで把握するための基盤を構築する手順についての解説だ。Uptime Kumaは、直感的で分かりやすいインターフェースを持ち、システムがダウンしたりパフォーマンスに問題が発生したりした場合に、メールやSMS、Discord、Slackなどの様々な方法で通知してくれる便利なツールである。今回の目的は、このUptime KumaをDockerという技術を使って手軽に導入し、その管理画面にウェブブラウザからアクセスできるようにすることだった。
まず、Uptime Kumaを導入するためにDockerという技術が使われた。Dockerは、アプリケーションとその実行に必要な環境を「コンテナ」という一つのパッケージにまとめて隔離する技術だ。これにより、異なる環境でも同じようにアプリケーションを動作させることができ、インストール時の複雑な設定や、他のソフトウェアとの競合といった問題を避けられるメリットがある。Uptime Kumaの公式Dockerイメージを利用することで、環境構築の手間を大幅に削減し、素早く監視システムを稼働させることが可能になる。
Uptime Kumaのデプロイは、一つのDockerコマンドを実行することで完了する。具体的には、以下のコマンドが使用された。
sudo docker run -d --restart=always -p 3002:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:1
このコマンドにはいくつかの重要なオプションが含まれている。
-d は「デタッチモード」を意味し、Uptime Kumaコンテナをバックグラウンドで実行させる。これにより、コマンドを実行したターミナルを閉じてもコンテナは稼働し続けるため、サーバーの監視を中断することなく続けられる。
--restart=always は、サーバーの再起動時やコンテナが何らかの理由で停止した場合に、常に自動的にコンテナを再起動させる設定だ。これにより、監視システムが常に稼働し続ける信頼性を確保できる。
-p 3002:3001 は「ポートマッピング」と呼ばれる設定で、ホストOS(Ubuntuサーバー)の3002番ポートにアクセスがあった際に、それをDockerコンテナ内部の3001番ポートに転送するように指示している。これにより、外部から特定のポートを通してUptime Kumaのウェブインターフェースにアクセスできるようになる。
-v uptime-kuma:/app/data は「名前付きボリューム」を設定するオプションだ。uptime-kumaという名前のボリュームを作成し、それをコンテナ内の/app/dataディレクトリにマウントしている。Uptime Kumaが生成する監視データや設定ファイルはすべてこのボリュームに保存されるため、もしコンテナが削除されたり再作成されたりしても、重要なデータが失われることなく永続的に保持される。これは監視ツールにおいて非常に重要な機能だ。
--name uptime-kuma は、起動するコンテナにuptime-kumaという分かりやすい名前を付けている。これにより、複数のコンテナが稼働している場合でも、対象のコンテナを識別しやすくなる。
louislam/uptime-kuma:1 は、使用するDockerイメージの指定である。louislam/uptime-kumaがイメージ名、:1がバージョンタグを示している。このイメージがUptime Kumaアプリケーション本体を含んでいる。
コマンド実行後、コンテナが意図通りに動作しているかを確認するために、sudo docker psというコマンドが使われた。このコマンドは現在稼働中のDockerコンテナのリストを表示し、Uptime Kumaコンテナが正常に「Up」(稼働中)の状態であることを確認できる。これにより、次のステップに進む前に、サービスが問題なく起動しているという自信が得られる。
次に、Uptime Kumaのウェブインターフェースに外部からアクセスできるようにするためのネットワーク設定が行われた。UbuntuサーバーにはUncomplicated Firewall(UFW)というファイアウォール機能が搭載されており、デフォルトでは外部からの不要な通信をブロックしている。そのため、Uptime Kumaにアクセスするための特定のポートを開放する必要がある。この手順では、sudo ufw allow 3001/tcpというコマンドを実行し、外部からのHTTPトラフィックがサービスに到達できるよう、3001番ポートへのTCP接続を許可するルールが設定された。
これらの設定が完了した後、ウェブブラウザを開き、http://192.168.92.134:3002というURLにアクセスした。これは、サーバーのIPアドレス(192.168.92.134)と、Dockerで設定したホストの公開ポート(3002番ポート)を組み合わせたものだ。結果として、Uptime Kumaの初期設定画面が無事に表示され、サービスがネットワーク経由で正常にアクセス可能であることが確認された。これにより、監視ダッシュボードが稼働し、リアルタイムでのサービス監視を開始するための準備が整ったことになる。
今回のデプロイを通して、いくつかの重要な教訓が得られた。まず、Dockerのようなコンテナ化技術を使用することで、アプリケーションのデプロイが非常に簡単になり、複雑な手動設定を避けて迅速かつ確実にサービスを立ち上げられることが分かった。また、永続ストレージとしての名前付きボリュームの重要性も再認識された。これにより、コンテナの再起動や交換があっても監視データが安全に保持される。さらに、ファイアウォール設定の適切な実施が、外部からのアクセスを可能にする上で不可欠であることも確認された。そして、docker psコマンドでコンテナの稼働状況を確認することは、問題発生時のトラブルシューティングだけでなく、サービスが期待通りに動いているという安心感を得るためにも重要だ。最後に、ウェブベースのダッシュボードが管理の起点となり、今後の監視対象の追加や通知設定の簡素化に繋がることが示された。
この成功により、リアルタイム監視のためのUptime Kumaダッシュボードが稼働し、今後のサービス監視や、問題発生時に即座に通知を受け取るための基盤が確立されたと言える。