3月28日から, MackerelはAmazon Linuxの正式サポートを開始しました: Amazon Linuxの正式サポートについて - Mackerel ブログ #mackerelio
これに伴って, Amazon Linuxにおけるmackerel-agentのインストール方法が変更されたので, 某サービスでも早速対応していたのですが, そこでちょっと軽くやらかしたというか, 凡ミスをしたのでシェアします.
結論
mackerel-agentのインストールにおいて, 別途, /etc/mackerel-agent/mackerel-agent.confにAPIキーを書き込む処理をしているのであれば, 「sudo mackerel-agent init -apikey={{MACKEREL_APIKEY}}」は実行しなくてもよい.
詳細
先ほどのブログでは, 新規インストールの手順について以下のように紹介されています.
curl -fsSL https://mackerel.io/file/script/amznlinux/setup-yum.sh | sh
sudo yum install -y mackerel-agent
sudo mackerel-agent init -apikey={{MACKEREL_APIKEY}}
sudo /sbin/service mackerel-agent start
※`{{MACKEREL_APIKEY}}`はRead/Write権限のあるAPIキーを指定する
さて, 某サービスでは, mackerel-agentを含むミドルウェアなどのインストールは, Packerを使ってAMIを作る際に行う, という仕組みになっています.
これまではmackerel-agentのインストールに関する処理を, 次のように書いていました:
# 従来のインストール方法で`mackerel-agent`をインストール curl -fsSL https://mackerel.io/assets/files/scripts/setup-yum.sh | sh yum install -y mackerel-agent yum install -y mackerel-agent-plugins yum install -y mackerel-check-plugins # 設定ファイルの生成 mkdir /etc/mackerel-agent/conf.d cat >> /etc/mackerel-agent/mackerel-agent.conf <<'EOF'; apikey = "MACKEREL_APIKEY" EOF
というわけで, ブログ記事に従って次のように書き換えました:
# Install Mackerel curl -fsSL https://mackerel.io/file/script/amznlinux/setup-yum.sh | sh yum install -y mackerel-agent mackerel-agent init -apikey={{MACKEREL_APIKEY}} yum install -y mackerel-agent-plugins yum install -y mackerel-check-plugins mkdir /etc/mackerel-agent/conf.d cat >> /etc/mackerel-agent/mackerel-agent.conf <<'EOF'; apikey = "MACKEREL_APIKEY" EOF
...まあ, もうオチはお分かりだと思います.
「mackerel-agent init -apikey={{MACKEREL_APIKEY}}」は/etc/mackerel-agent/mackerel-agent.confに指定したAPIキーを記載するコマンドなので, その後に手動でAPIキーを/etc/mackerel-agent/mackerel-agent.confに記述するようにしていると, /etc/mackerel-agent/mackerel-agent.confにAPIキーが(同一ではあるものの)2回現れることになり, mackrel-agentをうまく起動することが出来ませんでした.
...というわけで, 結論に至る次第です. ちょっとした凡ミスですが, 皆様もお気をつけ下さい.