
はじめに
Mackerelのサーバ監視はmackerel-agentをインストールするだけでいろんなメトリクスがグラフで見れて便利ですよね
ただ、このグラフは1分間隔の値が描画されているのですがAPIでは5分毎の平均値しかとれません
mackerel-agent
コマンドを使えばそんなメトリクスたちを任意のタイミングでとることができます
対象
試したのはCentOS 7.1とMacだけですが、Linux、FreeBSD、Windowsなら動きそうな雰囲気です。
取れるメトリクス
CentOS 7.1でとれる標準のメトリクスはこちらです。
{
"Created": "2015-11-02T20:57:28.352864959+09:00",
"Values": {
"cpu.guest.percentage": 0,
"cpu.idle.percentage": 399,
"cpu.iowait.percentage": 0,
"cpu.irq.percentage": 0,
"cpu.nice.percentage": 0,
"cpu.softirq.percentage": 0,
"cpu.steal.percentage": 0,
"cpu.system.percentage": 0,
"cpu.user.percentage": 1,
"disk.sda.reads.delta": 0,
"disk.sda.writes.delta": 0,
"disk.sda1.reads.delta": 0,
"disk.sda1.writes.delta": 0,
"filesystem.sda1.size": 16094593024,
"filesystem.sda1.used": 1343873024,
"interface.eno16777984.rxBytes.delta": 70,
"interface.eno16777984.txBytes.delta": 140,
"loadavg5": 0.01,
"memory.active": 284356608,
"memory.buffers": 700416,
"memory.cached": 271351808,
"memory.free": 7782879232,
"memory.inactive": 107966464,
"memory.swap_cached": 0,
"memory.swap_free": 0,
"memory.swap_total": 0,
"memory.total": 8365703168,
"memory.used": 310771712,
"uptime": 0.45530717592592596
}
}
メトリック仕様もご覧ください。
Mac OS 10.11でとれたのはこちらです。
{
"Created": "2015-11-03T13:42:59.868419262+09:00",
"Values": {
"cpu.idle.percentage": 98,
"cpu.system.percentage": 1,
"cpu.user.percentage": 1,
"filesystem.disk1.size": 499055067136,
"filesystem.disk1.used": 109190696960,
"interface.awdl0.rxBytes.delta": 0,
"interface.awdl0.txBytes.delta": 0,
"interface.bridg.rxBytes.delta": 0,
"interface.bridg.txBytes.delta": 0,
"interface.en0.rxBytes.delta": 640,
"interface.en0.txBytes.delta": 642,
"interface.en1.rxBytes.delta": 0,
"interface.en1.txBytes.delta": 0,
"interface.en2.rxBytes.delta": 0,
"interface.en2.txBytes.delta": 0,
"interface.gif0.rxBytes.delta": 0,
"interface.gif0.txBytes.delta": 0,
"interface.p2p0.rxBytes.delta": 0,
"interface.p2p0.txBytes.delta": 0,
"interface.stf0.rxBytes.delta": 0,
"interface.stf0.txBytes.delta": 0,
"loadavg5": 0.97,
"memory.active": 7702355968,
"memory.cached": 5382914048,
"memory.free": 3217080320,
"memory.inactive": 2794979328,
"memory.swap_free": 0,
"memory.swap_total": 0,
"memory.total": 17171968000,
"memory.used": 8571973632
}
}
mackerel-agentインストール
インストール方法はドキュメントに詳しく書いてあります。
rpmやdebのパッケージも用意されていますし、Goのバイナリがあるので直接それを使っても大丈夫です。
Windows用のインストーラも用意されています(試してません)。
メトリクス取得方法。
次のコマンドで任意のタイミングのメトリクスを取得することができます。
mackerel-agent --once
結果はJSONで出力されます。JSONにはホストのメタ情報なども含まれています。
メトリクスだけ出力したい場合はjqとかが便利です。
$ mackerel-agent --once 2> /dev/null | jq -M ".metrics.Values"
{
"cpu.idle.percentage": 99,
"cpu.system.percentage": 0,
"cpu.user.percentage": 0,
"filesystem.disk1.size": 499055067136,
"filesystem.disk1.used": 109224218624,
"interface.awdl0.rxBytes.delta": 0,
"interface.awdl0.txBytes.delta": 0,
"interface.bridg.rxBytes.delta": 0,
"interface.bridg.txBytes.delta": 0,
"interface.en0.rxBytes.delta": 748,
"interface.en0.txBytes.delta": 529,
"interface.en1.rxBytes.delta": 0,
"interface.en1.txBytes.delta": 0,
"interface.en2.rxBytes.delta": 0,
"interface.en2.txBytes.delta": 0,
"interface.gif0.rxBytes.delta": 0,
"interface.gif0.txBytes.delta": 0,
"interface.p2p0.rxBytes.delta": 0,
"interface.p2p0.txBytes.delta": 0,
"interface.stf0.rxBytes.delta": 0,
"interface.stf0.txBytes.delta": 0,
"loadavg5": 1.33,
"memory.active": 7322976256,
"memory.cached": 5257224192,
"memory.free": 3427651584,
"memory.inactive": 2804174848,
"memory.swap_free": 0,
"memory.swap_total": 0,
"memory.total": 17171501056,
"memory.used": 8486625280
}
おわりに
mackerel-agent
コマンドを使って任意のタイミングで手軽にサーバメトリクスを取得する方法を紹介しました。
1コマンドで様々なメトリクスがJSONとして取得できてとても便利です