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のインストール
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 stableUbuntuシステムのパッケージリポジトリを更新およびアップグレードします:
sudo apt update &&sudo apt upgradeDockerおよび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 ramcesUptime 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 -dNginxを使用した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 nginxSSL証明書のインストール
まず、システムにコアスナップパッケージが正常に動作していることを確認する必要があります:
sudo snap install core電子前線財団のcertbot用のスナップをインストールします。これは、リバースプロキシのSSL証明書を自動的にリクエストおよび維持できる小さなツールです:
sudo snap install certbot --classiccertbotが正しく動作しているかどうかを確認するために、新しいcertbotインストールをEFFに登録します:
sudo certbot register --agree-tos-m [email protected]新しいリバースプロキシ用の新しいSSL証明書をリクエストします:
sudo certbot --nginx-d uptime.myvpsserver.topUptime Kumaの設定とモニターの追加
ウェブブラウザでそのアドレスに移動して、Uptime Kumaインストールが正常に動作しているかどうかを確認します。

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

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

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

監視したいマシンの詳細を入力します。
ページの下部までスクロールし、「保存」をクリックして新しいモニターを開始します。

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

ページのドロップダウンメニューから「設定」オプションをクリックします。
ページの新しいサブウィンドウで「通知」カテゴリを選択します。

Telegram通知サービスの作成
「通知の設定」ボタンをクリックします。デフォルトでは、これによりTelegramアカウントを使用して通知ボットをリンクおよび作成できる小さなウィンドウが表示されます。
新しい通知アラートの名前を提供し、「ボットトークン」テキストボックスの下にあるBotFatherリンクをクリックします。

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

注意: 「メッセージを送信」ボタンはTelegram特有のリンクであり、Telegramがマシンで実行されている場合にのみ機能します。LinuxマシンにTelegramをインストールする方法を学びます。
これにより、新しいチャットウィンドウが開き、BotFatherを使用して通知ボットを作成できます。プロンプトに「/newbot」と入力し、Enterを押します。
Uptime Kumaインスタンスにリンクするボットの名前を提供します。
新しい通知ボットの適切なユーザー名を書きます。このため、BotFatherはアンダースコア(_)以外の特殊文字を受け付けません。
BotFatherが強調表示したテキストをクリックしてクリップボードにコピーします。

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

Uptime Kumaインスタンスに戻り、「ボットトークン」テキストボックスにプライベートボットトークンを貼り付けます。
「チャットID」テキストボックスの下にある「自動取得」ボタンをクリックします。

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

「保存」をクリックして、Uptime Kumaへの変更をコミットします。
Docker上でシンプルなサービスステータスデーモンをホストすることは、コンテナ化されたウェブサービスを展開する際の氷山の一角に過ぎません。ownCloudを使用して独自のクラウドオフィスをホストする方法や、Stikkedを使用して独自のPastebinを実行する方法を学びます。
画像クレジット: Boitulmelo via Unsplash (背景) Github (ロゴ)。すべての変更とスクリーンショットはRamces Redによるものです。