💻

さくらのクラウドのメンテナンス情報の有無をzabbixで監視する
April 08, 2021February 19, 2024
#Develop#Zabbix#Git

さくらのクラウドは不定期にわりと高頻度にメンテナンスが実施される
指定された日までに再起動して、別ホストに移さなければ、不意の再起動を食らう。 メールで連絡は来るが、見落とすことが多かったので、zabbix でメンテナンスの有無を監視した。

作ったもの

GitHub - sakakinox/sakuracloud-maintenance-checker

Contribute to sakakinox/sakuracloud-maintenance-checker development by creating an account on GitHub.

GitHub

GitHub - sakakinox/sakuracloud-maintenance-checker

機能

  • 引数に 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 を閲覧する必要がある。
エラーが出力された場合もアラートが上がるので注意。

参考サイト

https://developer.sakura.ad.jp/cloud/api/1.1/

おしまい

(2022 年 01 月 22 日追記)

さくらのクラウドのサーバーをスイッチにつなげて使っている場合に IP を検出できない問題に対応



sakakinox

Written by sakakinox
Server enginier

Copyright © sakakinox.net 2021-2024.