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