快速入門:在 EC2 Linux 執行個體啟動時安裝和設定 CloudWatch Logs 代理程式 - Amazon CloudWatch Logs

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

快速入門:在 EC2 Linux 執行個體啟動時安裝和設定 CloudWatch Logs 代理程式

提示

本節討論的舊版 CloudWatch Logs 代理程式即將廢除。強烈建議您改用新的統一 CloudWatch 代理程式,以同時收集日誌和指標。此外,舊版 CloudWatch Logs 代理程式需要 Python 3.3 或更舊版本,而且根據預設,這些版本不會安裝在新的 EC2 執行個體上。如需統一 CloudWatch 代理程式的詳細資訊,請參閱安裝 CloudWatch 代理程式

本節的其他部分說明舊版 CloudWatch Logs 代理程式的使用方式。

在 EC2 Linux 執行個體啟動時安裝舊版 CloudWatch Logs 代理程式

您可以使用 Amazon EC2 使用者資料 (這是 Amazon EC2 的一項功能,可在執行個體啟動時將參數資訊傳遞給執行個體),在該執行個體上的安裝和設定 CloudWatch Logs 代理程式。若要將 CloudWatch Logs 代理程式的安裝和組態資訊傳遞給 Amazon EC2,您可以提供網路位置中的組態檔案 (例如 Amazon S3 儲存貯體)。

不支援設定多個日誌來源,將資料傳送到單個日誌串流。

先決條件

建立代理程式設定檔,其會描述您的所有日誌群組和日誌串流。這是一個文字檔案,其會描述要監控的日誌檔以及日誌群組和將要它們上傳至其中的日誌串流。代理程式會消耗此組態檔案,並開始監控和上傳所述的所有日誌檔。如需代理程式組態檔案中設定的詳細資訊,請參閱 CloudWatch Logs 代理程式參考

以下是適用於 Amazon Linux 2 的代理程式組態檔案範例

[general] state_file = /var/lib/awslogs/state/agent-state [/var/log/messages] file = /var/log/messages log_group_name = /var/log/messages log_stream_name = {instance_id} datetime_format = %b %d %H:%M:%S

以下是適用於 Ubuntu 的範例代理程式組態檔案。

[general] state_file = /var/awslogs/state/agent-state [/var/log/syslog] file = /var/log/syslog log_group_name = /var/log/syslog log_stream_name = {instance_id} datetime_format = %b %d %H:%M:%S
設定 IAM 角色
  1. 在以下網址開啟 IAM 主控台:https://console.aws.amazon.com/iam/

  2. 在導覽窗格中選擇 Policies (政策)、Create Policy (建立政策)。

  3. Create Policy (建立政策) 頁面上,針對 Create Your Own Policy (建立您自己的政策),選擇 Select (選取)。如需建立自訂政策的詳細資訊,請參閱《Amazon EC2 使用者指南》中的 Amazon EC2 的 IAM 政策Amazon EC2

  4. Review Policy (檢閱政策) 頁面上的 Policy Name (政策名稱) 中,輸入該政策名稱。

  5. Policy Document (政策文件) 中,貼上以下政策:

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogStreams" ], "Resource": [ "arn:aws:logs:*:*:*" ] }, { "Effect": "Allow", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] } ] }
  6. 選擇建立政策

  7. 在導覽窗格中,選擇 Roles (角色)Create New Role (建立新角色)

  8. Set Role Name (設定角色名稱) 頁面上,輸入該角色的名稱,然後選擇 Next Step (下一步)

  9. Select Role Type (選取角色類型) 頁面上,選擇 Amazon EC2 旁的 Select (選取)。

  10. Attach Policy (連接政策) 頁面上的表格標頭中,選擇 Policy Type (政策類型)Customer Managed (客戶受管理)

  11. 選取您建立的 IAM 政策,然後選擇 Next Step (下一步)。

  12. 選擇建立角色

    如需使用者和政策的詳細資訊,請參閱《IAM 使用者指南》中的 IAM 使用者和群組以及管理 IAM 政策

啟動新的執行個體和啟用 CloudWatch Logs
  1. 前往 https://console.aws.amazon.com/ec2/ 開啟 Amazon EC2 主控台。

  2. 選擇 Launch Instance (啟動執行個體)

    如需詳細資訊,請參閱《Amazon EC2 使用者指南》中的啟動執行個體Amazon EC2

  3. Step 1: Choose an Amazon Machine Image (AMI) (步驟 1:選擇 Amazon Machine Image (AMI)) 頁面,選擇要啟動的 Linux 執行個體類型,然後在 Step 2: Choose an Instance Type (步驟 2:選擇執行個體類型) 頁面,選擇 Next: Configure Instance Details (下一步:設定執行個體詳細資料)

    請確定 cloud-init 包含在您的 Amazon Machine Image (AMI) 中。Ubuntu 和 RHEL 的 Amazon Linux AMIs 和 AMIs 已包含 cloud-init,但 中的 CentOS 和其他 AMIs AWS Marketplace 可能沒有。

  4. Step 3: Configure Instance Details (步驟 3:設定執行個體詳細資訊) 頁面上,針對 IAM role (IAM 角色),選取您建立的 IAM 角色。

  5. Advanced Details (進階詳細資訊),針對 User data (使用者資料) 將以下指令碼貼到方塊中。然後,透過將 -c 選項的值變更為代理程式組態檔案的位置來更新該指令碼:

    #!/bin/bash curl https://s3.amazonaws.com/aws-cloudwatch/downloads/latest/awslogs-agent-setup.py -O chmod +x ./awslogs-agent-setup.py ./awslogs-agent-setup.py -n -r us-east-1 -c s3://amzn-s3-demo-bucket/my-config-file
  6. 對執行個體進行其他變更、檢閱啟動設定,然後選擇 Launch (啟動)。

  7. 在代理程式執行幾分鐘後,您在 CloudWatch 主控台應該會看到新建立的日誌群組和日誌串流。

    如需詳細資訊,請參閱檢視傳送到 CloudWatch Logs 的日誌資料