この記事は、Mackerel アドベントカレンダー(全部CRE)の4日目の記事です。
今回は、サービスとロールがMackerelの中のどういったところに関わってくるのかについてまとめています。
Mackerelでの管理の単位はサービスとロール
Mackerelでは、あらゆる設定にサービスとロールを使います。
グラフの描画、監視ルール、通知など基本的な機能はもちろん、アラートグループといった新しい機能でも設定の単位はサービスとロールです。
これから新しく増える機能もサービスとロールと紐づいて設計されていることが多いと思うので、どういうふうにこの2つの概念が使われるのかをおさえておくとMackerelの設定を考える上でとても便利です。
ロールでまとめる見る「グラフ」
ロールグラフ
Mackerelでは、取得してきたメトリックをグラフ描画することができます。
グラフの見方にもいくつか種類があるのですが、その中でも、「ロールグラフ」はサービスとロールを設定してはじめて描画されるグラフです。
ロールに紐付けをしたホストの各種メトリックが、ロールグラフの中で、重ね合わせだったり、積み上げのグラフで見ることができます。
カスタマイズしたグラフ
また、Mackerelでは、関数を使ってカスタマイズしたグラフを表示することもできます。
ここでも、ロールが効いてきます。
たとえば、ロールに含まれるホストメトリックの平均をとったり、ロールに含まれるホストメトリックの中の最大、最小を取り出したりすることができます。
つまり、WebサーバーやDBサーバーの平均や最大・最小の負荷を見ることができるのです。
その際に使う関数は role(roleFullname, metricName)
です。
関数には他にもいろいろあるので、ぜひヘルプをご覧ください。
ロールグラフをダッシュボードに
これらのロールグラフや、カスタマイズしたグラフを、カスタムダッシュボードに並べて、毎日システムの状態を眺めたり、月次のキャパシティプランニングの場で使ったりすることもできます。
「Webサーバーにもう3台追加しよう」とか「DBサーバーのメモリ足りてないんじゃない?」というようなロールを主役にしたそれにフィットしたグラフを見ながらみんなでワイワイ会話することができます。
サービスやロールに「監視ルール」を適用
監視ルールとは、取得してきたメトリックに対して、何を障害とみなしアラートとするかを決める"条件"にあたる設定です。
条件は、たとえば「CPUの使用率が70%を超えたらWarning」というようなものです。監視の世界では、一般的にあるような設定ですよね。
Mackerelの一つの特徴とも言えるのは、この監視ルールをサービスやロール単位に設定できるというところです。
スクリーンショットの例では、監視ルールがそれぞれ以下のとおりに適用されています。
- CPU% は「sample-service」サービスの「sample-rore」ロールにのみ適用
- filesystem は「すべて」のサービスに適用
- connectivity は「すべて」のサービスに適用、ただし「missasanbook」サービスについては除外
なので、このようにサービス、ロールを指定してうまく監視ルールを作っておけば、ホストを適切なサービス、ロールに所属させればすぐに監視ルールを適用させることができます。
サーバを1台構築したからといって、CPU、メモリ、ディスクなどそれぞれの監視ルールを都度設定しなくてもよいので楽ちんです。
Mackerelでは、どのサービス、ロールに所属させるかはエージェントの設定ファイルに書いておくことができます。
サービスにごとに「通知」先を指定
通知とは、起票されたアラートをメールやslackなど人が気が付ける方法でお知らせする仕組みです。
この通知の設定でも、指定したサービスに関わるアラートについては、どこに通知する、といった設定ができます。
この設定では、全てのサービスに関わるアラートをslackに通知しています。
サービスとロールがかかわるその他の機能
アラートグループ
アラートグループというアラートを同時間帯にまとめる機能があります。
これを、まとめる単位もサービスとロールです。
フィルタ
各種フィルター機能を使うときにも、サービスとロールが活躍します。
いかがだったでしょうか。とにかくいろんなところで登場するんだなーということは伝わったのではないでしょうか。
次回はMackerelで取ってこられるメトリックの種類と概要についてまとめます。