💡
EC2 및 On-premise 서버에서 Cloudwatch로 로그를 전송하여 사용률을 확인하도록 설정하기위함이다. 단일 인스턴스로 CloudWatch Agent를 설치시와 다중 인스턴스들을 CloudWatch Agent 설치시의 과정을 진행해 보겠다.

CloudWatch Agent

  • IAM 생성

    SSM/ Cloudwatch agent설치를 위한 IAM role을 ec2에 적용한다.

    1. 해당 권한 관련 role 생성

  • cloudwatch agent 구성 파일 생성 및 실행

    참조 : https://docs.aws.amazon.com/ko_kr/AmazonCloudWatch/latest/monitoring/create-cloudwatch-agent-configuration-file-wizard.html#cloudwatch-agent-running-wizard

    • cloud watch agent 정의된 지표 목록

    1. 구성 파일설정
      On which OS are you planning to use the agent?
      1. linux
      2. windows
      default choice: [1]:
      
      Trying to fetch the default region based on ec2 metadata...
      Are you using EC2 or On-Premises hosts?
      1. EC2
      2. On-Premises
      default choice: [1]:
      
      Which user are you planning to run the agent?
      1. root
      2. cwagent
      3. others
      default choice: [1]:
      
      Do you want to turn on StatsD daemon?
      1. yes
      2. no
      default choice: [1]:
      [StatsD 데몬 turn on 선택 시 이후 run Command 과정이 실패할 수 있습니다.]
      
      Do you want to monitor metrics from CollectD?
      1. yes
      2. no
      default choice: [1]:
      [CollectD 데몬 turn on 선택 시 이후 run Command 과정이 실패할 수 있습니다.]
      
      Do you want to monitor any host metrics? e.g. CPU, memory, etc.
      1. yes
      2. no
      default choice: [1]:
      
      Do you want to monitor cpu metrics per core? Additional CloudWatch charges may apply.
      1. yes
      2. no
      default choice: [1]:
      [코어당 cpu 지표를 수집하기를 원한다면 yes를 선택하십시오.]
      
      Do you want to add ec2 dimensions (ImageId, InstanceId, InstanceType, AutoScalingGroupName) into all of your metrics if the info is available?
      1. yes
      2. no
      default choice: [1]:
      
      Would you like to collect your metrics at high resolution (sub-minute resolution)? This enables sub-minute resolution for all metrics, but you can customize for specific metrics in the output json file.
      1. 1s
      2. 10s
      3. 30s
      4. 60s
      default choice: [4]:
      [원하는 지표 수집 간격을 설정하면 됩니다.]
      
      Which default metrics config do you want?
      1. Basic
      2. Standard
      3. Advanced
      4. None
      default choice: [1]:
      
      Are you satisfied with the above config? Note: it can be manually customized after the wizard completes to add additional items.
      1. yes
      2. no
      default choice: [1]:
      
      Do you have any existing CloudWatch Log Agent (http://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/AgentReference.html) configuration file to import for migration?
      1. yes
      2. no
      default choice: [2]:
      
      Do you want to monitor any log files?
      1. yes
      2. no
      default choice: [1]:
      
      Log file path:  ////윈도우의 경우 로그 파일이 존재하는 위치 뒤에 * 도 붙여주시는 것이 좋습니다.
      /var/log/messages
      Log group name:
      default choice: [messages]
      
      Log stream name:
      default choice: [{instance_id}]
      
      Do you want to specify any additional log files to monitor?
      1. yes
      2. no
      default choice: [1]:
      
      Log file path:
      /var/log/secure
      Log group name:
      default choice: [secure]
      
      Log stream name:
      default choice: [{instance_id}]
      
      Do you want to specify any additional log files to monitor?
      1. yes
      2. no
      default choice: [1]:
      2
      
      Do you want to store the config in the SSM parameter store?
      1. yes
      2. no
      default choice: [1]:
      [ SSM parameter store에 저장해야 이후 run Command를 수행할 수 있습니다.]
      
      What parameter store name do you want to use to store your config? 
      (Use 'AmazonCloudWatch-' prefix if you use our managed AWS policy)
      default choice: [AmazonCloudWatch-linux]
      
      Trying to fetch the default region based on ec2 metadata...
      Which region do you want to store the config in the parameter store?
      default choice: [ap-northeast-2]
      
      Which AWS credential should be used to send json config to parameter store?
      1. ASIAZYLTNL6RST6A4O44(From SDK)
      2. Other
      default choice: [1]:
      
      Successfully put config to parameter store AmazonCloudWatch-linux.
      Program exits now.
      • 환경에 맞는 구성파일 생성
    1. 실행 명령
      sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s
    1. cloudwatch 지표 생성

SSM Agent 사용

  • IAM role 생성

    기본적인 amazon Linux는 SSM agent가 설치되어있으나, 다른 OS는 추가설치필요

    1. role 생성
      • 해당 role 중 cloudwatchadmin policy는 watch agent 구성 파일을 ssm 파라미터 스토어의 저장하기위함
    1. system manger의 관리형 인스턴스
      • SSM Agent 최신 버전
      • Outbound 인터넷 통신
      • SSM과 통신하기 위한 권한(IAM Role)
      • 해당 조건을 충족해야만 ssm의 등록가능

  • ssm 을통한 Cloudwatch agent 다운로드
    1. run command 실행
    1. Agent 설치
      1. 조건 설정
      1. 대상 지정
      1. 명령 실행 확인

  • Cloudwatch agent - config파일 → parameter store 저장
    1. 대상 중 하나의 인스턴스에서만 ssh접속
      • 편의를 위해 ssm으로 접속
    1. 앞서 구성한 것처럼 config 구성
      sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard
    1. 파라미터 스토어에 저장 확인

  • cloudwatch agent 시작 및 구성파일 적용
    • CloudWatch Agent의 미리 정의된 지표 목록
    1. 미리 구성된 파라미터를 이용하여 runcommand 적용
    1. 대상 지정
      • 앞서 Cloudwatch agent는 설치 하였으나구성파일이 적용이 안되었으므로 구성파일적용
    1. 성공 확인

  • 결과 확인

'aws' 카테고리의 다른 글

RDS → s3 백업  (0) 2021.03.29
Elastisearch 를 사용 VPC FLOWLOGS  (0) 2021.03.29
lb -acm 인증서를 이용한 접속  (0) 2021.02.09
route 53 도메인 연결  (0) 2021.02.09
RDS-multi AZ/RR 구성 실습  (0) 2021.02.03

+ Recent posts