この記事について
NewRelicのSynthetic Monitorを利用すれば、WEBシステムへの外形監視を簡単に実装することが可能です。
https://docs.newrelic.com/jp/docs/synthetics/synthetic-monitoring/getting-started/get-started-synthetic-monitoring/
この記事では実際にSynthetic Monitorを利用してWEBサイトへの外形監視を行い、異常が発生した際にSlackに通知できるように実装します。
構成
今回外形監視の対象としてテスト対象サイトである「HOTEL PLANISPHERE」を利用します。
https://hotel.testplanisphere.dev/ja/
外形監視はHTTPリクエストを送ってレスポンスコードが200であれば正常と判断するシンプルなものとします。(NewRelic SyntheticではPing Monitorと呼ばれています)
実装
Synthetics Monitorの作成
NewRelicのウェブUIから「Synthetic Monitor」 => 「Create Monitor」を選択します。
Monitorの種類を指定します。ここで「Availability Ping」を選択します。
監視対象のURLなどを設定します。(ここではAdvanced optionsは設定しません)
外形監視の送信元ロケーションを指定します。
今回はあくまでテストなので、Tokyoのみとします。実際は3ロケーション以上指定することが推奨されています。
Success rateが100%になっており、Checks failedがカウントされていないため、正常に外形監視ができていそうです。
Condtionの作成
Synthetic Monitorを作成したため、外形監視自体は行えるようになりました。
次にこの外形監視を利用して、閾値を設けて、通知を行えるようにConditionを作成します。
「Alerts & AI」から「Alert condtions (Policies)」を選択します。
任意の名前を入力して、「One issue per incident」を選択してから、「Set up notifications」を選択します。
destinationは「Create new destination」を選択します。
「Authenticate in one click」を選択します。
Slackの認証サイトへリダイレクトされるため、「許可する」をクリックします。(利用しているSlackの環境によってこの辺の挙動は変わるので、ご注意ください)
認証に成功するとワークスペースが登録されるので、destinationに登録されたワークスペースを追加します。そして通知を飛ばしたいチャンネルを選択します。
「Send test notification」を選択して、Slackにテスト通知を行います。
「Test notification sent successfully」と表示されたら成功です。
「Synthetics」 -> 「Single failure」を選択します。
Condtion名を入力して、「Create condition」を選択します。
動作確認
HOTELPLANISPHERE(https://hotel.testplanisphere.dev)を停止することはできないので、Synthetic Monitorの設定を一時的に変更して、疑似的な障害を発生させます。
Synthetic Monitorから「Settings」 -> 「General」を選択します。
URLにダミーのパスを追加して、外形監視が失敗するようにします。
数分待って、Condtionを確認すると「open incident」と表示されています。
「open incident」を選択すると、インシデントの詳細を確認することが可能です。
最後に
外形監視の実装手順は以上になります。
簡単に実装できることを理解いただけたかと思います。
今回はPing Monitorというステータスコードが200であることを成功判断とする、最も簡単なSynthetic Monitorで実装を行いました。他にも複雑な外形監視を実装する機能がありますので、以下の記事も併せてご確認ください。