공식 다큐먼트와 똑같이 구성할 것이기 때문에, 이전 글에서 다큐먼트를 참고하셔도 좋습니다.
먼저 Cloudwatch namespace를 구성하도록 하겠습니다.
kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/master/k8s-yaml-templates/cloudwatch-namespace.yaml
이제 kubernetes에서 매트릭 수집을 해서 Cloudwatch에 던져 줄 Role을 가진 account를 만들겠습니다.
kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/master/k8s-yaml-templates/cwagent-kubernetes-monitoring/cwagent-serviceaccount.yaml
매트릭을 수집할 때, 어떠한 형태로 수집할 것인지를 정해야하는데 이에 관한 config 파일을 다운받고 수정하겠습니다.
curl -O https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/master/k8s-yaml-templates/cwagent-kubernetes-monitoring/cwagent-configmap.yaml
다운받고 수정이 귀찮으시다면 아래에서 리전과 클러스터 이름만 변경해서 적용하셔도 됩니다.
아래에서 다른 부분을 수정하실 때는 다음과 같은 부분들을 주의해주셔야 합니다.
- metrics_collection_interval – kubernetes 섹션에서 에이전트가 지표를 수집하는 간격을 지정할 수 있습니다. 기본값은 60초입니다. Kubelet의 기본 cadvisor 수집 간격은 15초이기 때문에 이 값을 15초 미만으로 설정해서는 안 됩니다.
- endpoint_override–기본 엔드포인트를 재정의하려면 logs 섹션에서 CloudWatch Logs 엔드포인트를 지정할 수 있습니다. VPC의 클러스터에서 게시 중인 데이터를 VPC 종단점으로 이동시키고 싶은 경우에 재정의를 원할 수 있습니다.
- force_flush_interval– logs 섹션에서 CloudWatch Logs에 게시되기 전에 로그 이벤트를 배치화하는 간격을 지정할 수 있습니다. 기본값은 5초입니다.
apiVersion: v1
data:
# Configuration is in Json format. No matter what configure change you make,
# please keep the Json blob valid.
cwagentconfig.json: |
{
"agent": {
"region": "ap-northeast-2"
},
"logs": {
"metrics_collected": {
"kubernetes": {
"cluster_name": "CB-TEST-EKS-CLUSTER",
"metrics_collection_interval": 60
}
},
"force_flush_interval": 5,
"endpoint_override": "logs.ap-northeast-2.amazonaws.com"
},
"metrics": {
"metrics_collected": {
"statsd": {
"service_address": ":8125"
}
}
}
}
kind: ConfigMap
metadata:
name: cwagentconfig
namespace: amazon-cloudwatch
수정이 모두 끝났으면 배포해주시고 데몬셋으로 배포를 해주도록 하겠습니다.
아래 명령어를 수행해주시면 됩니다.
kubectl apply -f https://raw.githubusercontent.com/aws-samples/amazon-cloudwatch-container-insights/master/k8s-yaml-templates/cwagent-kubernetes-monitoring/cwagent-daemonset.yaml
자 이제 파드가 제대로 올라왔는지, 수집이 제대로 되는지 확인해보도록 하겠습니다.
파드는 정상적으로 올라왔으며,
클라우드 와치에서도 ContainerInsights라는 지표로 매트릭이 잘 수집되고 있습니다.
클라우드 와치로의 클러스터 매트릭 수집을 알아봤습니다.
다음 포스트에서는 FluentD -> Cloudwatch로 로그 수집을 알아보도록 하겠습니다.
'EKS > Cloudwatch' 카테고리의 다른 글
EKS Cloudwatch 연동 - 3. FluentD - Cloudwatch 연동 (0) | 2020.02.10 |
---|---|
EKS Cloudwatch 연동 - 1. Intro (0) | 2020.02.10 |