メインコンテンツまでスキップ
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

コレクタの設定

Sumo Logic で、ホスト型コレクタを新規作成します。

ソースの設定

  1. HTTP ソースを設定します。
  2. ソース フィールドを次のように設定します。
    1. Name (名前)。必須。たとえば、Akamai を使用します。
    2. Source Category (ソース カテゴリ)。必須。たとえば、akamai_cloud_monitor を使用します。[Source Category (ソース カテゴリ)] メタデータ フィールドは、ソースを整理してラベル付けするための基本的な構成要素です。詳細については、「ベスト プラクティス」を参照)。
  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 ソースについて生成された URL エンドポイントを保存します。これは、Akamai を設定するために使用します。

Akamai の設定

  1. Akamai で Luna Control センターを開き、作業するプロパティに移動します。
  2. そのプロパティの新しいバージョンを作成して選択します。
  3. [Property Manager Configuration (プロパティ マネージャ設定)] セクションまでスクロール ダウンします。
  4. [Add Rule (ルールの追加)] を選択して [Cloud Management (クラウド管理)] を選択します。
  5. [Cloud Monitor Instrumentation] を追加します。
  6. HTTP ソースから生成される 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) により、どのフィールドを自動的にパースするかが Sumo Logic に指示されます。手順については、「フィールド抽出ルールの作成」を参照してください。

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

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