2025年1月13日 星期一

Akamai CDN access logs to Datadog

目的: 把 blah.foobar.com 的 CDN access log 轉送到 datadog 備查

0. Datadog
  - 設定設定
    - https://docs.datadoghq.com/integrations/akamai_datastream_2/

1. COMMON SERVICES - DataStream
  - 點選 Create stream - Delivery Products
    - CONFIGURATION
      - Display Name: blah-foobar-com-logs-to-datadog
      - Group: Foobar-W-DEADBF
      - Include properties: 勾選 blah.foobar.com
    - DATA SETS
      - Log information
        - (include all)
      - Message exchange data
        - (include all)
      - Request header data
        - (include all)
      - Network performance data
        - (include all)
      - Cache data
        - (include all)
      - Geo data
        - (include all)
      - Web security
        - (include all)
      - EdgeWorkers
        - (include all)
      - Content protection
        - (include all)
      - Custom fields
        - (include all)
      - Log file
        - Log format: Json
    - DELIVERY
      - Destination
        - Destination: 選 Datadog
        - Display name: blah-foobar-com-logs-to-datadog
        - Endpoint: (datadog input endpoint)
          - https://http-intake.logs.datadoghq.com/v1/input
          - https://http-intake.logs.datadoghq.eu/v1/input
        - Tags: source:akamai.datastream
        - Source: akamai.datastream
        - Service:
        - API Key: (datadog api key)
        - Send compressed data: No
      - Delivery options
        - Push frequency: 60 Seconds
    - SUMMARY
  - 幾個步驟建立完之後, blah-foobar-com-logs-to-datadog 的 status 是 Activating - V1
    - 只能 View / History / Clone, 無法 Edit / Deactivate / Delete
    - V1 是指這個 Stream 設定是 version 1, 不是 DataStream 1 的意思

2. CDN - Properties
  - 選 blah.foobar.com 再點選版本, 點 Edit New Version
  - 左邊選 Default Rule, 右邊點 +Behavior 新增 DataStream
    - Stream version 只有選 DataStream 2 會過
      - DataStream 1 要被淘汰掉
      - 選 DataStream 1 會跳出警告訊息, 可以 Save 但無法 Activate
    - Stream names 選 blah-foobar-com-logs-to-datadog
    - Sample rate 預設 100
      - 通靈用的話一定要選 100, 要不然缺 log 會讓你通到屎
  - 最後 Save
  - 然後 Activate 這個新版本上線
    - 最久 10 分鐘才會完成

3. 回到 COMMON SERVICES - DataStream
  - blah-foobar-com-logs-to-datadog 的 status 在 Properties 上完之後變成 Active - V1
    - 第一次比較快
    - Active 狀態才可以 Edit / Deactivate
      - 要 Delete 的話, 要先 Deactivate 讓狀態變成 Deactived 才能 Delete
    - 無論是 Edit / Deactivate, 最久 60 分鐘才會生效

2025年1月9日 星期四

Akamai CDN access logs to S3 bucket

目的: 把 blah.foobar.com 的 CDN access log 轉送到 s3 bucket 備查

0. AWS S3
  - 開好 bucket
    - blah-foobar-com-logs @us-west-2
  - 建立完全存取這個 bucket 的 IAM User 
    - S3-blah-foobar-com-logs-ReadWrite
  - 在這個 IAM User 建立 access key pair

1. COMMON SERVICES - DataStream
  - 點選 Create stream - Delivery Products
    - CONFIGURATION
      - Display Name: blah-foobar-com-logs-to-s3
      - Group: Foobar-W-DEADBF
      - Include properties: 勾選 blah.foobar.com
    - DATA SETS
      - Log information
        - Request time
      - Message exchange data
        - Bytes
        - Client IP
        - HTTP status code
        - Protocol type
        - Request host
        - Request method
        - Request path
        - Request port
        - Response Content-Length
        - Response Content-Type
        - User-Agent
        - SSL overhead time
        - SSL version
        - Object size
        - Uncompressed size
        - Total bytes
        - Query string
      - Request header data
        - Cookie
        - Range
        - Referer
        - X-Forwarded-For
        - Max age
      - Network performance data
        - Error code
      - Cache data
        - (null)
      - Geo data
        - (null)
      - Web security
        - (null)
      - EdgeWorkers
        - (null)
      - Content protection
        - (null)
      - Custom fields
        - Custom field
      - Log file
        - Log format: Json
    - DELIVERY
      - Destination
        - Destination: 選 Amazon S3
        - Display name: blah-foobar-com-logs-to-s3
        - Bucket: blah-foobar-com-logs
        - Path: logs/{%Y}/{%m}/{%d}/{%H}
          - 檔案儲存結構用 年/月/日/小時 存放
          - 目前每小時約產生兩千多個小檔案, gzip -d 解開之後就是純文字檔案
        - Region: us-west-2
        - Access key ID: (bucket 的 IAM user 的 access key id)
        - Secret access key: (bucket 的 IAM user 的 secret access key)
      - Delivery options
        - Filename: ak -[random-string]-[epoch-timestamp]-[random-string]- ds
          - 中間這一段沒辦法改, 我比較想要 [epoch-timestamp] 在前面比較好用
        - Push frequency: 60 Seconds
    - SUMMARY
  - 幾個步驟建立完之後, blah-foobar-com-logs-to-s3 的 status 是 Activating - V1
    - 只能 View / History / Clone, 無法 Edit / Deactivate / Delete
    - V1 是指這個 Stream 設定是 version 1, 不是 DataStream 1 的意思

2. CDN - Properties
  - 選 blah.foobar.com 再點選版本, 點 Edit New Version
  - 左邊選 Default Rule, 右邊點 +Behavior 新增 DataStream
    - Stream version 只有選 DataStream 2 會過
      - DataStream 1 要被淘汰掉
      - 選 DataStream 1 會跳出警告訊息, 可以 Save 但無法 Activate
    - Stream names 選 blah-foobar-com-logs-to-s3
    - Sample rate 預設 100
      - 通靈用的話一定要選 100, 要不然缺 log 會讓你通到屎
  - 最後 Save
  - 然後 Activate 這個新版本上線
    - 最久 10 分鐘才會完成

3. 回到 COMMON SERVICES - DataStream
  - blah-foobar-com-logs-to-s3 的 status 在 Properties 上完之後變成 Active - V1
    - 第一次比較快
    - Active 狀態才可以 Edit / Deactivate
      - 要 Delete 的話, 要先 Deactivate 讓狀態變成 Deactived 才能 Delete
    - 無論是 Edit / Deactivate, 最久 60 分鐘才會生效