メインコンテンツまでスキップ
Sumo Logic Japanese

Akamai Cloud Monitor のログの収集

この手順では、Akamai Cloud Monitor からログを収集して Sumo Logic に取り込む方法について説明します。

ログ タイプ

Akamai 形式のログでは、リクエストごとに 1 つのログ メッセージがあります。

Akamai Cloud Monitor ログ形式については、Akamai サポートに問い合わせて、ドキュメント『Akamai Log Delivery User Guide (Akamai Log 配信ユーザ ガイド)』をリクエストしてください。「Appendix A: Log Formats and Examples (付録 A: ログの形式と例)」を参照してください。

Akamai Cloud Monitor の有効化

Akamai Cloud Monitor とは、Akamai CDN のトランザクション情報を生成するサービスです。

Akamai 環境で Cloud Monitor を有効にするには、
https://www.akamai.com/us/en/solutions/intelligent-platform/cloud-monitor.jsp のサイトに記載されている手順に従ってください。

Collector の設定

Sumo Logic で、Hosted Collector を新規作成します。

Source の設定

  1. HTTP Source を設定します。
  2. Source フィールドを次のように設定します。
    1. Name (名前): 必須。たとえば、Akamai を使用します。
    2. Source Category。必須。たとえば、akamai_cloud_monitor を使用します。[Source Category] メタデータ フィールドは、Source を整理してラベル付けするための基本的な構成要素です。詳細については、「ベスト プラクティス」を参照)。
  3. [Advanced (詳細)] セクションを設定します。
    1. [Extract timestamp information from log file entries (ログ ファイル エントリからタイムスタンプ情報を抽出する)] をオンにします。
    2. Timezone (タイムゾーン): ログ ファイルのタイム ゾーンを使用します。どちらも存在しない場合、UTC を使用します。
    3. Timestamp Format (タイムスタンプ形式)。Auto-Detected
    4. Encoding Type (エンコーディング タイプ): UTF-8
    5. Enable Multiline Processing (複数行の処理の有効化)。
      • Detect Messages Spanning Multiple Lines (複数行にわたるメッセージを検出する)。False
      • Multi Line Boundary (複数行の境界): NA
  4. [Save (保存)] をクリックします。

HTTP Source について生成された URL エンドポイントを保存します。これは、Akamai を設定するために使用します。

Akamai の設定

  1. Akamai で Luna Control センターを開き、作業するプロパティに移動します。
  2. そのプロパティの新しいバージョンを作成して選択します。
  3. [Property Manager Configuration (プロパティ マネージャ設定)] セクションまでスクロール ダウンします。
  4. [Add Rule (ルールの追加)] を選択して [Cloud Management (クラウド管理)] を選択します。
  5. [Cloud Monitor Instrumentation] を追加します。
  6. HTTP Source から生成される Sumo Logic URL エンドポイントからのパスを [Delivery URL Path (配信 URL パス)] セクションに追加します。(/receiver/v1/http/<your unique endpoint> で始まる必要があります)。
  7. メイン プロパティが表示される画面に戻り、新しいプロパティを追加します。
  8. HTTPS トラフィックを処理できるように、必ず TLS 証明書を適用してください。
  9. オリジン サーバを Sumo Logic URL エンドポイントからのサーバとして設定します。
  10. HTTPS ポートを 443 に設定します。

FER (Field Extraction Rules)

FER (Field Extraction Rules) により、どのフィールドを自動的に parse するかが Sumo Logic に指示されます。手順については、「FER (Field Extraction Rules) の作成」を参照してください。

  1. Sumo Logic で、[Manage Data (データの管理)] > [Settings (設定)] > [Field Extractions (フィールド抽出)] に移動し、[Add (追加)] をクリックします。
  2. 次のフィールドを設定します。
    • Rule Name (ルール名): 必須 (たとえば、Akamai Cloud Monitor)。
    • Scope (範囲): HTTP Source について作成した Source Category を使用します (たとえば、akamai_cloud_monitor)。
    • Parse Expression (parse 式): テンプレート Akamai Cloud Monitor を選択し、[Use Template (テンプレートの使用)] をクリックします。parse ステートメントの全文は下にあります。
  3. [Add (追加)] をクリックします。

Akamai Cloud Monitor 用の FER

parse "\"reqMethod\":\"*\"" as method, "\"status\":\"*\"" as status, "\"fwdHost\":\"*\"" as origin

| parse "\"bytes\":\"*\"" as bytes, "\"edgeIP\":\"*\"" as edgeip, "\"country\":\"*\"" as country, "\"cookie\":\"*\"" as cookie

ログ メッセージのサンプル

{
        "type": "cloud_monitor",
        "format": "default",
        "version": "1.0",
        "id": "dce9bc83ff6820435e6633e",
        "start": "1379543560.807",
        "cp": "180370",
        "message": {
            "proto": "http",
            "protoVer": "1.0",
            "status": "200",
            "cliIP": "109.31.186.162",
            "reqPort": "80",
            "reqHost": "www2.acmeco.com",
            "reqMethod": "GET",
            "reqPath": "/cart?display=full",
            "respCT": "",
            "respLen": "",
            "bytes": "",
            "UA": "Chrome/35.0.1916.153",
            "fwdHost": ""
    },
    "reqHdr": {
            "accEnc": "gzip",
            "conn": "Keep-Alive"
},
"respHdr": {
        "accRange": "bytes",
        "conn": "keep-alive",
        "contEnc": "gzip",
        "date": "2016-09-23 23:04:45.697 +0000",
        "eTag": "\"\"",
        "lastMod": "Mon,%2023%20Jan%202012%2001:44:17%20GMT",
        "server": "Apache/2.2.14%20(Ubuntu)",
        "cookie": "987597820765"
},
"netPerf": {
        "downloadTime": "1594",
        "netOriginLatency": "40",
        "originName": "down",
        "originIP": "",
        "originInitIP": "10.10.10.10",
        "originRetry": "0",
        "lastMileRTT": "43",
        "cacheStatus": "1",
        "firstByte": "1",
        "lastByte": "1",
        "asnum": "4812",
        "edgeIP": ""
},
"geo": {
        "country": "us",
        "region": "",
        "city": ""
},
"waf": {
        "logVer": ""
},
"ipRules": "",
"warnRules": "",
"denyRules": ""
}

クエリのサンプル

エラーを起こしている上位の URL

_sourceCategory=akamai 50?
| parse "\"reqPath\":\"*\"" as path, "\"status\":\"*\"" as status
| urldecode(path) as path
| where status > 499
| where status < 600
| count as errors by path
| sort by errors

キャッシュのパフォーマンス

_sourceCategory=akamai cacheStatus
| parse "\"cacheStatus\":\"*\"" as status
| where !(status="")
| if(status="0", "0 - Non cacheable", if(status="1" OR status="2", "1/2 - Cache Hit", if(status="3", "3 - Cache Miss", ""))) as cachestatus
| count by
cachestatus

ホスト別の上位の拒否

_sourceCategory=akamai waf denyRules reqHost
| parse "\"denyRules\":\"*\"" as deny, "\"reqHost\":\"*\"" as host
| where deny != ""
| timeslice 1m
| count by host, _timeslice
| transpose row _timeslice column host

  • この記事は役に立ちましたか?