地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

【Mackerel】入門する

f:id:ryuichi1208:20210722103653p:plain

背景

Mackerelに触れ始めたので概要だけでも入門。監視ツールはZabbixとPrometheusとElasticsearch(beats)を触ったことあるのとN社の出している独自OS用の監視ツールに触れていたという経験があると言った感じ。基本的なメトリクスというよりもMackrel独自の用語だったりツール(プラグインとかいってるやつ?)がどういうものなのかを調べていく。

テックカンファレンスでよくブース出してたりCM流れてたりするのでなんとなくは知っていたしデモを触ったことはあるので

Mackrelとは

ja.mackerel.io

株式会社はてなが提供しているサーバ管理・監視ツールで以下のような特徴を持つ。

* デフォルトで様々なメトリクスが取得されており、閾値を設定して監視することができる。(CPU,Network,Disk,Memory)
* プロセスやログ監視などはサーバー上の設定ファイルに設定を追加することでとても簡単に実現できる。
* プラグインを利用することでかなりの種類のミドルウェアのメトリクス可視化が可能

気になる料金だが以下のような感じ。

ja.mackerel.io

ホストの概念は以下でこの単位での課金となるとちょっとお高いと感じてしまった。特に重要じゃないサーバに関してはここまで無料で使えるOSSに移行したくなるんだろうなというのもちょっと分かる。

* mackerel-agentがインストールされた物理サーバーまたは仮想サーバー1台につき1スタンダードホスト
* VM系インテグレーション(AWS EC2, AzureVM) 1インスタンスにつき1スタンダードホスト
* ホストメトリック数が200を超える場合、200メトリックごとに1スタンダードホスト
* サービスメトリック数が200メトリックにつき1スタンダードホスト
* 外形監視数が20項目につき1スタンダードホスト

プラグイン

Mackerelはデフォルトで取れるメトリクス以外にもpluginを利用して独自の値を取ることも可能となっている。mkr plugin installコマンドでインストールできると書いてあり独自のプラグインマネージャ的なのがいる模様。

mackerel.io

バージョン管理とかもできるっぽいのでコードとかに起こせるような仕組みになっていそうですごいなと感じました。

# Usage: mkr plugin install [--prefix <prefix>] [--upgrade] [--overwrite] <install_target>

# Install mackerelio/mackerel-plugin-sample(v0.0.1 release) to /opt/mackerel-agent/plugins/bin
$ sudo mkr plugin install mackerelio/mackerel-plugin-sample@v0.0.1

# Install mackerel-plugin-sample(latest release) defined in plugin registry to /path/to/plugin_dir/bin
$ mkr plugin install --prefix /path/to/plugin_dir mackerel-plugin-sample

GItHubから取ってくることもできるらしくきちんと使用を満たしておけば例えば会社のGHEとかプライベートリポジトリとかにおいて自前で管理していくことも可能となっている。最小構成でいつか作ってみたい。

$ mkr plugin install <owner>/<repo>[@<release_tag>]

公式で出してるプラグインだけでも結構な種類がある模様。クラウドプロパイダー毎のプラグインに加えて有名なミドルウェアは網羅してそうなイメージ。公式でこれだけ持ってるのはすごいですねぇ。

github.com