여름이므로 AWS의 CentOS7에서 CloudWatch에서 디스크 공간 모니터링을 시작했습니다.

여름이므로 AWS의 CentOS7에서 CloudWatch에서 디스크 공간 모니터링을 시작했습니다.



여름이므로 시작했습니다. 다음은 절차입니다.

AWS CloudWatch는 디스크 공간을 모니터링하는 지표가 표준이 아니므로 사용자 지정 지표를 설정해야 합니다.

참고


  • Amazon EC2 Linux 인스턴스의 메모리 및 디스크 메트릭 모니터링 - Amazon Elastic Compute Cloud

  • 여기의 내용을 간단하게 했을 뿐입니다. 조금 화면 캡처도 추가했습니다.

    CloudWatch 모니터링 스크립트 배포



    필요한 패키지 설치


    sudo yum install perl-DateTime perl-CPAN perl-Net-SSLeay perl-IO-Socket-SSL perl-Digest-SHA gcc -y
    sudo yum install zip unzip
    

    다음으로 SUDO에서 CPAN을 실행.
    sudo cpan
    

    다음 프롬프트가 나타날 때까지 각 프롬프트에서 Enter 키를 누릅니다.
    cpan[1]>
    

    다음 명령으로 모듈을 설치합니다.
    cpan[1]> install YAML 
    cpan[1]> install LWP::Protocol::https 
    cpan[1]> install Sys::Syslog 
    cpan[1]> install Switch 
    

    모니터링 스크립트 다운로드, 설치



    모든 스크립트 저장 폴더를 만들고 다운로드.
    mkdir cloudWatchScript
    cd cloudWatchScript/
    curl https://aws-cloudwatch.s3.amazonaws.com/downloads/CloudWatchMonitoringScripts-1.2.2.zip -O
    

    파일의 압축을 풀고 압축을 푼 디렉토리로 이동.
    unzip CloudWatchMonitoringScripts-1.2.2.zip
    rm CloudWatchMonitoringScripts-1.2.2.zip
    cd aws-scripts-mon
    

    자격 증명 파일에서 AWS 자격 증명을 지정합니다.
    먼저 다음과 같이 모니터링 스크립트에 포함된 awscreds.template 파일을 awscreds.conf에 복사합니다.
    cp awscreds.template awscreds.conf
    

    작성한 파일에 액세스 키 ID와 비밀 액세스 키를 입력합니다.
    vi awscreds.conf 
    
    AWSAccessKeyId=my-access-key-id
    AWSSecretKey=my-secret-access-key
    

    이상으로 준비는 완료.

    동작 테스트, CloudWatch에서 확인



    선택적 --veryfy--verbose를 사용하여 성공적으로 설치되었는지 확인할 수 있습니다.
    CloudWatch에 데이터를 입력하지 않고 테스트를 수행하려면 다음 명령을 입력
    ./mon-put-instance-data.pl --mem-util --verify --verbose
    

    공식 페이지에는 결과는 적혀 있지 않지만, 아래와 같은 실행 결과를 얻으면 OK
    MemoryUtilization: 4.24024510254427 (Percent)
    Using AWS credentials file <./awscreds.conf>
    Endpoint: https://monitoring.ap-northeast-1.amazonaws.com
    Payload: {"MetricData":[{"Timestamp":1528942171,"Dimensions":[{"Value":"i-09c2c31fef1692c33","Name":"InstanceId"}],"Value":4.24024510254427,"Unit":"Percent","MetricName":"MemoryUtilization"}],"Namespace":"System/Linux","__type":"com.amazonaws.cloudwatch.v2010_08_01#PutMetricDataInput"}
    
    Verification completed successfully. No actual metrics sent to CloudWatch.
    

    시도하려면 다음 명령을 사용하여 실제로 CloudWatch에 데이터를 보냅니다. 전송하고 있는 것은 디스크의 이용률.
     ./mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-util --disk-space-util --disk-path=/
    

    AWS 관리 화면에서 다음 화면을 확인합니다 (CouldWatch-> 메트릭 -> 모든 메트릭 -> Linux 시스템)


    이 안에 Filesystem, InstanceId, MountPath 라는 항목이 있으므로 그것을 클릭.
    그 중 DiskSpaceUtilization라는 메트릭스에 디스크 이용률이 기록되어 있는 것을 알 수 있다.


    df 의 실행 결과와 비교해도 대략 틀림없음을 알 수 있다.
    (CloudWatch에의 기록과 df의 실행에 조금 사이가 비어 있었기 때문에 엄밀하게는 없었지만…)
    $ df
    Filesystem     1K-blocks    Used Available Use% Mounted on
    /dev/xvda1      52416860 7559496  44857364  15% /
    

    cron에 등록



    다음 내용을 Cron에 추가 (경로는 적절하게 변경)
    */5 * * * * ~/CoudWatchScript/aws-scripts-monaws-scripts-mon/mon-put-instance-data.pl --mem-used-incl-cache-buff --mem-util --disk-space-util --disk-path=/ --from-cron
    

    조금이라도 ClousWatch에서 정상적으로 값을 확인할 수 있으면 완료!
    수고하셨습니다.

    좋은 웹페이지 즐겨찾기