Resource Monitoring 설치
목차
- Resource Monitoring 인프라 설치
 - Prometheus & Grafana 설치
- 2-1. Helm 환경설정
 - 2-2. Prometheus & Grafana 설정
 - 2-3. Prometheus & Grafana 설치
 
 
자세한 단계
{변수}의 자세한 설명은 Terminology 페이지를 참고하세요
- 
{변수} 설정을 합니다.
export AWS_CLUSTER_NAME=
export INFRA_NAME=
export DEPLOY_ENV=
export AWS_DEFAULT_REGION=
export AWS_DEFAULT_REGION_ALIAS=
export PROJECT_NODEGROUP_LABEL=mellerikat-monitor
export PROJECT_NODEGROUP_NAME=ng-${AWS_DEFAULT_REGION_ALIAS}-${PROJECT_NODEGROUP_LABEL}
export PROJECT_NODEGROUP_DESIRED_SIZE=1
export PROJECT_NODEGROUP_MIN=1
export PROJECT_NODEGROUP_MAX=2
export PROJECT_NODEGROUP_EC2_NAME=m5.large 
1. Resource Monitoring 인프라 설치
1-1. Resource Monitoring 노드그룹 생성
자세한 설명은 Nodegroup 추가 페이지를 참고하세요
- 
Nodegroup 생성을 정의한 create-nodegroup-monitoring.yaml 을 생성합니다.
[Expand create-nodegroup-monitoring.yaml]
NOTE : "propagateASGTags: true" 필수 설정
cat <<EOT > create-nodegroup-monitoring.yaml
apiVersion: eksctl.io/v1alpha5
kind: ClusterConfig
managedNodeGroups:
- amiFamily: AmazonLinux2
desiredCapacity: ${PROJECT_NODEGROUP_DESIRED_SIZE}
disableIMDSv1: false
disablePodIMDS: false
iam:
withAddonPolicies:
albIngress: false
appMesh: false
appMeshPreview: false
autoScaler: true
awsLoadBalancerController: false
certManager: false
cloudWatch: false
ebs: false
efs: false
externalDNS: false
fsx: false
imageBuilder: false
xRay: false
instanceSelector: {}
instanceType: ${PROJECT_NODEGROUP_EC2_NAME}
labels:
aic-role: ${PROJECT_NODEGROUP_LABEL}
alpha.eksctl.io/cluster-name: ${AWS_CLUSTER_NAME}
alpha.eksctl.io/nodegroup-name: ${PROJECT_NODEGROUP_NAME}
maxSize: ${PROJECT_NODEGROUP_MAX}
minSize: ${PROJECT_NODEGROUP_MIN}
name: ${PROJECT_NODEGROUP_NAME}
availabilityZones: ["${AWS_DEFAULT_REGION}a", "${AWS_DEFAULT_REGION}c"]
privateNetworking: true
releaseVersion: ""
securityGroups:
withLocal: null
withShared: null
ssh:
allow: false
publicKeyPath: ""
tags:
alpha.eksctl.io/nodegroup-name: ${PROJECT_NODEGROUP_NAME}
alpha.eksctl.io/nodegroup-type: managed
volumeIOPS: 3000
volumeSize: 50
volumeThroughput: 125
volumeType: gp3
propagateASGTags: true
metadata:
name: ${AWS_CLUSTER_NAME}
region: ${AWS_DEFAULT_REGION}
EOT - 
아래 명령어로 Nodegroup을 생성합니다.
eksctl create nodegroup --config-file=create-nodegroup-monitoring.yaml[Expand Trouble Shooting : 'AccessConfig']
error getting cluster stack template: failed to parse GetStackTemplate response: json: unknown field "AccessConfigeksctl 업데이트 후 실행
 
1-2. Resource Monitoring Target Group 생성
자세한 설명은 Target group 생성 및 설정하기 페이지를 참고하세요
- 
총 2개의 Target Group이 필요하고, 각각의 용도는 아래와 같습니다.
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-fe-{AWS_CLUSTER_VERSION_NUM}-30090 : Prometheus
 - tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-aic-be-{AWS_CLUSTER_VERSION_NUM}-30050 : Grafana
 
export AWS_CLUSTER_VERSION_NUM=`echo ${AWS_CLUSTER_VERSION} | tr '.' ''` 
- Target Group 생성
- AWS EC2 Console 로 이동합니다.
 - 왼쪽 메뉴의 Target Groups 를 클릭합니다.
 - Create target group 버튼을 눌러 타겟 그룹 생성을 시작합니다.
 - Step 1: Basic configuration
- Choose a target type: Instances
 - Target group name: tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-mkd-pm-{AWS_CLUSTER_VERSION_NUM}-30090
 - Protocol : Port : HTTP : 30090
 - IP address type : IPv4
 - VPC : {AWS_VPC_NAME} 선택
 - Protocol version : HTTP1
 
 - Step 2: Health checks
- Health check protocol: HTTP
 - Path: /
 
 - Next 버튼 클릭
 - Create target group 버튼으로 target group 생성 완료
 - 아래 항목도 같은 방법으로 생성 진행하되, target group 이름의 마지막 숫자 5자리가 Port로 지정되어야 하는 것에 유의
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-mkd-gf-{AWS_CLUSTER_VERSION_NUM}-30050
- Protocol : Port : HTTP : 30050
 
 
 - tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-mkd-gf-{AWS_CLUSTER_VERSION_NUM}-30050
 
 
- 
Target Group 연결 설정
- AWS EKS Console 으로 이동합니다.
 - {AWS_CLUSTER_NAME} 클릭합니다.
 - Compute 탭을 클릭합니다.
 - Compute 탭의 Node groups 섹션에서 {PROJECT_NODEGROUP_NAME} 클릭합니다.
 - Details 탭의 Autoscaling group name 섹션에서 asg group 자원 클릭합니다.
 - Auto Scaling groups 의 Detailes 탭의 Load balancing 섹션에서 Edit 버튼을 클릭합니다.
 - Step 1: Load balancing
- Application, Network or Gateway Load Balancer target groups 체크
 - Load balancers 에서 아래 2개 항목을 선택합니다.
- tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-mkd-pm-{AWS_CLUSTER_VERSION_NUM}-30090
 - tg-{AWS_DEFAULT_REGION_ALIAS}-{INFRA_NAME}-{DEPLOY_ENV}-mkd-gf-{AWS_CLUSTER_VERSION_NUM}-30050
 
 - Update 버튼을 눌러 설정을 마칩니다.