Mackerel ブログ #mackerelio

Mackerelの公式ブログです

自動退役や自動ステータス変更 - オートスケールやスタンバイ機の管理のための自動化

オートスケールのように動的にホストを増減させたり、コールドスタンバイ機を利用している場合、都度退役処理やステータス変更処理を行う必要があります。これまではこの処理を自動化するには起動スクリプトなどで退役処理やステータス変更のためにAPIを叩く処理を独自実装する必要がありましたが、mackerel-agent v0.20.0では設定ファイルに書くだけで処理が行なわれるようになりました。

今回はその方法を紹介します。

OSシャットダウン時にホストを自動で退役させる

オートスケールなどを利用している場合、ホストを自動で退役させたいこともあるでしょう。

パッケージインストールした場合はinitスクリプト用の環境変数設定ファイルに一行追記するだけで簡単に自動退役を実現できます。

環境変数設定ファイルはyum/rpmの場合は/etc/sysconfig/mackerel-agent、deb/aptの場合は、/etc/default/mackerel-agent となっています。

記述する内容は以下のとおりです。

AUTO_RETIREMENT=1

この指定をしておくと、シャットダウン時(正確には /etc/init.d/mackerel-agent stop 時)にホストが自動的に退役されます。

注意 手動で /etc/init.d/mackerel-agent stop を打った場合でもこの指定がされていた場合にはホストは退役されてしまいます。エージェントのバージョンアップ時など、エージェントをstop/startさせたい場合には、 /etc/init.d/mackerel-agent reload を使うようにして下さい。

パッケージインストールではない場合、 mackerel-agent retire [-force] という退役用のサブコマンドがありますので、そちらを利用して自動退役機構を作成してみてください。

ホスト起動時・シャットダウン時にホストステータスを自動変更する

コールドスタンバイ機を用意している場合など、スタンバイ機が起動時にホストのステータスを working に、シャットダウン時に poweroff に変更したいことがあるかと思います。

これは、mackerel-agentの設定ファイルに以下のような指定をすることで実現できます。

# /etc/mackerel-agent/mackerel-agent.conf
[host_status]
on_start = "working"
on_stop  = "poweroff"

これで、コールドスタンバイ機の管理も簡単になりました。

この host_status の設定では working, standby, maintenance, poweroff の4種類のステータスが指定可能ですので、ユースケースに合わせて柔軟に設定いただければと思います。


今回は、自動退役や、ホストのステータス変更について取り上げました。mackerel-agent仕様 も併せてごらんください。