Ubuntu Weekly Recipe

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

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

Uptime Kumaは登場して一年足らずな新進気鋭のモニタリングツールです。ただし登場して間もないとは思えないほど完成度は高く,そして「とりあえずこれだけやっときたい」という用途にちょうどよい塩梅の機能をもっています。今回はこのUptime Kumaをインストールしてみましょう。さぁ,🐻の時間だ!

シンプルとかそんな甘言に騙されない(・(ェ)・)

いわゆる「モニタリングツール」と呼ばれるものは,おおよそ次のような機能のすべて,もしくはいずれかが備わっています。

  • データの取得
  • データの収集
  • データの表示
  • 監視対象の管理
  • 状態監視
  • アラートの通知

たとえばPrometheusはExporterが各ノードのデータの取得を行い,Prometheus本体がそれを収集してデータベースに保存します。データの表示はPrmetheus本体でも行えるものの,より高機能で見やすい表示にするためにGrafanaと合わせて使うことがよく行われます。また,アラートの通知はAlertManagerが担当します。

他のモニタリングツールも大なり小なりその設定方法は異なるものの,基本的な部分はおおよそ同じです。変わるとしたら,エージェントをノードにインストールするPush型か,本体側で監視対象を管理するPull型かの違いぐらいでしょうか。

いずれにせよ,監視方法や監視対象は環境によって大きく変わるため,どんなツールも拡張性が高くなるよう作られています。そして自由度が高くなればなるほど,⁠何がベストプラクティスか」⁠要するにどれをやればいいの?」という部分で初心者は躓くわけです。

今回紹介するUptime Kumaは,Webサービスを軽く死活監視できれば良いという人向けのとてもわかりやすいサービスです。一度サービスを立ち上げたら,Web UIで2,3項目入力するだけで,HTTPSの疎通確認,証明書のチェック,レスポンスの判定,外部からのPushの受信監視などを実現できます。もちろんSlackやMattermost,メール,LINEなど各種メッセージングサービスへの通知も対応しています。

言い方を変えると,実際にモニタリングできるのはほぼ上記だけです。そもそもユーザー管理機能もないためログインできるのは一人だけとなります。明示的なログアウトの機能もありません。現時点では,個人でちょっとしたサーバー類を監視しておきたい,という程度の利用が最もマッチしていると思います。

ちなみに「Kuma」はその名の通り「熊」のことです。花咲く森の道で出会うあれです。

Uptime Kumaのデプロイ🧸

さて,Uptime Kumaのデプロイですが,実はサービスの構成そのものもシンプルでDockerインスタンスひとつで済みます。データ類はDockerボリュームに保存し,データベースはSQLite3を使っているため,立ち上がるのはNode.jsプロセスだけです。

結果的に,そのデプロイ方法は第704回の高機能でMarkdownや作図もサポートするWiki.jsとほとんど同じになります。

まず必要に応じて,次の手順でLXDインスタンスを立ち上げておくと良いでしょう。もちろんLXDを使わないのであれば,ここは丸々スキップしてかまいません。

$ lxc launch ubuntu:20.04 kuma
$ lxc exec kuma -- sh -c 'apt update && apt full-upgrade -y && apt autoremove -y'
$ lxc config set kuma security.privileged true
$ lxc config set kuma security.nesting true
$ lxc restart kuma
$ lxc shell kuma
# sudo -i -u ubuntu

システムにはDockerとdocker-composeをインストールしておきましょう。Ubuntuリポジトリのパッケージでも良いですし,Docker本家のバイナリでもかまいません。

$ sudo apt install -y docker.io docker-compose

Uptime KumaはDocker Hubにイメージが構築されていますし,docker-compose.ymlもGitHubのリポジトリに用意されています。今回はdocker-composeを使うことにしましょう。

$ mkdir ~/kuma && cd $_
$ wget https://raw.githubusercontent.com/louislam/uptime-kuma/master/docker/docker-compose.yml
$ sudo docker-compose up -d

これで準備は完了です。http://サーバーのIPアドレス:3001/にアクセスすれば,初回ログイン画面が表示されます。

著者プロフィール

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

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