Cloudflare の Health Check
CloudflareではCDNやWAFを使っていない外部のウェブサイトであっても、(勿論CloudflareのCDN/WAF経由のウェブサイトであっても)Health Check を行うことが可能です。
やってみる
環境構築
まずはいつも通り以下の手順に従ってnginxでWebサイトを起動します。
Health Check の設定
マネージメントコンソール左ペインでtraffic→Health Checksをクリックします。

Createをクリックします。

適当な名前を入力し監視対象のURLもしくはIPアドレスを入力します。CloudflareのCDNを使っているウェブサイトの場合、Cloudflare側で管理しているドメインのURLではなくオリジンのURLかIPアドレスです。

監視対象のプロトコルとメソッドを設定します。


HTTP(s)の場合GETとHEADのみをサポートしています。期待するHTTPステータスコードとResponse Bodyに含まれる文字列を入力します。この例では空欄で作業を進めます。

Webサイトの設定によっては特定のHTTPヘッダーを要求したり、時にはHTTPヘッダーが空欄の場合レスポンスを戻さないものがあります。(Bot対策などで多くのウェブサーバで使われる手法です)この場合この設定箇所で特定のHTTPヘッダーをRequest時に送ることができます。

監視間隔、リトライ回数、タイムアウト、監視に用いるクラウドフレアの地域を設定します。

例えばこの設定の場合、極東アジア地域と北米地域から同時にヘルスチェックを行います。
Save and Deployをクリックしてしばらく待ちます。
結果 と アラート
60秒の2回間隔で設定しましたので、2~3分待つと以下の通りステータスが表示されます。

次にアラートを設定します。Configure an alertをクリックします。

適当な名前を付けてメールアドレスをセットします。

アラートのトリガーとするHealth Checkの設定を選択します。

トリガーのステータスを選択します。

この状態でオリジンのインスタンスを落とします。ステータスがUnhealthyに変更しています。

以下のようなアラートメールが飛んできます。

Health Check Analytics
こんな感じでHealth Check の統計とRTTの計測ができます。

Discussion