AWS EC2/EKS sends logs to CloudWatch
安裝
EC2需要安裝agent
下載安裝
#下載
curl -O https://s3.amazonaws.com/amazoncloudwatch-agent/debian/amd64/latest/amazon-cloudwatch-agent.deb
#安裝
dpkg -i -E amazon-cloudwatch-agent.deb
#移除安裝檔
rm -f amazon-cloudwatch-agent.deb
IAM
這裡需要事前設定IAM服務角色
iam > 角色> 建立角色 > 選取信任的實體 > AWS服務 > EC2(重要步驟)
加入以下許可政策
再來將role(角色)賦予到EC2實例上
配置檔
上面都準備完了之後,即可回到agent這裡執行設定精靈
sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
*不採用精靈,若要手動配置的話參考以下
/opt/aws/amazon-cloudwatch-agent/etc/amazon-cloudwatch-agent.json
{
"agent": {
"run_as_user": "root",
"metrics_collection_interval": 60,
"logfile": "/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log"
},
"logs": {
"logs_collected": {
"files": {
"collect_list": [
{
"file_path": "/var/log/syslog",
"log_group_name": "my-log-group",
"log_stream_name": "{instance_id}"
}
]
}
},
"log_group_retention_in_days": 90
},
}
啟動agent
#啟動
sudo systemctl start amazon-cloudwatch-agent
#檢查狀態為active
sudo systemctl status amazon-cloudwatch-agent
(排錯)檢查日誌
sudo tail -n 100 /opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log
查看日誌已開始送資料到cloudwatch
回到cloudwatch > 日誌群組查看也有
展開日誌可見詳情
排錯指南
EKS
EKS直接就可以打開日誌搜集功能
EKS > 叢集 > 你的EKS叢集 > 可觀測性 > 控制平面記錄
查詢方式
apiserver的日誌展開像這樣