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
をうまく起動することが出来ませんでした.
...というわけで, 結論に至る次第です. ちょっとした凡ミスですが, 皆様もお気をつけ下さい.