Masteries

技術的なことや仕事に関することを書いていきます.

mackerel-agent-pluginsを動かす時に30分くらい詰まっていた話

えー, 今から思い返すと非常にお恥ずかしい話なんですが, mackerel-agent-pluginsを使おうとした時に, 勘違いというか横着で30分くらい詰まってしまったので, 恥を晒すつもりでブログに書きます...

Mackerelには, mackerel-agent-pluginsという公式のプラグインが用意されており, これを利用すると例えばAWSのRDSElastiCacheをカスタムメトリックの形で取得出来るようになります. このプラグインは, mackerel-agentのインストールが済んでいるのであれば, CentOSやAmazon Linuxであればyum install mackerel-agent-pluginsでインストールすることが出来, インストールも非常に簡単です.

というわけで早速使ってみよう! と決意したので, Amazon Linuxにmackerel-agentとmackerel-agent-pluginsを導入し, README.mdに従って次のようにmackerel-agent.confを書きました,

[plugin.metrics.aws-rds]
command = "mackerel-plugin-aws-rds -identifier=our_database"

コマンドが正しく動くかどうか確認する為に, ec2-usermackerel-plugin-aws-rds -identifier=our_databaseとか動かしてみるとちゃんとパラメータを出力してくれるし, 後はmackerel-agentからこのコマンドを呼び出すだけだな! と思って設定ファイルを適用しても... 何故かMackerelには一向に表示されません.

30分悩んだ後, 「もしや...」と思ってsudo which mackerel-plugin-aws-rdsとかやってみると...

[ec2-user@hogehoge ~]$ sudo which mackerel-plugin-aws-rds
which: no mackerel-plugin-aws-rds in (/sbin:/bin:/usr/sbin:/usr/bin)

はい. mackerel-agentはrootで動いているので, mackerel-plugin-aws-rdsが見つけられなかったんですね.

[ec2-user@hogehoge ~]$ which mackerel-plugin-aws-rds
/usr/local/bin/mackerel-plugin-aws-rds

手元の場合, mackerel-agent-plugin-aws-rds/usr/local/bin下に配置されているので, mackerel-agent.confを次のように書き換えればすんなり動いてくれました.

[plugin.metrics.aws-rds]
command = "/usr/local/bin/mackerel-plugin-aws-rds -identifier=our_database"

ドキュメントには, ちゃんと,

[plugin.metrics.aws-rds]
command = "/path/to/mackerel-plugin-aws-rds -identifier=mysql01"

のように, フルパスで書け! と書かれているのに... 横着してしまったが故に30分を無駄にしてしまったお話でした.