Ubuntu Weekly Recipe

第707回 シンプルでおしゃれなモニタリングツールUptime Kuma

この記事を読むのに必要な時間:およそ 3 分

多様なアラート先のサポート🐻‍❄️

Uptime Kumaはアラート機能にも対応しています。アラート先は充実していて15個以上のサービス・プロトコルに対応しています。SMTPやSlack,Mattermostあたりは定番でしょう。また,Webhookもサポートしているため,大抵のサービスはなんとかなります。

Python製の通知ライブラリであるAppriseにも対応しており,これらを組み合わせればさらに多くの(50個以上の)サービスに対応できます。ただしAppriseを使うためには,サービスごとのURLの記述方法を学習する必要があります。

図7 Telegramへの通知の設定UI

図7

Slackにログインした状態でSlackアプリの作成ページに移動します。あとは画面の指示に従ってアプリを作成し,⁠Incoming Webhooks」を有効化し,⁠Add New Webhook to Workspace」で特定のワークスペース向けのWebhook URLを取得します。

図8 通知用のSlackアプリの作成

図8

図9 Incomming Webhooksの有効化

図9

あとは取得したURLをUptime Kumaの「Webhook URL」に入力するだけです。

図10 適当に設定を変更して,意図的に「Down」状態を発生させる

図10

図11 Slackの指定したチャンネルにDownとUpの通知が届く

図11

ダッシュボードにはターゲットごとの詳細なモニタリングステータスが表示されますが,それとは別により簡易的な「ステータスページ」を作ることも可能です。まずは画面右上の「ステータスページ」を選択すると,空のステータスが画面が表示されます。

図12 ⁠ステータスページ編集」でステータスページの編集を開始する

図12

ステータスページは「カテゴリ名」を入力し,そこに監視対象を追加していきます。最後に保存すると,次のような画面が構築されます。

図13 サービスが稼働しているかどうかを一覧で見たいだけならステータスページのほうが見やすい

図13

ログイン時のホーム画面をダッシュボードにするかステータスページhttps://example.com/statusにするかは,設定画面から変更可能です。

なお,ステータスページはログインしなくても表示できます。ラベル等に公開できない情報が含まれないようにしましょう。⁠設定」画面から,Google等の検索エンジンのインデックス対象外とする設定も可能ではありますが,このあたりはあくまで気休め程度だと思っておくべきです。

言い換えると,詳細な情報は表示せず,サービスが動いているかどうかだけを任意の利用者に伝えたい場合に,ステータスページを利用しましょう。

証明書やリバースプロキシとバックアップ🐾

Uptime KumaのDockerイメージは環境変数によってサーバー証明書の設定を行えます。またリバースプロキシーを用意して,証明書はそちらで用意する方法もあるでしょう。

また,設定画面からは「Backup」で設定情報一式をJSONファイルにエクスポートできます。ただしJSONファイルにはトークン情報等が暗号化されずに保存されてしまう点には注意してください。docker-compose実施時は,カレントディレクトリにuptime-kumaディレクトリが作られます。このディレクトリを丸々バックアップしてしまうのもひとつの手でしょう。

このように,Uptime Kumaはできることが限られてはいるものの,⁠最低限ほしかったもの」は一通りそろっていますし,最低限であるが故に設定がとても簡単です。自前の監視システムはほしいし,社内等の限定ネットワークへのアクセスも必要だけど,いろいろ考えるのが面倒って人におすすめのツールです。

著者プロフィール

柴田充也(しばたみつや)

Ubuntu Japanese Team Member株式会社 創夢所属。数年前にLaunchpad上でStellariumの翻訳をしたことがきっかけで,Ubuntuの翻訳にも関わるようになりました。