監視サーバーmakareruに登録されたのに監視が始まらない場合の対処方法

インフラの監視サーバーって、いろいろとありますよね?

オンプレだとZabbixが有名ですが、AWSだとCloud watchですかねー。クラウド上で導入がとてもかんたんな監視サーバーにmackerelがあります。

こちらは、はてなが運営しているサービスです。

メリットとして

・OSにagentを導入すれば監視がすぐに始められる

・不具合があった場合、mackerelからslackに通知が行きます。

と思って、導入してもなかなか監視が始まらないです。

設定を確認してみましょう

  • APIキーが間違っているかどうか?

sudo vim /etc/mackerel-agent/mackerel-agent.conf

apikey=XXXXXX 特に間違っていない。

  • mackerel-agent configtest
12# mackerel-agent configtest/etc/mackerel-agent/mackerel-agent.conf Syntax OK

シンタックスは問題なし。

  • systemctlで起動状況を確認
# 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…omHint: Some lines were ellipsized, use -l to show in full.

しばらく待つと….

# 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.comMay 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 200May 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 200May 04 21:01:43 xxxxxxxx-server01 mackerel-agent[20865]: exit status 1May 04 21:01:43 xxxxxxxx-server01 systemd[1]: mackerel-agent.service: main process exited, code=exited, status=1/FAILUREMay 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

起動するときにIDを見るらしく、これがあったため昔のIDを見ていたようです。

なので、mackeral-agentフォルダーにあるIDを削除して

rm /var/lib/mackerel-agent/id

再起動

sudo reboot

無事に監視が始まったー。よかったー