LinuxでUptime Kumaを使用した稼働監視ツールの設定方法

コンピュータでいっぱいのデスクの写真.

Uptime Kumaはシンプルでありながら強力な稼働監視ツールです。これは、ローカルネットワークまたは広範なインターネット上でホストしているすべてのサービスを追跡することを可能にします。

この記事では、UbuntuとDockerを使用してローカルネットワーク上にUptime Kumaをインストールおよび展開する方法を示します。また、Uptime Kumaインスタンスをカスタマイズして、ステータス通知をTelegramに送信する方法も紹介します。

目次

  • Uptime Kumaを使用する理由
  • Uptime Kumaのインストール
  • Nginxを使用したUptime Kumaのリバースプロキシの作成
  • Uptime Kumaの設定とモニターの追加
  • Uptime Kumaの外部通知の設定

Uptime Kumaを使用する理由

Uptime Kumaは、ウェブサーバーを追跡してpingを送信するだけでなく、Dockerコンテナの健康状態をチェックすることもできます。これにより、Uptime Kumaはすべてのネットワークサービスのための理想的なオールインワンウェブポータルとなります。

Uptime Kumaの最大の利点の1つは、デフォルトで堅牢な通知システムが付属していることです。これは、異常を発見したときに、さまざまなチャネルを通じて自動的にメッセージを送信するように稼働監視を設定できることを意味します。

動作中のUptime Kumaインスタンスのスクリーンショット.

Uptime Kumaのインストール

DockerとDocker Composeの取得

まず、DockerとDocker ComposeリポジトリのGPG署名キーを取得します:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg |sudo gpg --dearmor-o/etc/apt/keyrings/docker.gpg  
sudochmod a+r /etc/apt/keyrings/docker.gpg

新しいリポジトリファイルを「/etc/apt/sources.list.d/」に作成します:

sudonano/etc/apt/sources.list.d/docker.list

新しいリポジトリファイルに以下の行を貼り付けます:

deb [arch=amd64 signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu jammy stable

Ubuntuシステムのパッケージリポジトリを更新およびアップグレードします:

sudo apt update &&sudo apt upgrade

DockerおよびDocker Composeパッケージとその依存関係をインストールします:

sudo apt install docker-ce docker-ce-cli containerd.io docker-compose-plugin docker-buildx-plugin nginx git

現在実行中のユーザーがDockerおよびDocker Composeを実行するための適切な権限を持っていることを確認します:

sudo usermod -aGdocker ramces

Uptime Kumaの取得とビルド

Uptime Kuma Dockerコンテナ用の新しいディレクトリを作成します。これには、インスタンスのレシピファイルが含まれます:

mkdir uptime-kuma &&cd ./uptime-kuma

中に入ったら、お気に入りのテキストエディタを使用して新しい「docker-compose.yml」を作成します:

nano ./docker-compose.yml

新しいComposeファイルに以下のコードブロックを貼り付けます:

---  
version: "3.8"  
services:  
  uptime-kuma:  
    image: louislam/uptime-kuma:1  
    container_name: uptime-kuma  
    volumes:  
      - uptime-kuma:/app/data  
    ports:  
      - 3001:3001  
    restart: always  
volumes:  
  uptime-kuma: null

新しいUptime KumaインスタンスのDockerコンテナをビルドします:

sudodocker compose up -d

Nginxを使用したUptime Kumaのリバースプロキシの作成

Nginxでリバースプロキシを作成し、Uptime Kumaに公開アクセス可能なURLでアクセスできるようにします。

お気に入りのテキストエディタを使用して新しいNginxサイト設定ファイルを作成します:

sudonano/etc/nginx/sites-available/uptimekuma

新しいサイト設定ファイルに以下のコードブロックを書き込みます:

server {  
        server_name uptime.myvpsserver.top;  
        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 X-Forwarded-For $proxy_add_x_forwarded_for;  
                proxy_set_header Host $host;  
}  
}

Nginxの「sites-available」フォルダーから「sites-enabled」ディレクトリにサイト設定ファイルをリンクします:

sudoln-s/etc/nginx/sites-available/uptimekuma /etc/nginx/sites-enabled

新しい設定を適用するためにNginxサーバーデーモンを再起動します:

sudo systemctl restart nginx

SSL証明書のインストール

まず、システムにコアスナップパッケージが正常に動作していることを確認する必要があります:

sudo snap install core

電子前線財団のcertbot用のスナップをインストールします。これは、リバースプロキシのSSL証明書を自動的にリクエストおよび維持できる小さなツールです:

sudo snap install certbot --classic

certbotが正しく動作しているかどうかを確認するために、新しいcertbotインストールをEFFに登録します:

sudo certbot register --agree-tos-m [email protected]

新しいリバースプロキシ用の新しいSSL証明書をリクエストします:

sudo certbot --nginx-d uptime.myvpsserver.top

Uptime Kumaの設定とモニターの追加

ウェブブラウザでそのアドレスに移動して、Uptime Kumaインストールが正常に動作しているかどうかを確認します。

Uptime Kumaのデフォルトのランディングページのスクリーンショット.

新しい管理者アカウントの詳細をフォームに入力し、「作成」をクリックしてインスタンスに進みます。

新しいインスタンスの管理者の詳細を示すスクリーンショット.

ページの左上隅にある「新しいモニターを追加」ボタンをクリックします。

「新しいモニターを追加」ボタンを強調表示するスクリーンショット.

これにより、現在のページに新しいサブウィンドウが開き、監視したいサービスの種類を指定できます。たとえば、「モニタータイプ」の値を「HTTP(S)」から「TCPポート」に変更すると、特定のポートが現在開いているかどうかをチェックするモニターが作成されます。

利用可能なさまざまなモニタータイプを示すスクリーンショット.

監視したいマシンの詳細を入力します。

ページの下部までスクロールし、「保存」をクリックして新しいモニターを開始します。

シンプルなポートチェックモニターの完全な詳細を示すスクリーンショット.

Uptime Kumaの外部通知の設定

Uptime Kumaインスタンスのメインページに移動し、ページの右上隅にあるユーザーアイコンをクリックします。

画面の右上隅にあるユーザーアイコンのバッジを強調表示するスクリーンショット.

ページのドロップダウンメニューから「設定」オプションをクリックします。

ページの新しいサブウィンドウで「通知」カテゴリを選択します。

通知カテゴリを強調表示するスクリーンショット.

Telegram通知サービスの作成

「通知の設定」ボタンをクリックします。デフォルトでは、これによりTelegramアカウントを使用して通知ボットをリンクおよび作成できる小さなウィンドウが表示されます。

新しい通知アラートの名前を提供し、「ボットトークン」テキストボックスの下にあるBotFatherリンクをクリックします。

Telegram BotFatherリンクを強調表示するスクリーンショット.

BotFatherのTelegramページで「メッセージを送信」ボタンをクリックします。

BotFatherの初期プロンプトを示すスクリーンショット.

注意: 「メッセージを送信」ボタンはTelegram特有のリンクであり、Telegramがマシンで実行されている場合にのみ機能します。LinuxマシンにTelegramをインストールする方法を学びます。

これにより、新しいチャットウィンドウが開き、BotFatherを使用して通知ボットを作成できます。プロンプトに「/newbot」と入力し、Enterを押します。

Uptime Kumaインスタンスにリンクするボットの名前を提供します。

新しい通知ボットの適切なユーザー名を書きます。このため、BotFatherはアンダースコア(_)以外の特殊文字を受け付けません。

BotFatherが強調表示したテキストをクリックしてクリップボードにコピーします。

新しい通知ボットのユニークトークンを強調表示するスクリーンショット.

新しいボットが正しく動作しているかどうかを確認するために、そのユーザー名を検索し、会話を開始します。

新しいボットとの初期会話履歴を示すスクリーンショット.

Uptime Kumaインスタンスに戻り、「ボットトークン」テキストボックスにプライベートボットトークンを貼り付けます。

「チャットID」テキストボックスの下にある「自動取得」ボタンをクリックします。

自動取得ボタンを強調表示するスクリーンショット.

Uptime Kumaウィンドウの下部までスクロールし、「テスト」をクリックして、Uptime Kumaが新しいボットと通信できるかどうかを確認します。

動作中のUptime Kuma Telegramボットを示すスクリーンショット.

「保存」をクリックして、Uptime Kumaへの変更をコミットします。

Docker上でシンプルなサービスステータスデーモンをホストすることは、コンテナ化されたウェブサービスを展開する際の氷山の一角に過ぎません。ownCloudを使用して独自のクラウドオフィスをホストする方法や、Stikkedを使用して独自のPastebinを実行する方法を学びます。

画像クレジット: Boitulmelo via Unsplash (背景) Github (ロゴ)。すべての変更とスクリーンショットはRamces Redによるものです。