如何使用 Amazon Kinesis Firehose 將 VPC 流程日誌推送至 Splunk?

3 分的閱讀內容
0

我想要在將資料從 AWS 來源推送到 Splunk 叢集時,改善 AWS 資料與 Splunk 的整合。

解決方案

注意: Kinesis Data Firehose 不支援 Application Load Balancer 或 Network Load Balancer。請改用 Classic Load Balancer。務必允許基於時間長短的粘性會話,並停用 Cookie 過期時間。如需對 Splunk 端點交付串流問題進行疑難排解的詳細資訊,請參閱資料未傳送至 Splunk

先決條件

建立 Kinesis Data Firehose 交付串流

1.    建立您的交付串流。在來源中,選擇直接 PUT

2.    在目的地中,選擇 Splunk

3.    輸入交付串流名稱。

使用 AWS Lambda 設定記錄轉換

1.    設定記錄轉換注意:使用 AWS Lambda 轉換來源記錄下的記錄轉換,選擇已啟用。CloudWatch 會以壓縮的 .gzip 檔案形式傳送日誌,而 Amazon Kinesis 必須在您可以使用前先擷取這些檔案。

2.    在 Lambda 函數中,選擇新建

3.    在選擇 Lambda 藍圖視窗的 Lambda 藍圖中,選擇 Kinesis Firehose CloudWatch Logs Processor

4.    選擇在瀏覽器中開啟的新索引標籤,以建立新的 Lambda 函數:
名稱中,輸入 Lambda 函數的名稱。
角色中,選擇建立自訂角色

5.     選擇在瀏覽器中開啟的新索引標籤,以建立新的 AWS Identity and Access Management (IAM) 角色。在角色名稱中,確定名稱為 lambda_basic_execution

6.    選擇允許以建立角色,然後返回 Lambda 函數設定頁面。

7.    選擇建立函數

8.    若要防止函數逾時,請將逾時從預設的 3 秒增加為 1 分鐘

9.    選擇儲存

完成 Kinesis Data Firehose 交付串流

1.    開啟 Amazon Kinesis 主控台

2.    在導覽窗格中,選擇 Data Firehose

3.    在您的交付串流中,選擇 Lambda 函數,然後從下拉式清單中選擇新的 AWS Lambda 函數名稱。

4.    在目的地設定中,輸入 Splunk HEC 詳細資料,包括您建立的 Splunk HEC 端點。
注意: 您必須使用有效的 SSL 憑證來終止 Splunk HEC 端點。使用相符的 DNS 主機名稱以連線至您的 HEC 端點。叢集端點的格式為 https://YOUR-ENDPOINT.splunk.com:8088

5.    在Splunk 端點類型中,選擇原始端點,然後輸入身分驗證權杖。

6.    選擇下一步

7.    (選用) 選擇現有的 Amazon Simple Storage Service (Amazon S3) 儲存貯體,或建立新儲存貯體以備份失敗事件或所有事件。 請務必在交付串流精靈中設定 Amazon S3 相關設定,例如緩衝區條件、壓縮和加密設定,以及錯誤記錄選項。

8.    在IAM 角色下,選擇新建

9.    在開啟的索引標籤中,輸入角色名稱,然後選擇允許

10.    選擇下一步

11.    選擇建立交付串流

設定 Amazon VPC 流程日誌

注意: 如果您有 Amazon VPC 流程日誌,則請繼續進行下一個區段建立 Amazon CloudWatch 日誌訂閱。如果您沒有 VPC 流程日誌,請完成以下步驟:

1.    開啟 CloudWatch 主控台

2.    在瀏覽窗格中,選擇日誌

3.    在動作中,選擇建立日誌群組

4.    輸入日誌群組名稱

5.    選擇建立日誌群組

6.    開啟 Amazon VPC 主控台

7.    在虛擬私有雲端下的導覽窗格中,選擇您的 VPC

8.    在內容窗格中,選取您的 VPC。

9.    選擇流程日誌檢視畫面。

10.    選擇建立流程日誌

  • 篩選條件中,選擇全部
  • 目的地日誌群組中,選擇您剛建立的日誌群組。
  • IAM 角色中,選擇可讓您的 Amazon VPC 將日誌發佈至 CloudWatch 的 IAM 角色。如果您沒有適當的 IAM 角色,則請在 IAM 角色下,選擇設定權限,然後選擇建立新的 IAM 角色。保留預設設定。
  • 選擇允許以建立目的地日誌群組的 VPCFlowLogs 並與其建立關聯。

11.    選擇建立

12.    從日誌群組建立即時摘要至您的交付串流:

注意: 如果您在執行 AWS CLI 命令時收到錯誤,請確認您執行的是最新版本的 AWS CLI

建立 Amazon CloudWatch Logs 訂閱

1.    授予 CloudWatch 的存取權,以便使用正確的角色權限發佈 Kinesis Data Firehose 串流。

2.    開啟 AWS CLI。

3.    使用下列 JSON 檔案來建立您的信任政策 (例如:TrustPolicyforCWLToFireHose.json)。將 YOUR-RESOURCE-REGION 取代為資源的 AWS 區域。

{
  "Statement": {
    "Effect": "Allow",
    "Principal": { "Service": "logs.YOUR-RESOURCE-REGION.amazonaws.com" },
    "Action": "sts:AssumeRole"
  }
}

4.    執行下列命令,以使用信任政策中的權限建立角色:

$ aws iam create-role --role-name CWLtoKinesisFirehoseRole --assume-role-policy-document file://TrustPolicyForCWLToFireHose.json

5.    使用下列 JSON 檔案建立 IAM 政策 (例如 PermissionPolicyForCWLToFireHose.json)。將 YOUR-AWS-ACCT-NUM 取代為 AWS 帳號,將 YOUR-RESOURCE-REGION 取代為資源的區域,並將 FirehoseSplunkDeliveryStream 取代為串流名稱。

{
    "Statement":[
      {
        "Effect":"Allow",
        "Action":["firehose:PutRecord"],
        "Resource":["arn:aws:firehose:YOUR-RESOURCE-REGION:YOUR-AWS-ACCT-NUM:deliverystream/FirehoseSplunkDeliveryStream"]
      },
      {
        "Effect":"Allow",
        "Action":["iam:PassRole"],
        "Resource":["arn:aws:iam::YOUR-AWS-ACCT-NUM:role/CWLtoKinesisFirehoseRole"]
      }
    ]
}

6.    執行下列命令以將 IAM 政策連接至角色:

$ aws iam put-role-policy
    --role-name CWLtoKinesisFirehoseRole
    --policy-name Permissions-Policy-For-CWL
    --policy-document file://PermissionPolicyForCWLToFireHose.json

7.    執行下列命令以建立訂閱篩選條件。將 YOUR-AWS-ACCT-NUM 取代為 AWS 帳號,將 YOUR-RESOURCE-REGION 取代為資源的區域,並將 FirehoseSplunkDeliveryStream 取代為串流名稱。

$ aws logs put-subscription-filter
   --log-group-name " /vpc/flowlog/FirehoseSplunk"
   --filter-name "Destination"
   --filter-pattern ""
   --destination-arn "arn:aws:firehose:YOUR-RESOURCE-REGION:YOUR-AWS-ACCT-NUM:deliverystream/FirehoseSplunkDeliveryStream"
   --role-arn "arn:aws:iam::YOUR-AWS-ACCT-NUM:role/CWLtoKinesisFirehoseRole"

如需訂閱篩選條件的詳細資訊,請參閱範例 3:Amazon Kinesis Data Firehose 的訂閱篩選條件

相關資訊

使用 Amazon Kinesis Data Firehose 將資料擷取引入至 Splunk 中

目的地設定

控制 Amazon Kinesis Data Firehose 的存取權

AWS 官方
AWS 官方已更新 1 年前