packerで作成したAMIからインスタンスを立ち上げたところ、そのホストがmackerelのhostsリストに出てこないというのがあった
ログをみるとmackerel-agentは起動しているが、mackerel.ioとのやりとりがうまくいってなさそうだった
$ less /var/log/mackerel-agent.log
...
2016/12/24 14:52:23 ERROR <command> Error while updating host specs: API error. status: 404, msg: api request failed
設定を確認しても問題なしと出る
$ sudo /etc/init.d/mackerel-agent configtest
* Testing configuration of mackerel-agent [ OK ]
エラーメッセージを見てもよくわからない感じだったので雑に検索したところ同じメッセージに遭っているポストを見つけた
原因がわかった
ホストID: Mackerelは各ホストをホストIDで識別します。
packerとmackerelを一緒に使うときはこの辺をケアしておく必要があった
原因
- packerでAMIを作ったとき
- シャットダウン時にそのホストを退役させてしまっている
- しかしホストIDファイル(
/var/lib/mackerel-agent/id
)が残ってしまっている
退役済みのホストIDファイルをもつAMIを作ってしまっていた
対応
とりあえずの対応
/var/lib/mackerel-agent/id
を消して再起動
$ sudo rm /var/lib/mackerel-agent/id
$ sudo /etc/init.d/mackerel-agent restart
無事にhostsに出てきた
正しい対応
packerでAMIを作る際にホストIDファイルを消しておく