2019年6月25日 星期二

將 AWS EC2 的 log 上傳至 AWS Cloudwatch

官網寫的教學太複雜了
簡單整理幾個步驟
這是純手動在現存的 EC2 上面設定 cloudwatch-agent 的做法

1.在 EC2 上安裝 amazon-cloudwatch-agent


從官網上
https://docs.aws.amazon.com/zh_tw/AmazonCloudWatch/latest/monitoring/download-cloudwatch-agent-commandline.html
找到你 ec2 的版本並下載安裝檔。 並且安裝


2.建立 CloudWatch Agent Configuration File


使用 wizard 建立
  
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

首先為了專注在 log 部份,把 StatsD 和 collectD 都取消
其中有設定
  
Do you want to monitor any log files?
1. yes
2. no
default choice: [1]:

Log file path:
/cloudwatch/test.log
Log group name:
default choice: [test.log]

填入你想監測的 log 路徑
最終會產生一個 json 檔案,
default 會在 /opt/aws/amazon-cloudwatch-agent/bin/config.json
也可以在這個檔案修改設定內容


3.建立 IAM role 並 attach 到 ec2 instance 上


直接參考官網步驟

建立在 EC2 執行個體上執行 CloudWatch 代理程式所需要的 IAM 角色

1. Sign in to the AWS Management Console and open the IAM console at https://console.aws.amazon.com/iam/.
2. 在左側的導覽窗格中,選擇 Roles (角色),然後選擇 Create role (建立角色)。
3. 針對 Choose the service that will use this role (選擇將使用此角色的服務),選擇 EC2 Allows EC2 instances to call AWS services on your behalf (EC2 允許 EC2 執行個體代您呼叫 AWS 服務)。選擇 Next: Permissions (下一步:許可)。
4. 在政策清單中,選取 CloudWatchAgentServerPolicy 旁的核取方塊。如有需要,請使用搜尋方塊來尋找政策。
5. 選擇 Next:Review (下一步:檢閱)。
6. 確認 CloudWatchAgentServerPolicy 出現在 Policies (政策) 的旁邊。在 Role name (角色名稱) 中,輸入角色的名稱,例如 CloudWatchAgentServerRole。您可以選擇性地給予它一個描述。然後選擇 Create role (建立角色)。
現在已建立角色。

將 IAM 角色連接至執行個體 (主控台)
1. Open the Amazon EC2 console at https://console.aws.amazon.com/ec2/.
2. 在導覽窗格中,選擇 Instances (執行個體)。
3. 選取執行個體,選擇 Actions (動作)、Instance Settings (執行個體設定)、Attach/Replace IAM role (連接/取代 IAM 角色)。 
4. 選取欲連接至執行個體的 IAM 角色,然後選擇 Apply (套用)。


4.執行 cloudwatch-agent


 
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:configuration-file-path -s
接下來只要 log 有更新,就會同步到 cloudwatch 囉

沒有留言:

張貼留言