如何使用 CloudWatch 主控台建立、設定 Kinesis 訂閱篩選器,以及進行疑難排解?

2 分的閱讀內容
0

我想要使用 Amazon CloudWatch 主控台來建立訂閱篩選器,以便將我的 Amazon CloudWatch Logs 串流到 Amazon Kinesis。

簡短說明

使用訂閱篩選器將 CloudWatch 日誌以近乎即時的速度傳送到相同的帳戶,或跨帳戶 Kinesis 或 Amazon Kinesis Data Firehose 目的地。CloudWatch 日誌主控台支援目的地和設定組態。

如需如何使用篩選器模式語法來設定訂閱篩選器的相關資訊,請參閱篩選器和模式語法

解決方法

相同帳戶或目前帳戶中 Kinesis 資料串流的訂閱組態

**注意:**CloudWatch 日誌的群組和 Kinesis 目的地的 AWS 區域必須相同。

建立訂閱之前,請先完成下列動作:

若要建立自訂 IAM 角色和角色政策,請完成下列步驟:

1.    使用具有管理員權限的使用者開啟 IAM 主控台

2.    在導覽窗格中選擇政策

3.    在內容窗格中,選擇建立政策

4.    在 JSON 索引標籤中輸入下列角色權限政策文件。使用您自己的詳細資料取代 REGIONACCOUNT_IDSTREAM_NAME

{
  "Statement": \[{
    "Effect": "Allow",
    "Action": "kinesis:PutRecord",
    "Resource": "arn:aws:kinesis:REGION:ACCOUNT\_ID:stream/STREAM\_NAME"
  }\]
}

5.    開啟 IAM 主控台

6.    在導覽窗格中,選擇角色,然後選擇建立角色

7.    選擇自訂信任政策角色類型。

8.    在自訂信任政策區段中,輸入或貼上角色的自訂信任政策。參閱下列範例信任政策:

{
  "Statement": {
    "Effect": "Allow",
    "Principal": {
      "Service": "logs.region.amazonaws.com"
    },
    "Action": "sts:AssumeRole",
    "Condition": {
      "StringLike": {
        "aws:SourceArn": "arn:aws:logs:REGION:ACCOUNT\_ID:\*"
      }
    }
  }
}

9.    選擇下一步

10.    選取您在步驟 4 中建立的自訂 IAM 政策。

11.    選擇下一步,然後選擇建立角色

建立 Kinesis 串流和 IAM 角色後,建立訂閱篩選器:

1.    開啟 CloudWatch 主控台

2.    選擇日誌群組

3.    選擇動作訂閱篩選器

4.    若要設定目的地,請選擇建立 Kinesis 訂閱篩選器

5.    選擇目前帳戶

6.    從下拉式清單中選取 Kinesis 資料串流。

7.    選取您建立的 IAM 角色。

8.    選擇**分配方式:
透過日誌串流:**這驗證了下游取用者可以透過日誌串流彙總日誌事件,但效率可能較低。此方法也可能會產生更高的串流成本,因為它需要更多的碎片。
**隨機:**這會跨 Kinesis 串流碎片分配負載,但下游取用者無法透過日誌串流彙總日誌事件。

9.    設定日誌格式和篩選器
選取日誌格式。對於由 Amazon VPC、CloudTrail 或 Lambda 發布的日誌,格式可以是 Amazon VPC Flow Logs、AWS CloudTrail 或 AWS Lambda。或者,您可以根據傳入的日誌事件選擇 JSON空格分隔其他
訂閱篩選器模式區段中定義篩選器模式
輸入訂閱篩選器的名稱。

10.    使用現有的日誌事件資料驗證您的模式。

11.    驗證後,選擇開始串流

12.    (選擇性) 驗證日誌事件流程,以確認資料串流是否有效。

跨帳戶 Kinesis 資料串流目的地的組態

**注意:**如果您在執行 AWS Command Line Interface (AWS CLI) 命令時收到錯誤訊息,請確定您使用的是最新版本的 AWS CLI

您可以將 CloudWatch 日誌事件傳遞到不同 AWS 帳戶和區域中的 Kinesis 資料串流。若要這樣做,請設定與訂閱的跨帳戶日誌資料共用,並指定「區域」。

在下列範例中,us-east-1 區域中的 CloudWatch 日誌被傳送到 us-west-2 中另一個 AWS 使用者的 Kinesis 資料串流。日誌資料接收者的帳戶 ID 為 222222222222,而日誌資料傳送者的帳戶 ID 為 111111111111。

在接收者帳戶 222222222222 中建立目的地資料串流

使用 IAM 角色和信任策略在資料接收者帳戶中的 Kinesis 中建立目的地資料串流

**在來源帳戶 111111111111 中建立訂閱篩選器 **

若要建立訂閱篩選器,請完成下列步驟:

1.    選取日誌群組。

2.    選擇動作訂閱篩選器

3.    若要選取目的地,請選擇建立,然後選取建立 Kinesis 訂閱篩選器

4.    選擇其他帳戶

5.    對於跨帳戶 Kinesis 或 Kinesis 資料 Firehose 目的地,請提供目的地 ARN

6.    選擇分配方式:
**透過日誌串流:**這驗證了下游取用者可以透過日誌串流彙總日誌事件,但效率可能較低。此方法也可能會產生更高的串流成本,因為它需要更多的碎片。
**隨機:**這會跨 Kinesis 串流碎片分配負載,但下游取用者無法透過日誌串流彙總日誌事件。

7.    設定日誌格式和篩選器
選取日誌格式。對於由 Amazon VPC、CloudTrail 或 Lambda 發布的日誌,格式可以是 Amazon VPC Flow Logs、CloudTrail 或 AWS Lambda。或者,您可以根據傳入的日誌事件選擇 JSON空格分隔其他
訂閱篩選器模式區段中定義篩選器模式
輸入訂閱篩選器的名稱。

8.    使用現有的日誌事件資料驗證您的模式。

9.    驗證後,選擇開始串流

10.    (選擇性) 驗證流程日誌事件,以確認資料串流是否有效。

疑難排解

  • 確定您的 Kinesis 串流處於作用中狀態。您可以在 Kinesis 主控台上檢視串流,或使用 DescribeStream API call
  • 確認 CloudWatch 日誌群組和 Kinesis 資料串流區域是否相同。
  • 確保有一個 IAM 角色對 logs.yourregion.amazonaws.com 具有信任權限,並允許權限 kinesis:putrecords
  • 確認 IAM 政策中的區域和資源正確無誤。
  • 確保在為 Kinesis 資料串流設定訂閱篩選器時沒有選取 Kinesis Firehose。
  • 開始串流後,請檢查 訂閲篩選器指標,以確認篩選器模式有效且符合傳入日誌事件。檢閱下列指標: **ForwardedBytes:**轉送到訂閱目的地的壓縮位元組中的日誌事件數量。**ForwardedLogEvents:**轉送到訂閱目的地的日誌事件數量。
  • 檢查將日誌事件串流到目的地時是否沒有錯誤。檢閱下列指標: **DeliveryErrors:**CloudWatch 日誌在將資料轉送到訂閱目的地時,收到錯誤的日誌事件數量。**DeliveryThrottling:**指出 CloudWatch 日誌在將資料轉送到訂閱目的地時,受到限制的日誌事件數量。
  • 如果您有專用的 Kinesis 串流,請查看串流的指標以確認功能。
  • 有關跨帳戶記錄的問題,請參閱疑難排解 CloudWatch 跨帳戶設定
AWS 官方
AWS 官方已更新 1 年前