
mackerel-agentをインストール後、Monitorsに監視項目が追加されない時はMackerel上のホストのステータスを確認しよう
この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
こんにちは、岩城です。
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の設定が足りていないと疑ったりしましたが、蓋を開けてみると単純なことでした。standbyとmaintenaceステータスの意味を改めて知る良い機会でした。
本エントリがどなたかのお役に立てれば幸いです。







