AWS EKS 安裝 CloudWatch Agent以及IAM除錯

Hachibye
6 min readJul 12, 2024

--

AWS EKS Installation of CloudWatch Agent and IAM Troubleshooting

上次安裝好eksctl之後

因為IAM權限是最小權限原則

如果想全開可以參考官方建議的最低權限

以下是除錯心得

  1. <user> is not authorized to perform: iam:GetOpenIDConnectProvider on resource
  • 解法:開啟這條權限

2. <user> is not authorized to perform: eks:TagResource on resource

  • 解法:開啟這條權限

回到正題,開始安裝CloudWatch Agent

若是用AWS EKS,他的專屬插件名為「Observability EKS add-on」

官方文件在此

這裡走選項二

選項 2:使用 IAM 服務帳戶角色安裝(僅適用於使用附加元件)

  • Step1
eksctl utils associate-iam-oidc-provider --cluster my-cluster-name --approve

這一步沒什麼問題,因為前文已經有排錯過了

  • Step2
eksctl create iamserviceaccount \
--name cloudwatch-agent \
--namespace amazon-cloudwatch --cluster my-cluster-name \
--role-name my-service-account-role \
--attach-policy-arn arn:aws:iam::aws:policy/CloudWatchAgentServerPolicy \
--role-only \
--approve

這一步原本是幫你建立IAM服務帳號

我在這一個步驟有遇到錯誤

所以解決方法是手動去IAM新增一個「Role 角色」

並給予「CloudWatchAgentServerPolicy」的「Policy 政策」來跳過這個步驟

  • Step3
aws eks create-addon --addon-name amazon-cloudwatch-observability --cluster-name my-cluster-name --service-account-role-arn arn:aws:iam::111122223333:role/my-service-account-role

這一步沒什麼問題,詳細請看下文的排錯筆記!

更懶人的方法(待測試驗證是否可行)

進入EKS後台

從附加元件找到「Amazon CloudWatch 可觀測性」並打勾安裝

***不過這可能會有權限問題,在此不做示範。

排錯筆記

建立IAM服務帳號失敗

建議去CloudFormation查看進一步的錯誤訊息

發現錯誤來自CloudWatchForEKS這個角色已存在

最後是把add-on刪掉,先手動至IAM創建好role

再通過指令指定cluster及service-account,重新create-addon一次就成功了

指標內容

Overview

Application Insights已啟用

可以配置關聯的元件(哪些要監控,哪些不監控)

Dashboard

EKS區域預設的Dashboard是空的,自行新增

EC2 > By Auto Scaling Group >CPUUtilization

EC2 > By Auto Scaling Group > StatusCheckFailed

--

--

Hachibye
Hachibye

Written by Hachibye

字幕組退休勞工 ... DevOps/系統/雲端/資安

No responses yet