Mackerel pluginを入れてみた

Mackerel plugin というのがあるらしいので入れてみた。mackerel-agent-plugins は、githubで公開されているが、CentOSベースなら、yum install だけでインストールできる。

この内、Linux、mysql 、phpのプラグインを試してみた。

まず、Mackerel-agentの設定ファイル/etc/mackerel-agent/mackerel-agent.conf の以下の部分をコメントアウトして、mackerel-agent を再起動してみる。

しばらく待って、Mackerelサイトから確認すると、linux pluginは動いてるが、mysql とphpのpluginは動いてない。これは面白くなってきた。

まず、mackerel プラグインを手動で動かしてみる。これはmackerel-agent.confで指定しているcommandをそのまま実行するだけ。

mackerel-plugin-mysql の実行で、Access denied と出ている。mackerel agentはroot user、パスワード無しで入ろうとしているらしいですね。それはアクセス出来ないね。
ググると、read only 権限付きのユーザを作るといいらしいという情報を見つけた(mackerelでmysqldを監視するための設定)。

monitorユーザとホスト名を指定してあげて、無事情報をゲット出来た。monitorユーザはlocalhost からしか接続できない(そもそも外部へはmysqlのポート開けてない)し、権限を絞ってるので多分大丈夫。

つぎ、phpのpluginを確認すると、/mackerel/php-apc.php にアクセス出来ないというエラーがでる。そりゃ当然作ってませんから。で、githubのmackerel-agent-plugin-php-apc をみると、/mackerel/を見れるようにして、php-apc.php というファイルを置かないといけないらしい。そんなファイルRPMに含まれてないので(ここがおかしい)、githubからphp-apc.phpを落とす。で、nginxで以下のように設定し、DocumentRootにmackerelというディレクトリを作ってphpファイルを配置。kusanagiでは、php7もhhvmもfastcgi経由なので、phpの設定はこのようになる。

で、試す。まずはcurlで。あれ値が取ってこれない…

調べてみると、phpの関数 apc_cache_info()からメモリ情報やキャッシュヒット率を求めているんだけど、hhvmではここれ辺うまく取れてくれないらしい。
php7だと以下のように値が取れる。hhvm にはプラグインを考えないといけないかあ。

opcache も同様に、githubのmackerel-plugin-php-opcache からphp-opcache.phpを落とし、ファイルをphp-apc.phpと同様に配置。

これで、mackerelから色々取れるようになった。

mackerel-php mackerel-mysql