2014-09-14

StatusCake API を使って監視設定を一括更新する

StatusCake とは基本無料でサイト数の制限なく Web サイトの死活監視を行えるとても便利なサービスです。監視設定は管理画面より一つづつ設定を更新することは可能なのですが、複数の監視設定の変更を一度に行う一括更新機能は無いようなので、StatusCake API を使って変更を行ってみました。

API Key はアカウント情報のページより取得できます。Username はログイン時のユーザー名を入力してください。以下のサンプルコードは Python で requests ライブラリ を使った場合の例です。動作させるには pip install requests を実行してライブラリを追加してみてください。

import requests

urlBase = 'https://www.statuscake.com/API'
authHeaders = {'API':'APIKEY', 'Username':'USERNAME'}

# 各テストをすべて更新する例
for test in requests.get(urlBase + '/Tests', headers=authHeaders).json():
    print test['TestID'], requests.put(urlBase + '/Tests/Update', headers=authHeaders, data={
        'TestID': test['TestID'],
        'Confirmation': 3,
        'TriggerRate': 1,
        'CheckRate': 300,
    }).json()

# テスト詳細の取得
requests.get(urlBase + '/Tests/Details', params={'TestID': 123123}, headers=authHeaders).json()

# コンタクトグループ一覧を取得
requests.get(urlBase + '/ContactGroups', headers=authHeaders).json()

メモ
Web の管理画面ではテストに対してコンタクトグループを複数指定できるのですが、API からは最初の1つのみ更新できるようです。

API の末尾のスラッシュは無くても大丈夫みたいです。

StatusCake に似たサービスで、50個まで監視項目を設定できる Uptime Robot というサービスもあります。

リンク
StatusCake - Website Uptime Monitoring & Alerts – Free Unlimited Downtime Monitoring
StatusCake API Documentation
Requests: HTTP for Humans