快速入門:啟動時在 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 記錄用戶端參考

以下是適用於 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 (選取)。如需建立自訂政策的詳細資訊,請參閱 IAMAmazon 使用者指南 中的 Amazon 政策EC2 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. 選取角色類型頁面上,選擇 Amazon EC2旁的選取

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

  11. 選取您建立IAM的政策,然後選擇下一步

  12. 選擇建立角色

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

啟動新執行個體並啟用 CloudWatch 日誌
  1. 在 開啟 Amazon EC2主控台https://console.aws.amazon.com/ec2/

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

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

  3. 步驟 1:選擇 Amazon Machine Image (AMI) 頁面上,選取要啟動的 Linux 執行個體類型,然後在步驟 2:選擇執行個體類型頁面上,選擇下一步:設定執行個體詳細資訊

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

  4. 步驟 3:設定執行個體詳細資訊頁面上,針對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 記錄的記錄檔資料