さくらのクラウドは不定期にわりと高頻度にメンテナンスが実施される
指定された日までに再起動して、別ホストに移さなければ、不意の再起動を食らう。
メールで連絡は来るが、見落とすことが多かったので、zabbix でメンテナンスの有無を監視した。
作ったもの
機能
- 引数に IP を利用する。
- さくらのクラウドの API を利用して、インスタンスのメンテナンス情報を参照する。
zabbix サーバーから利用することを想定しているので IP からインスタンスを特定できるようにした。
./check.py InstanceIP
- メ ンテナンス情報がある場合は対象 URL が出る。
- メンテナンス情報がない場合は何も出ない。
- エラーの場合は内容に応じたメッセージが出る。
- “API key not exist.” API 情報が空のときに表示される。
- “API server error Code” APIserver から 200 以外のステータスが返ったときに表示される。
- “引数が足りません。” 引数をつけずに実行したときに表示される。
zabbix 設定
下記のディレクトリに check.py をデプロイすると外部チェックで利用できるようになる。
/usr/lib/zabbix/externalscripts
アイテム設定
名前 | タイプ | キー | データ型 | 監視間隔 |
---|---|---|---|---|
任意 | 外部チェック | check.py[{HOST.IP} ] | 文字列 | 1h |
実行するたび API を叩くので監視間隔を短くしすぎると嫌がられるかも
トリガー設定
※情報が古くなっています。
リンクの設定を参照してください。
トリガはなにか出力されたら検出する設定とした。
check.py[{HOST.IP}].strlen()}<>0
まとめ
Zabbix にアラートが表示されるので見落とさない。
メンテナンス内容まではわからないので URL を閲覧する必要がある。
エラーが出力された場合もアラートが上がるので注意。
参考サイト
おしまい
(2022 年 01 月 22 日追記)
さくらのクラウドのサーバーをスイッチにつなげて使っている場合に IP を検出できない問題に対応