Mackerelで監視対象を誤って退役させた時の挙動を見てみる
こんばんわ、吉江です。
Mackerelを使用してEC2インスタンスを監視している時、退役ホスト周りで不明な挙動が合ったので
確認してみました。
どういうこと?
例えば、システム運用者が監視対象の棚卸しでMackerelで監視している対象インスタンスを誤って
退役させてしまったとします。
この時に設定によってどのような動きをするのか気になりました。
シナリオとしては以下のイメージです。
- パターン①:AWSインテグレーションでEC2インスタンスを監視している
- パターン②:mackerel-agentでEC2インスタンスを監視している
- パターン③:AWSインテグレーション + mackerel-agentで監視している(AutoRetirement無効)
- パターン④:AWSインテグレーション + mackerel-agentで監視している(AutoRetirement有効)
パターン | AWSインテグレーション | mackerel-agent | AutoRetirement |
---|---|---|---|
パターン① | ◯ | X | X |
パターン② | X | ◯ | X |
パターン③ | ◯ | ◯ | X |
パターン④ | ◯ | ◯ | ◯ |
確認結果
各パターンの確認結果は以下のようになりました。
パターン①:AWSインテグレーション監視
AWSインテグレーションで監視を行っている場合、これはAWSインテグレーション機能が5分間隔で対象インスタンスを確認しております。
結果:AWSインテグレーションの動作によって、次回監視対象のチェックタイミングでホスト再登録されます。
パターン②:mackerel-agent監視
mackerel-agentのみで監視している場合の挙動を見てみます。
パターン②-1:mackerel-agent再起動実施
結果:ホストの再登録が実施されませんでした
mackerel-agentのサービス再起動を実施しましたが、同じくホストの再登録が実施されません。
/var/log/mackerel-agent.log
を見てみると、以下のような出力ログが見えております。
ERROR <command> Error while updating host specs: API error. status: 404, msg: api request failed
パターン②-2:管理ID削除、mackerel-agent再起動実施
管理IDが要因と考えられたので、管理IDを保存している/var/lib/mackerel-agent/id
を削除してからmackerel-agentを再起動することでホストの再登録が実施されました。
結果:ホストの再登録が実施できました
パターン③:AWSインテグレーション + mackerel-agent監視(AutoRetirement無効)
結果:リタイアメント後、AWSインテグレーションとしてホスト再登録が実施されましたが、
mackerel-agentでの監視は再開されませんでした。
mackerel-agentの監視再開をするために別に3パターンを試してみました。
パターン③-1:mackerel-agent再起動実施
結果:mackerel-agentの再起動を実施するも、監視は再開されませんでした。
パターン③-2:管理ID上書き、mackerel-agent再起動実施
AWSインテグレーションでホスト登録が出来たので管理IDがmackerel側で振られてます。
この新たに振り直された管理IDをホスト側の管理IDファイル(/var/lib/mackerel-agent/id
)に上書きしてみます。
結果:管理IDを上書きすることでmackrel-agentを再起動することでホスト再登録されました
パターン③-3:管理ID削除、mackerel-agent再起動実施
今度はホスト側の管理IDファイル(/var/lib/mackerel-agent/id
)を削除して、mackerel-agentを再起動してみます。
結果:mackerel-agent再起動を実施することでホスト再登録が実施されました。
パターン④:AWSインテグレーション + mackerel-agentで監視している(AutoRetirement有効)場合
パターン③と同様に、AWSインテグレーションによってホストの再登録が実施されました。
パターン④-1:mackerel-agent再起動実施
結果:mackerel-agentの再起動を実施するも、監視は再開されませんでした。
パターン④-2:管理ID上書き、mackerel-agent再起動実施
結果:管理IDを上書きすることでmackrel-agentを再起動することでホスト再登録されました
パターン④-3:管理ID削除、mackerel-agent再起動実施
今度はホスト側の管理IDファイル(/var/lib/mackerel-agent/id
)を削除して、mackerel-agentを再起動してみます。
結果:mackerel-agent再起動を実施することでホスト再登録が実施されました。
最後に
今回の検証は運用フェーズに入った時のオペレーションで気になった点を調べてみました。
誤って退役させるということは極力避けたいところですが、オペミスの可能性としてはあり得る事だと思いますので
注意してホスト管理は行うように心がけたいと思います。