MackerelチームCREの吉田(id:syou6162)です。Mackerelの特徴の一つに豊富なプラグインの存在がありますが、たくさんあるがゆえに「どれを使うといいんだろう?」と迷われる方もいらっしゃるかと思います。また、「プラグインを導入後、ミドルウェアのメトリックが可視化できるようになった。しかし、どのメトリックを監視すればよいのだろうか?」と悩んでおられる方もいらっしゃるかと思います。
今日はそういった方に向けて
- Mackerelで利用数の多いメトリックプラグイン、トップ10
- ホストメトリックの監視に使われている代表的なメトリックプラグインのメトリック
を紹介しようと思います。
なお、Mackerelのプラグインは以下の3種類が存在していますが、今回はメトリックプラグインの利用状況についてのエントリとなります。
- メトリックプラグイン
- ホストに紐付く統計量をカスタムメトリックとして投稿するプラグイン
- チェックプラグイン
- ホスト内で OK / NG (CRITICAL or WARNING or UNKNOWN)の判定をおこない、その判定結果をMackerelに対して投稿するプラグインです
- 詳しくはこちらをご参照ください
- メタデータプラグイン
- 各ホストに任意のJSONデータを登録するプラグインです
- 詳しくはこちらをご参照ください
Mackerelで利用数の多いメトリックプラグイン、トップ10!
それでは早速ですが、ランキングを公開したいと思います!...ジャン!
順位 | プラグイン名 | 利用度スコア*1 |
---|---|---|
1 | linux | 7.3 |
2 | mysql | 4.4 |
3 | nginx | 3.4 |
4 | apache2 | 3.3 |
5 | docker | 2.3 |
6 | redis | 1.2 |
7 | accesslog | 1.1 |
8 | conntrack | 1.1 |
9 | jvm | 1.1 |
10 | inode | 1 |
すでにお使いのプラグインも、実は知らなかったプラグインもあるかと思います。どういったメトリックが監視されているかを含めて、個別のプラグインをチェックしていきましょう。
第1位: linuxプラグイン
栄えある1位はlinuxプラグインでした。2位に2倍近くの差を付けての堂々の1位で、Linuxをお使いなら必須のプラグインと言ってもよいでしょう。よく監視されているメトリックとしては、ログインしているユーザー数やネットワークの状態を表わすメトリックが人気でした。
監視によく使われているメトリック
custom.linux.users.users
custom.linux.ss.ESTAB
custom.linux.ss.CLOSE-WAIT
custom.linux.swap.pswpin
custom.linux.ss.TIME-WAIT
参考:
- Linuxの監視 ~ mackerel-plugin-linuxを読み解く - そーだいなるらくがき帳
- 元CREのid:Soudaiさんがインストール方法やその他のメトリックなどについても詳しく説明してくださっているエントリです
第2位: mysqlプラグイン
サービスの運用に欠かせないデータベースですが、mysqlプラグインが2位にランクインしました。人気のRDBMSなので、利用数が多いのも納得ですね。接続の状態毎の数やデッドロックの検知、スロークエリに関する統計量がよく監視されていました。
監視によく使われているメトリック
custom.mysql.seconds_behind_master.Seconds_Behind_Master
custom.mysql.threads.Threads_running
custom.mysql.capacity.PercentageOfConnections
custom.mysql.threads.Threads_connected
custom.mysql.table_locks.Slow_queries
参考:
- MySQLの監視 ~ mackerel-plugin-mysqlを読み解く - そーだいなるらくがき帳
- InnoDBの監視 ~ mackerel-plugin-mysqlを読み解く その2 - そーだいなるらくがき帳
第3位: nginxプラグイン
nginxプラグインが第3位にランクインしました。接続数やqueueの状態などが監視項目に使われていました。
監視によく使われているメトリック
custom.nginx.connections.connections
custom.nginx.requests.requests
custom.nginx.queue.waiting
custom.nginx.requests.handled
custom.nginx.requests.accepts
第4位: apache2プラグイン
3位に引き続きWebサーバー関係のプラグイン、apache2プラグインが第4位にランクインしました。監視に使われているメトリックとしてはnginxプラグインと似ており、接続数やworkerの状態がよく監視されているようですね。
監視によく使われているメトリック
custom.apache2.workers.busy_workers
custom.apache2.workers.idle_workers
custom.apache2.req.requests
custom.apache2.cpu.cpu_load
第5位: dockerプラグイン
5位はdockerプラグインがランクインしました。コンテナ化をする中で、もちろん監視もしたくなってきますよね。実際の監視項目としてはmemoryの使用量やstateに関するものが多かったです。
監視によく使われているメトリック
custom.docker.running.XXX.state
custom.docker.memory_used.XXX.memory_percentage
第6位: redisプラグイン
折り返し地点の第6位はredisプラグインがランクインしました。ちなみに、同じく人気のキーバリューストアmemcachedのプラグインは11位でした。接続しているクライアント数、メモリの使用量などがよく監視されていました。
監視によく使われているメトリック
custom.redis.clients.connected_clients
custom.redis.connections.rejected_connections
custom.redis.capacity.percentage_of_memory
custom.redis.uptime.uptime_in_seconds
custom.redis.capacity.percentage_of_clients
第7位: accesslogプラグイン
第7位にまたしてもWebサーバー関連のプラグイン、accesslogプラグインもトップ10に食い込みました。こちらはApacheやLTSVの形式のログを集計してくれるものであり、SLI / SLOの測定にも役に立つプラグインです。nginxプラグインやapache2プラグインと一緒に是非お使いください。
監視によく使われているメトリック
custom.accesslog.access_num.5xx_count
custom.accesslog.access_rate.5xx_percentage
custom.accesslog.access_rate.4xx_percentage
custom.accesslog.latency.99_percentile
custom.accesslog.access_num.2xx_count
参考:
- mackerel-plugin-accesslog徹底解説 - Mackerel ブログ #mackerelio
- Webサーバーアクセスログの分析と監視 〜 mackerel-plugin-accesslog を読み解く - えいのうにっき
第8位: conntrackプラグイン
第8位にはiptablesのトラッキング情報の統計情報である ip_conntrack を監視するconntrackプラグインがランクインしました。ip_conntrackには最大トラッキング数というものが存在し、それをオーバーしてしまうと新規セッションが弾かれ、ネットワークパフォーマンスの劣化を招いてしまいます。大量のトラフィックを捌くサーバー(ロードバランサーやキャッシュサーバー)では、忘れずにip_conntrackのトラッキングの監視を入れておきましょう。
監視によく使われているメトリック
custom.conntrack.count.used
custom.conntrack.count.free
第9位: jvmプラグイン
第9位にはjvmプラグインがランクインしました。jvm上で動くアプリケーションの運用に避けては通れない監視項目は色々あると思いますが、そういったものの典型例であるGCにかかった時間 / イベント数、ヒープの使用量などが上位の監視項目として挙がっていました。
監視によく使われているメトリック
custom.jvm.bootstrap.gc_events.FGC
custom.jvm.bootstrap.gc_time.FGCT
custom.jvm.heap.used
custom.jvm.prodserverstart.gc_events.FGC
custom.jvm.elasticsearch.memorySpace.oldSpaceRate
第10位: inodeプラグイン
トップ10の最後はinodeプラグインがランクインしました。普段は特に問題がなくても、inodeが枯渇すると新しいディレクトリやファイルが作れなくなるので、監視しておくと安心ですね。
監視によく使われているメトリック
custom.inode.percentage.*.used
参考:
inodeの監視 ~ mackerel-plugin-inodeを読み解く - そーだいなるらくがき帳
所感
- 各メトリックプラグインでどういった項目が監視されているかは監視の知見が溢れていて、調査した私も勉強になりました
- 惜しくもトップ10入りはならなかったものの、multicoreプラグイン / postgresプラグイン / fluentdプラグインなど人気のプラグインもまだまだあり、今後もブログ等を通じて紹介していきたいなと思います
*1:利用度スコアは第10位の利用数を1としたときの相対値を表わしています。