Top takeaways
はじめに:
Contents Delivery Network(以下、CDN)を運用している中で発生しているログをみなさんはどの様に活用されていますか?みなさまのサービスを活用されているお客様に何か問題が発生した際に、ログファイルを取得して解析するといった際に活用されているのではないでしょうか?もし、このログファイルの取得が、解析が必要な際に既に手元で解析できる状況だと、みなさまの解析作業を迅速に進められるのではないでしょうか?あるいは、その解析でさえもリアルタイムで行えるのであれば、みなさまは根本原因の対応、ひいては、障害発生の予兆を捕まえることができるようになるのではないでしょうか?
本ブログでは、セキュアネットワーク実現で定評のあるCloudflareのログを直接New Relicに送信するための設定をご報告させて頂きます。
重要: New Relicにログを送るためには、Logpush機能を用います。Logpush機能は、Enterprise契約が必要となりますので、ログを転送したいサイトやサービスが所属するドメインのゾーンに対してEnterpriseの契約を行なってください。
本ブログでは、既にCloudflareのアカウントをお持ちでEnterprise契約が行われたことを前提として記載しています。
ブログの大きな流れは以下の通りです。
- 実作業紹介
- 事前準備: New Relic API Keyの取得
- Cloudflare上でのログ転送設定作成
- New Relic Logsのログ受信確認
- New Relic Dashboardの作成例紹介
上記の実作業の所要時間は、おおよそ10分程度の見込みです。これらの一連の作業は、既にNew Relicのアカウントをお持ちの方を想定しています。もし、New Relicアカウントをお持ちではない場合、こちらより、Freeアカウントを取得して下さい。
1. 事前準備: New Relic API Keyの取得
- こちらのブログの手順に従って、ライセンスキー(Ingest - License)を取得してください。ここで取得したライセンスキーは、Logpush設定の最後の方で設定するdestinationの指定で用います。
- ご利用になられているNew RelicのアカウントがUS設定かEU設定かによってdestinationに設定するURLが変わります。
- USを利用している場合: "https://log-api.newrelic.com/log/v1?Api-Key=<NR_LICENSE_KEY>&format=cloudflare"
- EUを利用している場合: "https://log-api.eu.newrelic.com/log/v1?Api-Key=<NR_LICENSE_KEY>&format=cloudflare"
- 得られたAPI KEYの値を用いて上記の<NR_LICENSE_KEY>部分を上書きしたものが、destinationに設定するURLになります。こちらは後ほど用いますので、お手元に記録しておいてください。
2. Cloudflare上でのログ転送設定作成
- Cloudflare Dashにログインし、対象のゾーンにアクセスします。
- アクセス後、左ペインよりAnalytics → Logsを選択します。
- Logpush設定の画面が表示されますので、Connect a serviceボタンをクリックし、詳細の設定画面にアクセスします。
- Datasetを選択する画面が表示されるので、ログとしてNew Relicに送信したいデータセットを選択し、画面右下のNextボタンをクリックします。
- 補足1: データセットを選択することで当該データセットのタイルがハイライトされ、画面右下のNextボタンがクリックできる様になります。
- 補足2: 以下のステップは、HTTP requestsを選択した場合の画面表示令を用いますが、実行する内容は、その他のデータセットを選択した場合も同じです。
- 選択したデータセットに合わせてデータフィールド一覧が表示されるので、ログラインに載せるデータフィールドを選択します
- 補足1: Advanced Settingsでは、ログのタイムスタンプのフォーマットとサンプリングレートを指定することができます。
- 補足2: ここでログのタイムスタンプを変更した場合でも、後続のステップで自動的にNew Relicがサポートしているタイムスタンプに変更されます。
- 補足3: Cloudflare社より、以下のドキュメントが提供されています。
- desitionationの選択画面が表示されますので、New Relicを選択し、Nextボタンを押します。
- Destinationのendpointを指定する画面が表示されるため、事前作業を作成したURLをHTTP endpointに記載します。記載後、Validate accessボタンをクリックします。
- Cloudflareにてログの送信が行えるかなどの確認を実施し、検証が完了すると、Logpushの設定を展開することができるようになります。右下のPushボタンをクリックし展開を行います。
- Logpushの画面にて作成した設定が表示されますので、展開が完了するまでお待ち下さい。
3. New Relic Logsのログ受信確認
- New Relicにアクセスし、メニューよりLogsにアクセスします。
- LogsのUIにて、Cloudflareのログ受信を確認できたら、ログ連携の設定は完了です。
New Relic Dashboardの作成例紹介:
CloudflareのログをNew Relicに連携することで以下のダッシュボードを作成することができるようになります。
次のステップ
まとめ:
New Relic OneにCDNのログを連携することで、日々の運用の中でログを手動で取得たり、都度都度解析を行うという負担を一気に解消することができ、必要な配信状況を必要な時に即座に確認ができるようになります。サービスが問題なく稼働しているのか、現在の配信状況が過去と比較して想定外の振る舞いを行っていないか、そのような複雑な確認を、New Relicと連携することで簡単に実現できるようになるのです。
ご紹介したDashboardは、集積したデータを元に、さまざまなカスタマイズを行うことができますので、みなさまのサービス固有な視点の解析を取り込み、即座に運用に活かすことが可能です。
また、トラブルシューティングの時にも、既にログが取り込まれていることの価値をご理解頂けるかと思います。ログを取得し、問題の箇所を特定するという作業も、New Relicのポータルにアクセスするだけで実現できるのです。日々の運用やトラブルシューティングを通してCDNのログ情報を活用頂くことで、CDNのより効果的な活用を推進することも可能となります。
今回のブログでは、CDNという観点でのみ記載させて頂いていますが、CDNはサービスを構成する重要な部分を担っていることは、共通の理解かと思います。また、New Relicは、システムの本丸であるバックエンド側や、みなさまのサービスを活用されているお客様がどのような状況でサービスを利用しているかといった計測も得意としております。ですので、フロントサイド/CDN/バックエンドの計測データを一元的に集約し、分析に活用する。一元的に集約したデータを元に、さまざまな組み合わせで潜在的なリスクが顕在化するまえにアラート発報を行い、問題の改善を迅速に行うといったことができるようになるのです。今後は、フロントサイド/CDN/バックエンドを組み合わせた活用方法についてもお伝えしていきたいと思います。
New Relicは、CDNを含めたサービス全体の状況を把握するための環境をご提供致します。CloudFrontに限らず、さまざまなCDNの連携ノウハウについてもご提供可能でございますので、是非、お気軽にお声がけ下さい。
本ブログに掲載されている見解は著者に所属するものであり、必ずしも New Relic 株式会社の公式見解であるわけではありません。また、本ブログには、外部サイトにアクセスするリンクが含まれる場合があります。それらリンク先の内容について、New Relic がいかなる保証も提供することはありません。