Compute@Edge ログストリーミング: Coralogix

Fastly の Compute@Edge サービスのリアルタイムログストリーミング機能では、ログファイルを Coralogix に送信することができます。Coralogix は 動的アラート比率ベースのアラートフローの異常検出、そして 脅威発見機能などで異常な動作を検出できる分析プラットフォームを提供しています。

前提条件

まだ Coralogix のアカウントをお持ちでない場合、Coralogix の Web サイトの登録手順に従ってアカウントを登録する必要があります。登録が完了したら、Coralogix のダッシュボードの Settings セクションにある Send Your Logs エリアに移動し、固有の秘密鍵をメモします。この秘密鍵は、お客様が送信したデータをお客様のアカウントと関連付けるために、Coralogix によって使用されます。Fastly でエンドポイントを設定する際に必要となります。

Coralogix をログエンドポイントとして追加

以下の手順で、Coralogix をログエンドポイントとして追加します。

  1. リモートログストリーミングの設定に関するガイドの情報をご参照ください。
  2. HTTPS Create endpoint ボタンをクリックしてください。Create an HTTPS endpoint ページが表示されます。
  3. Create an HTTPS endpoint フィールドに次のように入力します。
    • Name フィールドに分かりやすいエンドポイントの名前を入力します。
    • Placement セクションでは、生成される VCL にログコールが配置される場所を選択します。有効な値は Format Version Defaultwaf_debug (waf_debug_log)None です。詳細については、ログ配置の変更に関するガイドをご参照ください。
    • URL フィールドに Coralogix の地域 FluentD API URL を入力します。詳細については、Coralogix のドキュメントをご参照ください。例えば、米国の Coralogix アカウントなら、 https://api.coralogix.us/logs/rest/singlesを使用します。
    • Maximum logs フィールドは、0 (デフォルト) のままにしておきます。
    • Maximum bytes フィールドに、2000000 を入力します。
  4. Create an HTTPS endpoint ページの Advanced options リンクをクリックします。Advanced options が表示されます。
  5. Create an HTTPS endpoint ページの Advanced options に次のように入力します。
    • Content type フィールドに application/json を入力します。
    • Custom header name フィールドに private_key を入力します。
    • Custom header value フィールドに、Coralogix の秘密鍵を入力します。
    • メソッド コントロールから、投稿 OR ブログ記事 を選択します。
    • JSON log entry フォーマット コントロールから、Array of JSON を選択します。
    • Select a log line フォーマット コントロールはデフォルトのままにします。
    • TLSホスト名TLS CA 証明、TLS クライアント証明、およびTLSクライアントキーフィールドを空所のままにします。
  6. Create ボタンをクリックすると、新しいログエンドポイントが作成されます。
  7. Activate ボタンをクリックして設定変更をデプロイします。

推奨されるログ形式

Coralogix に送信されるデータは、Coralogix の期待によって、シリアル化する必要があります。ログが正しい形式でない場合、Coralogix エンドポイントでログを処理しようとすると、失敗する可能性があります。以下は、Coralogix にデータを送信するためのフォーマット文字列の例です。

1
2
3
4
5
6
7
8
9
10
11
12
{
    "timestamp": 1653088964764,
    "applicationName": "fastly",
    "subsystemName": "wasm",
    "severity": 3,
    "json": {
        "message": "Request happened",
        "response": {
          "status":200
       }
    }
}

Compute@Edge サービスの選択言語に関係なく、上記の一般的な JSON 構造を確認することができます。以下のフィールドは必須です。

  • timestampこのフィールドの形式は、ミリ秒です。
  • applicationNameアプリケーション名を入力します。
  • subsystemNameサブシステム名を入力します。これは、コンポーネントを分離するために使用されます。サブシステムを識別するのに分かりやすい、意味のあるサブシステム名を使用してください。
  • severityすべてのログの重大度は、1(デバッグ)、2(詳細)、3(情報)、4(警告)、5(エラー)、 および 6(クリティカル)のいずれかを選択して指定することができます。これは、以下のフィールドで説明されているように、抽出ルールを利用して変更することができます。
  • json (object)必要に応じて、ログの詳細を指定するために使用します。ネストされた JSON 形式はサポートされます。

    ネストされたフィーresponse.statusルドの指定は、リクエストのサービスを特定するための便利な方法です。Coralogix 解析ルールを使用すると、ログのステータスコード値でCoralogixインターフェイスの重大度フィールドにデータを入力するように JSON 抽出ルールを設定することができます。具体的には、HTTP ステータスコードを重大度の値を自動的にマッピングすることができます。例えば、2xx ステータスコードは Coralogix の深刻度を "INFO" とし、4xx ステータスコードは Coralogix の深刻度を "ERROR" とします。

    Coralogix Web コントロールパネルでは、以下のように表示されます。

    新しい Coralogix ルールの作成

Coralogix ダッシュボードとアラートの設定

Coralogixは、ダッシュボードやアラートを介して Fastly と自社サービスを統合するためのチュートリアルを提供しています。サービスの概要、ビジターの内訳、サービスの質など、Fastly のデータを使って作成されたデータダッシュボードの例が掲載されています。

チュートリアルでは、Fastly からのログの受信問題、オリジンでの障害、エラー率やキャッシュミスの増加、様々な異常や疑わしいリクエスト、Web サイトの改ざんなどの状況に応じてユーザー定義アラート設定する方法も説明されています。

Back to Top