ブログに戻る

フォロー&ご登録

英語のみで利用可能

このページは現在英語でのみ閲覧可能です。ご不便をおかけして申し訳ございませんが、しばらくしてからこのページに戻ってください。

リアルタイムログによるコントロールとセキュリティの向上

Simon Wistow

VP Strategic Initiatives, Fastly

お客様にとって可視性とコントロールが重要であることを、私たちはよく理解しています。これは言い換えると、お客様のデジタルサービス全体の状況に関する実用的なインサイトと、必要な場合に変更を行える柔軟性が求められているのです。Fastly のリアルタイムログにより、トラフィックを可視化して迅速な判断と変更が可能になります。Fastly のログ機能では、ログファイルを瞬時に任意のプロバイダーにストリーミングし (リストはこちら)、リクエストやレスポンスのあらゆる要素を分析することで、問題を迅速に診断したり、ユーザーがアプリをどのように使用しているかを把握したりすることができます。Fastly は、ログデータの所有権はお客様にあると考えているため、ログデータを保管しません。

業界をリードする組織は、さまざまな革新的な方法でログを使用しています。The Guardian は、自社サイトに変更をデプロイした後に発生し得る問題を検出するための早期警告システムとしてログストリーミングを利用しています。また Foursquare は、キャッシュされるコンテンツやストリームされるデータを決定するのにログデータを使用しています。Upworthy は Fastly の統計機能と他のクラウドサービスを併用し、サイトの健全性を包括的かつリアルタイムに把握しています。さらに Target のテクノロジーチームの一日は、カスタムビルドのダッシュボードで自社のネットワークエッジに関する情報を収集して状況を把握し、スタックの他の部分に関するより詳しい情報と統合することから始まります。

Fastly のエッジクラウドプラットフォームは、1秒に約400万行のログを処理し、約 5 Gbps の帯域を利用してトラフィックの包括的なビューを提供します。ログデータを使用することで、システム動作の遡及的なレビューや、イベント発生時のリアルタイム対応 (例えば、キャッシュミスの応答時間が5秒を超えた際にオリジンの過負荷の可能性を警告するなど) が可能になります。ログデータが事前定義された条件を満たすたびに API を呼び出すスクリプトを使用し、ログ設定の変更をプログラミングすることもできます (例えば、リクエスト情報に基づいてバージョンレスのエッジ ACL に IP を追加して、レート制限またはブロックリストを適用できます)。

Big Cartel はトラフィックパターンをプロアクティブにモニタリングし、瞬時に設定を更新して悪意のあるトラフィックをエッジでブロックundefined

このブログ記事では、フォーマット化やコントロールの向上、新しいログエンドポイントとの統合、セキュリティの強化などを可能にする Fastly の最新のログ機能と、その利用方法を紹介します。

互換性の強化

必要なエンドポイントにログをストリーミングしやすくするために複数の新しいロギングエンドポイントのサポートを追加し、既存の統合機能を強化しました。

Logentries のワンクリックセットアップ

Logentries との提携により、Fastly から同社のログ分析プラットフォームにきわめて簡単にログを送信できるようになりました。今後はコントロールパネルのボタンをクリックするだけで、Logentries のトライアルアカウントを作成し、ログオブジェクトを設定して送信できます。30日間のトライアル期間が終了した後にアカウントの保持を選択しない限り、このトライアルアカウントに対する課金は発生しません。また、自動生成されたログオブジェクトはいつでも削除可能です。

Google BigQuery との統合

Google のビッグデータプラットフォームである BigQuery にログを直接ストリーミングできるようになり、大量のデータセットに対する高度な分析や BigQuery に書き込んでいるその他のソースとのデータ関連付け、LookerTableau などのツールによるデータの可視化などが可能になります。(こちらの Fiddle で BigQuery にログをストリーミングする方法を確認できます。)

Fastly のデータを活用した Looker のトラブルシューティングダッシュボードの例undefined

Sumo Logic ダッシュボード

新しい Sumo Logic App for Fastly を使用すると、事前構成済みダッシュボードにアクセスして、関連データの迅速な分析や関連付けが行えます。また、必要に応じてダッシュボードをより細かく設定したり、しきい値に達した際の通知アラートを作成したりできます。

オリジンのパフォーマンス向けに事前構成された Sumo Logic のダッシュボードundefined

Scalyr との統合

お客様からの要望が多い、人気の LaaS プロバイダー Scalyr にログを送信できるようになりました。

フォーマット機能とコントロールの改善

最新のアップデートによって、ログの送信方法をより柔軟に設定することが可能になりました。

  1. 外部システムとの相互運用性を向上させるため、フォーマット化システムをアップグレードして Apache ログディレクティブとの完全な互換性を実現しました。Apache ログに関するサードパーティのドキュメントやブログ投稿の内容は、今後 Fastly でも活用できます。また、新しいパーサーによって、CSV や JSON などの構造化されたログ形式での出力がより簡単になり、カスタム VCL を使用せずにログ行で任意の VCL 式を使用できるようになります。

  2. 送信するメッセージの形式を変更できるので、サードパーティツールとのやり取りが従来以上に簡単になりました。これまでは以下の例のような、(RFC 3164 で定義されている) プリフィックスを含む標準的な syslog 形式でログメッセージが送信されていました。

    <134>2016-07-04T22:37:26Z cache-sjc3128 LogTest[62959]: <your log message>

    現在は複数の形式からひとつを選択できます。

    • Classic はデフォルトのプリフィックス形式で、RFC 3164 に基づく syslog の標準プリフィックスです。

    • Logplex は Heroku スタイルのプリフィックスを持つ syslog 形式です。

    • Blank はプリフィックスの無い、ログメッセージのみの形式なので、JSON ファイルや CSV ファイルの生成が可能です。

  3. また、S3や GCS、FTP などのエンドポイントにログファイルを書き込む際に含まれるタイムスタンプをカスタマイズする機能も提供しています。デフォルトでは、ログが作成された時刻が ISO 8601 の形式 (例 : 2017-02-10T19:55:42.000) で追加されます。

    しかし別の形式のタイムスタンプが必要な場合もあります。例えば Amazon の ElasticMapReduce のようなサービスでは、ファイル名にコロンが使用されているファイルで問題が発生する可能性があります。現在は標準的な strftime 形式を使用してタイムスタンプの形式を設定できるようになりました。便利なオンラインツールのこちらで strftime を試して、ご自身のニーズに最も適した形式を見つけるのにお役立てください。

  4. Fastly のログ機能によって、クライアント IP やタイムスタンプ、リクエストタイプ、リクエスト URL、HTTP ステータスコードなど、リクエストヘッダーやレスポンスヘッダーに含まれるほぼすべての情報を確認できます。Fastly では以下を提供する VCL の拡張機能をご利用いただけます。

    • 日時関連の変数 : 日時の取り扱いにおいて高い柔軟性を可能にするデータを含みます。

    • サイズ関連の変数 : 個々のヘッダーとボディのサイズを含む、リクエストやレスポンスのサイズをログに追加します。

    • 位置情報関連の変数 : クライアント IP に関連する大陸や国、都市など位置情報に基づいたさまざまな地理情報の変数を記録できます。リクエストを受けたデータセンターの地理情報や POP のロケーション (都市など) も確認可能です。

セルフサービスで設定可能

ログ行の作成方法をさまざまな側面からより厳密に、お客様がコントロールできるようになり、Fastly が直接サポートしていないログサービスに簡単に接続することが可能になりました。

例えば LogDNA に接続したいお客様は、一般的な Syslog コネクタを使用してホスト名とTLS 証明書をご自身で設定できます。詳しい手順についてはログストリーミングに関するこちらのガイドでご紹介しています。

より複雑な例として、仮に Fastly が Loggly をサポートしていなくても、以下の手順でログを送信できます。

  1. ホスト名を logs-01.loggly.com に設定する

  2. ポートを 6514 に設定する

  3. TLSを yes に設定する

  4. メッセージタイプを blank に設定する

  5. Loggly からトークンを取得する

  6. 形式を <134>1 %{"%Y-%m-%dT%T%z"}t %{server.datacenter}V <log name> - - [<token>@41058 tag="fastly" tag="other tag"] <rest of format> に設定する

最後の部分は少し説明が必要でしょう。これは RFC 5424 に記述されている形式 (こちらの説明によると、Loggly は syslog イベントの受信においてこの形式のみをサポート) を使用して syslog メッセージを作成するための手順です。メッセージの「構造化データ要素」の部分にトークンと Loggly の PEN (Private Enterprise Number) である「41058」を、必要なタグと一緒に挿入します。形式のその他の部分は、通常のログメッセージと同様です。

以前、Logz.io や Datadog の新しいロギング製品にログを送信するために、同様の手順を踏んだお客様もいました。

将来的には使いやすさを考慮し、直接サポートされているロギングオブジェクトとしてこれらを追加する予定です。一方でこうした柔軟性は、Fastly が直接サポートしているかどうかにかかわらず、お客様が任意のシステムとの統合を実現できるよう取り組むという、Fastly の哲学の一環といえます。また、今後は New Relic Insights のような HTTP ベースのロギングツールや分析システムとの統合も、お客様ご自身で簡単に実行できるようにしたいと考えています。

セキュリティの強化

セキュリティ強化を目指して、Amazon S3 への書き込み時にサーバー側の暗号化を有効にする機能を追加しました。有効化すると、送信するログファイルがすべて暗号化されてディスクに書き込まれ、お客様のデータが保護されます。

これは Amazon 向けの機能ですが、同様の機能として PGP (Pretty Good Privacy の略で、暗号化のデファクトスタンダード) 公開鍵を Fastly と共有できるようにする機能のサポートも追加しました。これによって、Fastly が書き込む、お客様のサービスに関するあらゆるログファイルを暗号化できます。暗号化した後に、ご自身の秘密鍵を使用してファイルをいつでも復号化できます。この機能は Amazon S3、Google Cloud Storage (GCS)、File Transfer Protocol (FTP) など、ファイルを書き込むあらゆるロギングエンドポイントに活用できます。

最後に

今回のアップデートにより、皆さんがご自身のログを最大限活用し、データをリアルタイム</u>に利用することで、リクエストとレスポンスに関する実用的なインサイトが得られるようになることを願います。Fastly のリアルタイムログ機能 (およびその利用方法) に関する詳細は、こちらのガイドをご覧ください。また、サンフランシスコで開催された Fastly のカスタマーサミット「Altitude」で催されたエッジでのロギングに関するワークショップの動画もご参考にしてください。ログ機能やロギングプロバイダーについてご質問等がございましたら、いつでもお問い合わせください。

Fastly は今後もログ機能の向上に努めます!