할때마다 잊어버려서 메모



1) EC2 Role에 CloudWatch FullAccess 권한 부여

2) 필요 Libray 설치

- Centos (RedHat)
$ sudo yum install perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https perl-Digest-SHA unzip -y

- Amazon Linux AMI
$ sudo yum install perl-Switch perl-DateTime perl-Sys-Syslog perl-LWP-Protocol-https

3) EC2 메모리 및 디스크 Matrix 모니터링 스크립트 설치

sudo su
cd /root
unzip CloudWatchMonitoringScripts-1.2.1.zip
rm -rf CloudWatchMonitoringScripts-1.2.1.zip
cd aws-scripts-mon/

4) Test
./mon-put-instance-data.pl --mem-util --verify --verbose

5) CloudWatch에 전송 테스트
./mon-put-instance-data.pl --mem-util --mem-used --mem-avail

6) crontab 등록(disk 체크는 /data 디렉토리만하는 예)
* * * * * $HOME/aws-scripts-mon/mon-put-instance-data.pl --mem-util --mem-used --mem-avail --disk-path=/data --disk-space-util --disk-space-used --disk-space-avail --swap-used --from-cron

7) AutoScaling Group에 데이터 수집
./mon-put-instance-data.pl --mem-util --mem-used --mem-avail --auto-scaling=only


8) 참고


'AWS > ' 카테고리의 다른 글

CloudWatch 인스턴스의 메모리 및 디스크 Matrix 추가  (0) 2016.08.07
Posted by 고잉고
코딩하다가보면 가끔 특정 코드 블럭에는 formatter를 적용 안해야하는 부분이 있음.(가독성을 위해서)
그럴 때 사용하는 방법

  1. Enable tag


  2. 소스에 적용 샘플
   // @formatter:off
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
       
        /** 인터셉터 */
        registry.addInterceptor(getAccessInterceptor())
            .addPathPatterns( "/**")
                .excludePathPatterns( "/")
                .excludePathPatterns( "/favicon.ico")
                .excludePathPatterns( "/resources/**")
                .excludePathPatterns( "/error/**");
       
        super.addInterceptors(registry );
    }
    // @formatter:on


Posted by 고잉고
  1. 현상
    1. 기존 설치형톰캣 + Spring 3.2 기반의 프로젝트를 Spring boot 1.3.5와 임베디드 톰캣으로 변경하였는데 일정 주기마다 응답이 느려지는 현상이 발생(약, 2~3초)
    2. 다른 프로젝트도 Spring boot로 서비스 중이지만 동일현상이 발생하지 않았음
  2. 의심사항 리스트업
    1. 일정주기 -> ehcache 캐쉬 리로드 타임
    2. 로그백 캐쉬 리로드
    3. 기타 여러가지
  3. 디버깅
    1. 테스트용 URL을 만들어서 call 찍어봄
    2. Spring boot tomcat access로그를 남겨서 응답시간을 남겨봄
    3. 어플리케이션 로그를 DEBUG레벨로 남겨봄
  4. 디버깅을 통한 의심사항 확인
    1. 응답이 느려질 때 어플리케이션 로그에 아래와 같은 딜레이가 발생됨을 확인(3초 가량의 딜레이)
    2. 2016-07-03 12:22:04 [DEBUG] o.a.c.connector.CoyoteAdapter:180 - The variable [semicolon] has value [-1]
      2016-07-03 12:22:04 [DEBUG] o.a.c.connector.CoyoteAdapter:180 - The variable [enc] has value [utf-8]
      2016-07-03 12:22:07 [DEBUG] o.a.c.a.AuthenticatorBase:180 - Security checking request POST 요청URL 블라블라
    3. 해당 시점에 jvm gc를 확인해보니 young gc가 발생 -> GC시점에 느려짐?? -> FULL GC도 아닌데 왜 느려짐? -> 임베디드톰캣 설정이 문제인가??
      1. jstat -gcutil -h10 프로세스ID 1s
      2. 재 확인해보니 꼭 GC발생시점에 느려지지는 않음








Posted by 고잉고