mackerel-agentをインストール後、Monitorsに監視項目が追加されない時はMackerel上のホストのステータスを確認しよう

2021.04.20

こんにちは、岩城です。

MackerelでEC2インスタンスのメトリクスの取得や監視をする場合、デフォルトではCloudWatchメトリクスに基づきます。 さらに、LinuxOS系にmackerel-agentをインストールすれば、以下メトリクスの取得や監視を行うことも可能です。

  • connectivity(死活監視)
  • ロードアベレージ
  • CPU使用率
  • メモリ使用率
  • ファイルシステム使用量
  • ディスクIOPS
  • ネットワークインターフェース毎の転送量

本エントリでは、connectivity、メモリ使用率、ファイルシステム使用量を監視するようにMonitorsを設定したのに、mackerel-agentをインストールしても監視されずにハマったことおよび解決方法を紹介します。

何が起きていたのか

以下のようにMonitorsに監視項目を設定していました。

なので、mackerel-agentをインストールすれば、自動的にconnectivity、メモリ使用率、ファイルシステム使用量の監視が開始されると思っていましたが、この時は開始されませんでした。

Mackerelで当該インスタンスを認識できていたので、AWSインテグレーションの設定は問題なさそうです。また、mackerel-agentの問題を疑いましたが、connectivityを始めとするメトリクスを取得できていたため、これも問題ないと判断しました。

では、何が問題なのでしょうか。

ホストのステータスを確認しよう

Monitorsに監視項目が追加されない原因は、Mackerel上のホストのステータスがmaintenanceだったからです。

Mackerelのドキュメントには以下の表が記載されており、maintenanceは監視されないとあります。

図:ステータスと監視の関係(引用元)

当該インスタンスは、まだ本番運用前であり、アラートの通知を避けたかったため、mantenanceとしていました。 その後、mackrel-agentをインストールしましたが、maintenanceでインストールするとMonitorsに監視項目が即座に追加されないようです。

引き続きアラートの通知を受け取りたくないのでstandbyにして、Monitorsに監視項目が追加されることを確認します。

standbyに変更後、2〜3分で追加されました!

おわりに

mackerel-agentのrolesの設定が足りていないと疑ったりしましたが、蓋を開けてみると単純なことでした。standbymaintenaceステータスの意味を改めて知る良い機会でした。

本エントリがどなたかのお役に立てれば幸いです。