個人で使っているMackerelのオーガニゼーションを整理しようと思い、
新規にオーガニゼーションを作成して、移行してみました。
APIキーを変更からのmackerel-agentを再起動すると…
上記のようにまったくHostsに追加されず、半日経っても登録されない悲劇が起こりました。
出落ちか!!と言いたいところですが、この対処法をまとめます。✌️
■FAQ・エージェントが起動しない
とのことなので調査してみる。 ちなみにOSはCentOS7。
■確認
- mackerel-agent configtest
1 2 |
# mackerel-agent configtest /etc/mackerel-agent/mackerel-agent.conf Syntax OK |
シンタックスは問題なし。
- systemctl
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
# systemctl restart mackerel-agent.service # systemctl status mackerel-agent.service ● mackerel-agent.service - mackerel.io agent Loaded: loaded (/usr/lib/systemd/system/mackerel-agent.service; enabled; vendor preset: disabled) Active: active (running) since Sat 2019-05-04 21:01:35 JST; 1s ago Docs: https://mackerel.io/ Process: 20860 ExecStopPost=/bin/sh -c [ "$AUTO_RETIREMENT" == "" ] || [ "$AUTO_RETIREMENT" == "0" ] && true || /usr/bin/mackerel-agent retire -force --root $ROOT $OTHER_OPTS (code=exited, status=0/SUCCESS) Process: 20862 ExecStartPre=/usr/bin/mkdir -m 777 -p $MACKEREL_PLUGIN_WORKDIR (code=exited, status=0/SUCCESS) Main PID: 20865 (mackerel-agent) CGroup: /system.slice/mackerel-agent.service ├─20865 /usr/bin/mackerel-agent supervise --root /var/lib/mackerel-agent └─20875 /usr/bin/mackerel-agent --root /var/lib/mackerel-agent -child May 04 21:01:35 xxxxxxxx-server01 systemd[1]: mackerel-agent.service failed. May 04 21:01:35 xxxxxxxx-server01 systemd[1]: Starting mackerel.io agent... May 04 21:01:35 xxxxxxxx-server01 systemd[1]: Started mackerel.io agent. May 04 21:01:35 xxxxxxxx-server01 mackerel-agent[20865]: 2019/05/04 21:01:35 INFO <main> Starti...om Hint: Some lines were ellipsized, use -l to show in full. |
しばらく待つと….
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
# systemctl status mackerel-agent.service ● mackerel-agent.service - mackerel.io agent Loaded: loaded (/usr/lib/systemd/system/mackerel-agent.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Sat 2019-05-04 21:01:43 JST; 12min ago Docs: https://mackerel.io/ Process: 20894 ExecStopPost=/bin/sh -c [ "$AUTO_RETIREMENT" == "" ] || [ "$AUTO_RETIREMENT" == "0" ] && true || /usr/bin/mackerel-agent retire -force --root $ROOT $OTHER_OPTS (code=exited, status=0/SUCCESS) Process: 20865 ExecStart=/usr/bin/mackerel-agent supervise --root $ROOT $OTHER_OPTS (code=exited, status=1/FAILURE) Process: 20862 ExecStartPre=/usr/bin/mkdir -m 777 -p $MACKEREL_PLUGIN_WORKDIR (code=exited, status=0/SUCCESS) Main PID: 20865 (code=exited, status=1/FAILURE) May 04 21:01:35 xxxxxxxx-server01 systemd[1]: mackerel-agent.service failed. May 04 21:01:35 xxxxxxxx-server01 systemd[1]: Starting mackerel.io agent... May 04 21:01:35 xxxxxxxx-server01 systemd[1]: Started mackerel.io agent. May 04 21:01:35 xxxxxxxx-server01 mackerel-agent[20865]: 2019/05/04 21:01:35 INFO <main> Starting mackerel-agent version:0.59.2, rev:b15b1c0, apibase:https://api.mackerelio.com May 04 21:01:43 xxxxxxxx-server01 mackerel-agent[20865]: 2019/05/04 21:01:43 WARNING <command> API error. status: 404, msg: status code is not 200 May 04 21:01:43 xxxxxxxx-server01 mackerel-agent[20865]: command.Prepare failed: failed to prepare host: failed to find this host on mackerel (You may want to delete file "/var/lib/mack...e is not 200 May 04 21:01:43 xxxxxxxx-server01 mackerel-agent[20865]: exit status 1 May 04 21:01:43 xxxxxxxx-server01 systemd[1]: mackerel-agent.service: main process exited, code=exited, status=1/FAILURE May 04 21:01:43 xxxxxxxx-server01 systemd[1]: Unit mackerel-agent.service entered failed state. May 04 21:01:43 xxxxxxxx-server01 systemd[1]: mackerel-agent.service failed. Hint: Some lines were ellipsized, use -l to show in full. |
You may want to delete file “/var/lib/mack…e is not 200
これか!!
- delete id
1 2 3 4 |
# rm /var/lib/mackerel-agent/id removed ‘/var/lib/mackerel-agent/id’ # systemctl restart mackerel-agent.service |
- そもそも/var/lib/mackerel-agent/idってなんなのか(FAQより)
mackerel-agentは初回起動時にサーバーが発行したIDを/var/lib/mackerel-agent/idに保存します。以後はこのファイルに記載されたIDによりホストの識別を行います。
そのため、/var/lib/mackerel-agent/idがコピーされると実際は複数のホストがMackerel上では同一のホストと認識され、メトリックの投稿や監視が正しく動作しなくなります。
APIキーを変更するだけではMackerel自体がホストの識別をしてくれないということですな。
■まとめ
移行する場合は/var/lib/mackerel-agent/idを削除するように!!(恥
0件のコメント