APMで有名なNew Relicの無料枠で外形監視(Synthetic monitoring)をやってみる
はじめに
みなさん、監視してますか!(挨拶
New Relic といえば APM (Application Performance Monitoring) で有名な監視 SaaS ですが、その実サーバインフラ(バックエンド)からフロントエンド、外形監視、ダッシュボード等々、様々なモニタリング機能を網羅的に備えたサービスとなっています。
New Relic | デジタルビジネスにリアルタイムなインサイトを提供
さらに、そのうちのいくつかの機能は無料枠の中で使えます。
今回は New Relic SYNTHETICS の無料枠(Lite プラン)を使って、いわゆる外形監視を実際に設定してみたいと思います。
無料枠でできること・できないこと
Lite プランでは、以下のことが可能です。
- 一般に公開された Web サイト(URL)の監視
- 監視間隔は決められたいくつかの値の中から選択可能
- 1分、5分、10分、15分、30分、1時間、6時間、12時間、1日
- 監視拠点は世界 18ヶ所から複数を選択(全てを選択することも可能)
- 返答に特定の文字列が含まれるか否かのチェックが可能
- SSLの正常性もチェック可能
- リダイレクトレスポンスを「異常」と判定する設定も可能(デフォルトは「正常」)
- 異常検知時にメール通知を行うことが可能
- データの保持期間は 2週間(Pro は 13ヶ月)
- 複数の URL を設定可能
- 監視結果から SLA レポートが自動作成
- 外部公開用の URL を生成することも可能
- DNS Lookup や Connectong など、どの段階で時間がかかっているかの分析
- 一時的な監視通知のミュート(手動)
正直言うと、ちょっとしたサイトの死活監視には十分といえる機能がそろっていそうです!
一方でリトライ回数設定や「n回続けて失敗したら通知」「Slack へ通知」などといった、本格的に Web サイトの死活監視を行う場合には、有料の Pro プランが必要になるでしょう。Pro プランで何ができるようになるかは、下記の URL に比較表があるので参考にしてみてください。
New Relic Synthetics Pricing | New Relic Synthetics
とはいえ、実はここに載っていなくて Pro でできることもあって。。例えば、以下のようなことが Pro だと可能になります。
- スケジュールされたダウンタイムの設定(定期メンテナンスなど)
- APIキーやクレデンシャル情報などの安全な保護
実際に試してみる
そんなわけで、前置きが長くなったので早速ためしてみましょう。まず、まだ New Relic のアカウントをお持ちでない方は、トップページ右上の Sign Up
からサインアップしてください。
New Relic にログインすると下記のような画面が表示されるかと思います(画面サイズに応じて若干レスポンシブります)ので、「SYNTHETICS」をクリックしましょう。
いきなり作成画面が表示されます。
もし既に複数の Synthetics 設定を行っている場合は、上部のツールバーから SYNTHETICS を選択すると一覧を表示させることができます(ちょっと複雑ですね)。
Create a new monitor
必要事項を順番に埋めていきましょう。この設定内容はあとからいくらでも変更可能です。
1. Choose your monitor type
無料プランだと「Ping」しか選択できませんので、素直にこれを選択します。
2. Enter the details
上から順に、下記を埋めていきます。
- First, name your monitor
- この監視項目に名前を付けましょう。試した限りでは日本語や空白文字も大丈夫のようです。
- Enter a URL and we'll generate a script for you automatically
- 監視対象の URL を設定します。
https://www.example.com/
みたいな書き方になります。
- 監視対象の URL を設定します。
- Add a validation string to look for in the response (optional)
- 3つめはオプションです。返ってきた HTML 内に指定した文字列が含まれるかどうかをチェックしたいときに、その文字列を指定してください。
+ Advanced Options
をクリックすると、さらに 3つのオプションが選択できるようになります。
- Verify SSL
- SSLハンドシェイクに問題があった際に異常として通知したい場合はチェックを入れてください。
- Bypass HEAD request
- 指定したURLから、HEADではなくGETでコンテンツを取得したい場合にチェックを入れてください。上の Validation string を指定した場合は必ず ON になります。
- Redirect is Failure
- 3xx 系のレスポンスコードも異常と見なされます。障害時に自動的にソーリーページを表示しているような場合にはチェックを入れた方が良いかもしれませんね。ご検討ください。
3. Select monitoring locations
世界 18ヶ所のどこからチェックを行うかの指定ができます。ある程度はお好みなのですが、AWS東京リージョンに置いてあるサイトなら ASIA / Tokyo, JP ともう一ヶ所、近場の Seoul, KR や Singapore, SG あたりを ON にしておくと良いのではないでしょうか。
とはいえ、前述したようにこの設定はいつでも変更可能なので、ちょっと試しに設定してみるのもいいかなと思いましたw
以下余談ですが、試しに東京リージョンの S3 バケットに対して監視設定してみたところ、東京からは 60〜70ms 程度(たまに120msなど)というレスポンスタイムなのですが、パリからは平均で 1秒近くかかってしまう状態でした。Singapore, SG であっても400ms。これを同時に設定しても正直言ってグラフが見づらくなるだけなので、通常はリージョン障害を見据えて東京 + 1くらいにしておくのが良いかなと思いました。
もちろん CloudFront をかぶせるようなサイトであれば、多拠点からの計測はとても有意なものと思います。
4. Set the schedule
監視する間隔を設定します。いまのご時世、通常は 1分間隔でいいと思うのですが、監視対象の負荷が気になるような場合にはコントロールしてみましょう。
5. Get notified
オプショナルです。異常時にメール通知したい場合は設定しましょう。
よければ Create my monitor
をクリックしてください。
画面は MONITOR/Overview 画面に切り替わるかと思います。しばらく待ってみると、ぽつぽつと計測結果がプロットされていくのが分かるでしょうか?
せっかくなので、ここで少し(30分〜1時間くらい)放置して、計測結果をため込んでみましょう。
監視結果を表示してみる
New Relic の Synthetics は、複数の画面で計測結果を確認することが可能です。
Overview
一番基本となる画面かと思います。monitoring locationごとの RTT の遷移や、直近 2週間・7日・1日の可用性などを一望するることが可能です。
また、これはいくつかの画面で共通ですが、上部の TIME PICKER のところからグラフの表示範囲を変更することが可能です。
Results
1回のアクセスのうち、DNS lookupやConnection などのどこの段階にどれだけ時間がかかったのか、が分かります。拠点ごとにON/OFFすることも可能ですし、妙に遅いときが見つかった際のトラブルシュートに役立つでしょう。
ここではFilter locationsの設定から、東京の結果のみに絞って表示させています。
Resources
レスポンスコードの比率などが確認できます。これもトラブルシュートに有用そうですね。
Failures
接続失敗があった場合にここに一覧されます。接続失敗時のレスポンスメッセージなどが確認できます。
Reports / SLA
日ごと / 週ごと / 月ごとの SLA レポートを見ることができます。
また、上で軽くふれましたが、右上の「Public SLA」スイッチを ON にすることで、New Relic のアカウントがなくてもこのSLA画面を参照することが可能になる URL が発行されます。社内のポータルに埋め込んだりしてもいいでしょう。
Apdex は聞き慣れない方もいるかもしれませんが、簡単に言うと「基準値以下の秒数で返答があれば満足、それ以上では不満と定義して、このサイトの応答速度はどのくらいの満足度か」を数値化したものです。
Apdex:ユーザー満足度の測定 | New Relicのドキュメント
基準値 T は設定(SETTINGS / General)から変更が可能です。初期値は 7(秒) なのでちょっと長いですねw
まとめ
外形監視の SaaS といえば、Mackerel や Datadog、Pingdom などいくつかありますが、多くは有料です。無料でここまで使える外形監視はなかなか貴重なうえ、SLA レポートや Apdex など特徴的な機能もありますので、「金払ってまで監視するほどではない」サイトに対して、あるいは「有料監視の補助的な位置づけ」として、まずさわってみるのも良いのではないでしょうか。