カレンダー

11 | 2016/12 | 01
- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

広告



最近の記事

カテゴリー

DATE: CATEGORY:DEV


先日、API meetup なるものに参加して、
mackerelの話を聞いたので使ってみてました。



で、色々APIがあるというのでAPI使ってたんですが、
ホストのメトリクスくらいなら使わなくても良いじゃんって話です。


最初のエージェントのインストールやら設定やらは
完了している状態からのお話です。

mackerel の API


mackerelは、標準で提供されているagentで取得出来る
パラメータ以外でもapiを使えば、蓄積&グラフ化出来ます。

で、mackerelのapi仕様がここ。
API仕様(v0) - Mackerel ヘルプAPI仕様(v0) - Mackerel ヘルプhatena
この項の内容はβ開発中のものです。予告なく変更される場合がありますのでご注意ください。 目次 ホスト情報の登録 ホスト情報の取得 ホスト情報の更新 ホストのステー...


この「メトリックの投稿」にまずはお試し、と思って、
サーバで監視したい色んなプロセス数をpsでチェックして、
投稿する、というスクリプトを作ってみて投稿して、
「おーー、グラフになった」とか思ってました。

が、そんな事しなくて良かった.

agent の 機能を使えばいい


わざわざ、apiを叩かなくてもagentのconfファイルに指定の
フォーマットを標準出力するコマンドを設定するだけでいい。

agentが以下の仕様でapiに投稿してくれるらしい。

・ホストの情報をMackerelに登録
・ホスト上で定期的(1分毎)にリソース情報を収集し、Mackerelに投稿
・また、定期的(1時間毎)にホストの情報を更新します。

mackerel-agent仕様 - Mackerel ヘルプmackerel-agent仕様 - Mackerel ヘルプhatena
この項ではmackerel-agentのバージョン0.11.1について解説します。 Usage mackerel-agent [-conf <config-file>] [options] 概要 mackerel-agentはフォア...


そしてそんな話もちゃんとヘルプに書いてあるし。

ホストのカスタムメトリックを投稿する - Mackerel ヘルプホストのカスタムメトリックを投稿する - Mackerel ヘルプhatena
ホストごとのメトリックには「loadavg5」や「cpu.user」などエージェントが自動で投稿するメトリックに加えて、任意の値(カスタムメトリック)を定期的にエージェント...


実際の手順と少しだけハマった事


基本は上記のリンク先を見ればOKなのだが、
少しだけハマった点と追加事項含めて、
3ステップ手順を備忘録として。

1.計測したい値を標準出力するシェル作成

今回、pythonで作っているけど実際にはbashでもなんでもいい。
必要なパラメータを仕様に合わせて標準出力するコマンドがあればいい。

仕様はリンク先には以下のように記載されてます。

設定ファイルで指定するコマンドは、標準出力の各行に以下のフォーマットの出力をすることが期待されます(\t はタブ文字です):

{metric name}\t{metric value}\t{epoch seconds}

・名前の最後のドットまでが共通するメトリックがひとつのグラフにまとめられ、ホスト詳細で閲覧できます。
・メトリック名の先頭には自動的に"custom."という文字列が付与されます。
・メトリック名に使える文字は英数字もしくはハイフン(-)、アンダースコア(_)、ドット(.)のいずれか(/[-a-zA-Z0-9_.]/)です。


ここで、ちょっとハマったのが、上記の{}はいらないんですよね。
あと複数のパラメータを1つのグラフで出したい場合は、
どうすればいいのかなぁ、と。

今回、プロセスチェックするツールを作ってみましたが、
標準出力は、実際にはこんな感じで出力しておけばいいです。
(隙間は、仕様に記載の通り、¥t でタブ区切りです)
$ python /opt/tools/sample.py 
process.httpd 6 1434205063
process.mysql 2 1434205063
process.cron 1 1434205063


2.agent.confに作ったコマンドを設定する

あとは、先ほどのスクリプトを設定ファイルに設定
しておくだけです。以下の内容を設定ファイルの末尾
に追記しておきましょう。

/etc/mackerel-agent/mackerel-agent.conf
[plugin.metrics.vmstat]
command = "/opt/tools/sample.py"


さらに、この方法であればグラフの表示内容等もカスタマイズ可能です。
この方法も標準出力にグラフの設定情報をjsonで出力してあげるだけ。

この辺りはrubyのサンプルコードが先ほどのリンクにあるので、
特にハマらないのではないかと思われます。

3.再起動

というわけで、agentの設定ファイルを変更しているので、
agent本体を再起動しておきましょう。

$ sudo /etc/init.d/mackerel-agent restart

これでグラフが勝手に作られていくと思います。

最後に


で、結果、apiは不要になりました。
ホストのメトリクスを管理する上ではこれでよさそうです。
サービス全体のメトリクス管理はAPIが必要そうですが。

でも、むしろ、本来は他のサービスとの連動とかが本来の
APIが公開されている目的なんだろうなぁ、と想像。

タグ : DEV mackerel api

Comment

コメントの投稿

管理者にだけ表示を許可する


トラックバック


この記事にトラックバックする



copyright © なんとなしの日記 all rights reserved.
内職☆在宅ワークの最強は?アフィリエイト!. 初心者だってカッコ良いホームページ作るぅ!
Powered by FC2ブログ
Related Posts Plugin for WordPress, Blogger...