読み飛ばしてください
おはようございます、しなもんです。
みなさんは、自分が運営するサービスが止まってしまったことはありますか?
私はあります。
なんてこった。
この時は奇跡的に停止から5分で対応に回れたので良かったですが、
もしあの時すぐに気づいていなければ...
と思うと冷や汗が止まりません。
でももう大丈夫。そう、監視ツールがあるからね!
監視ツールとは
サービスを構成している各種システムや、サーバー自体のインフラを定期的にチェックしてくれるツールのことです。
もしサービスに何らかの異常が見られた場合は通知が発生したり自動的にお知らせが飛ぶようにできるので、早期復旧に大いに役立ちます。
早速構築してみよう
Dockerイメージを建てるだけなので一瞬でできます。多分。
前提環境
- Docker及びDocker-composeが動く環境
ファイルを用意する
ファイルを用意します。
workspace/
└─docker-compose.yml
適当なフォルダにdocker-composeファイルを設置すればOKです。
version: '3.3'
services:
uptime-kuma:
image: louislam/uptime-kuma:1
container_name: uptime-kuma
volumes:
- ./uptime-kuma-data:/app/data
ports:
- 3001:3001 # <Host Port>:<Container Port>
restart: always
networks:
- default
networks:
default:
ポート番号は適宜変えると良いでしょう。
コンテナを起動する
$ docker-compose up
で起動できます。
初期設定
まずは設定画面にアクセスします。ブラウザを使います。
http://localhost:3001
※ポート番号は設定したものに適宜変えてください。
Adminアカウントを作るためのフォームが現れるので、適当に入力して作成します。
作成するとダッシュボードに入れます。
監視するものを追加する
左上の「監視の追加」をクリックします。
フォームが現れるので適当に入力します。
正直めちゃくちゃ細かくいじれます。
色々触ってみてください。
せっかくなので通知先も設定する【Discord】
「通知設定」から通知先を指定できます。
「通知タイプ」を開くと分かる通り、めちゃくちゃ種類がありますが、
今回はDiscordに通知させてみようと思います。
Discordの送信させたいチャンネルの設定から、ウェブフックURLを取得します。
「新しいウェブフック」を押すと増えるので、URLをコピーします。
この項目に貼り付け、残りの項目を設定します。
ちなみに動作するとこんな感じです。
ステータスページについて
ダッシュボードとは別に、ステータスページというものがあります。
管理人が監視を管理するためのダッシュボードと異なり、
どちらかというとサービスを使うユーザーがステータスを確認するための公開用ページです。
やってることはこのサイトと同じです。
このページはAdminアカウントが無くても閲覧でき、リバースプロキシで外部に公開できます。
切り替えは右上からできます。
「新しいステータスページ」を追加します。
適当に入力します。
この「監視の追加」の項目に、先ほど作った監視サービスを追加します。
左下の保存を押すと、ステータスページが完成します。
外部にステータスページを公開するにはCloudflaredを使った簡単な方法があるので、後日別記事にまとめます。
まとめました。↓
タグでちょっとオシャレに
監視するものにはタグを付けられます。
私の本番環境では、マシン名やジャンル、リージョンの場所などをまとめています。
ちょっとオシャレになります。
メンテナンスについて
メンテナンスするときはちゃんと設定することで、期間をユーザーに知らせることができたり、無駄に通知が飛んでいかないようになります。
右上から設定します。
メンテナンスを追加し、フォームを適当に入力します。
タイムゾーンをAsia/Tokyoにするのを忘れないで下さい。
時間になるとちゃんとメンテナンスが発動します。
最後に
Uptime Kumaをサクッと構築してみました。
非常に簡単に監視ツールを起動でき、ブラウザから操作できるので、とても助かっています。
皆さんも監視ツールを使って素敵なエンジニアライフを。