チュートリアルを経てない同僚へMackerelの説明をするために、個人的に必要最低限と思う概念だけまとめました。
Mackerelとは
Mackerelはサーバリソースの可視化(グラフ化)および監視サービスです。
mackerel-agentを監視したいホストにインストールすれば、Mackerel上でリソースの確認を行うことができます。
zabbixサーバの管理をMackerelがやってくれているイメージです。
Mackrelの概念図
覚えておいたほうが良い概念は以下の通りです。
赤字がMackerelが定義している部分です。
赤字だけ抜き出した部分が下記の通りになります。
- Hosts
- Role
- Services
- HostMetrics
- ServiceMetrics
- Monitors
- Alerts
Hosts
mackerel-agentをインストールし、起動すると、Mackerel上でHostとして認識されます。
そのため、実際の監視対象と1対1の関係にあります。
Services
監視するシステムのサービスを表します。
例えば、ストアサービスを展開しているシステムはStoreサービスなど命名することになります。
サービスを作成してから、ロールを作成します。
上記の画像の例では、AWSのEC2なのか、RDSなのか、区別するためにAWS_SERVICEというサービスを作成しています。
Role
監視するホストの役割を表します。
例えばWebサーバが10台あったとしたら、10台のホストそれぞれにWebロールをつけて役割をまとめます。
ロールはServicesに紐づくため、ロールを割り当てる前にServicesを作成する必要があります。
上記の画像の例では、AWSのサービスの中のRDSであることを示すために、AWS_SERVICEに紐づけてRDSロールを作成しています。
HostMetrics
ホストに紐づくメトリクスをグラフにします。
例えば、CPU使用率やファイルシステムなどがホストに紐づきます。
確認したいホストを選択すると、可視化しているグラフが現れます。
ServiceMetrics
サービスに紐づくメトリクスをグラフにします。
例えば、ストアのレスポンスタイムなどがサービスに紐づきます。
サービスを選択し、サービスメトリクスのタブを選択するとグラフが現れます。
Monitors
メトリクスに対して、閾値による監視を設定することができます。
例えば、ロードアベレージが10以上であればslackに通知するなどです。
通知先は、slack/webhook/email ... など様々なものが設定できます。
モニターを選択し、メトリクスに対して閾値を設定して監視を行います。
Alerts
Monitorsで監視しているリソースが閾値を超えるとアラートが発生します。
いつ、何に対するアラートなのか、それが継続中なのか終了した状態なのか、などを見ることができます。
まとめ
他にもアノテーションやダッシュボードなど機能がありますが、最低限必要な要素はこの辺りかと思います。
めでたく、これらの概念を覚えてもらったら、基本的な話は理解してもらえるようになりました。