AWS CloudWatch 로그 그룹 및 대시보드 구성 - HJ-Rich/2022-MyRSS GitHub Wiki


전체 구성 과정 영상



AWS CloudWatch 란?

  • AWS 내 리소스, on-premise 리소스들을 한 눈에 모니터링할 수 있게 해주고, 통계, 시각화, 알림 등의 부가기능을 제공하는 AWS의 웹 서비스!
  • 웹 페이지, CLI, API 등을 제공한다.



IAM 이란?

  • AWS 자원에 대한 접근 권한을 안전하게 통제할 수 있게 해주는 웹 서비스
  • 나의 AWS 자원을 다른 사람들도 사용할 수 있게 인증/인가 기능을 포함한다



가이드 전제

  • On-Premise 환경의 로그와 메트릭을 모니터링하고자 하는 상황으로 가정
  • IAM 사용자 권한만 제공된다면 EC2, On-Premise 에서 모두 사용할 수 있는 설정 방법.
  • On-Premise를 EC2 인스턴스에서 진행
    • Ubuntu 22.04
    • t4g.small (ARM64)
    • 8GB SSD
    • 2GB RAM
  • 모든 쉘 스크립트는 루트 계정에서 수행



IAM 사용자 생성

On-Premise 서버에서 CloudWatch 서버로 메트릭&로그 전송 시 권한 증명에 사용됨

  • IAM > 엑세스 관리 > 사용자 > 사용자 추가
  • 사용자 이름 입력 > 엑세스 키 - 프로그래밍 방식 엑세스 선택 후 다음
  • 기존 정책 직접 연결 > CloudWatchAgentServerPolicy 체크 후 다
  • 태그 필요 시 추가. 필수 아님. 다음
  • 최종 확인 및 사용자 만들기
  • 엑세스 키 ID비밀 엑세스 키 보관



On-Premise 세팅

  • AWS CloudWatch Agent 설치
wget https://s3.amazonaws.com/amazoncloudwatch-agent/ubuntu/arm64/latest/amazon-cloudwatch-agent.deb
dpkg -i -E ./amazon-cloudwatch-agent.deb



  • Credential 저장
# 크레덴셜 파일 생성
mkdir ~/.aws && vi ~/.aws/credentials

# 내용 추가 후 저장
[AmazonCloudWatchAgent] 
aws_access_key_id = AKIA6LPNXCCVF7D2M3DX
aws_secret_access_key = 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
region = ap-northeast-2



  • Credential 연결
# 크레덴셜 연결 설정 파일 수정
vi /opt/aws/amazon-cloudwatch-agent/etc/common-config.toml

# 이하 내용 추가 후 저장
[credentials]
   shared_credential_profile = "AmazonCloudWatchAgent"
   shared_credential_file = "/root/.aws/credentials"



  • 설정 마법사 설치 및 설정 파일 생성
# AWS CLI 설치
apt-get install unzip
curl "https://awscli.amazonaws.com/awscli-exe-linux-aarch64.zip" -o "awscliv2.zip"
awscliv2.zip
./aws/install
aws --version

# 설정 파일 생성 마법사 실행
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

# EC2와 On-Premise 설정에서 On-Premise 선택
# 그 외에는 모두 default 설정 진행
# 모니터링할 로그 경로는 상황에 따라 입력
# 가령 /home/ubuntu/logs/ 이하 모든 .log 파일을 전송
# SSM 파라미터를 스토어에 저장하지 않는다 도 default 아닌 설정.

# 완료된 설정 파일은 이하 경로에 저장됨
vi /opt/aws/amazon-cloudwatch-agent/bin/config.json 



  • CloudWatch Agent 실행, 중지, 로그 확인
# 아래 명령어로 실행 전 파일 생성해두어야 오류 안 남
mkdir -p /usr/share/collectd/ && touch /usr/share/collectd/types.db

# 중지 명령어
/opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a stop

# CloudWatchAgent 로그 경로
/opt/aws/amazon-cloudwatch-agent/logs/amazon-cloudwatch-agent.log



대시보드 생성

  • CloudWatch > 대시보드 > 대시보드 생성 > 대시보드 명 입력 후 다음
  • 위젯 추가 > 위젯 스타일 선택 > 모니터링 대상 체크 > 위젯 생성 > 대시보드 저장
  • CPU 이용률, 네트워크 I/O, 로그 스트림 을 모니터링 대상으로 선택하여 구성한 모습
image



참고 링크



⚠️ **GitHub.com Fallback** ⚠️