Lambda에서 웹을 모니터링하고 CloudWatch에 로그 연동하여 알림 메일

6974 단어 람다CloudWatchAWS

전체 흐름



대략적인 흐름은 다음과 같은 느낌입니까?
  • Lambda 작성 (테스트 및 로그 연동 확인)
  • CloudWatch 규칙 설정 (Lambda 함수가 정기적으로 실행되도록 함)
  • CloudWatch에서 메트릭 설정 (로그에서 Error 문자열 검색)
  • CloudWatch에서 알림 설정 (메일로 알림)

  • 모니터링 및 알림 사양



    Lambda 함수로 특정 URL에 요청을 던지고, statusCode가 200이면 OK, 그 이외라면 Error로 한다.
    Error의 경우는 메일에 통지한다.

    람다 쓰기



    먼저 Lambda 함수를 준비합니다.

    웹 모니터링 코드 작성



    webStatusCheck라는 이름으로 함수를 만듭니다.

    http/https 모듈은 표준으로 사용할 수 있으므로 그것을 이용합니다. 단순히 요청을 던지고 statusCode를 얻고 있습니다.

    index.js
    const https = require('http');
    
    exports.handler = (event, context, callback) => {
    
        //URL
        var url = 'http://www.bluecode.jp/lambda/';
    
        const req = https.request(url,(response)=>{
    
            //statusCode取得
            var code = response.statusCode;
    
            if(code == 200){
                //OK
                console.log("OK " + code);
            }else{
                //Error
                console.log("Status Error " + code)
            }
        });
    
        //リクエスト自体がエラー
        req.on('error',(error)=>{
            console.log("Fatal Error "+error.message);
        });
    
        req.end();
    
    };
    

    복잡한 일을 하고 싶다면, 응답을 파스하는 등, 보다 상세한 스테이터스를 보면 좋을 것입니다.

    CloudWatch와의 협력



    console.log("")로 출력하기만 하면 CloudWatch와 연동되므로 특별히 아무것도 하지 않습니다.
    [테스트]를 하여 로그가 CloudWatch에 출력되고 있는지 확인해 둡니다(아래는 정상과 이상시의 체크를 하고 있습니다).



    또한 Lambda의 코드가 변경되면 로그 스트림이 변경되므로주의가 필요합니다.

    규칙 메트릭 알람 설정



    규칙 설정



    그러면 먼저 규칙을 설정합니다.
    방금 만든 Lambda 함수를 매분마다 실행하도록 설정합니다.



    지표 설정



    그런 다음 지표를 설정합니다.
    메트릭은 로그에 대해 설정되므로 로그 메뉴에서 메트릭 필터 만들기를 선택하여 만듭니다.



    여기에서는 로그에 "Error"라는 문자열이 포함되어 있으면 반응하는 메트릭을 설정합니다.



    정규 표현 등은 이용할 수 없는 것 같습니다.

    알람 설정



    지표 작성 도중에 경고도 설정합니다.



    Error가 발생하면 임계값이 1이 되므로 조건을 >0으로 설정하고 누락 데이터 처리 방법을 [적정]으로 합니다.
    또한 간격을 1분 간격으로 에러 발생시의 통지처를 설정합니다.

    메일은 신규의 경우, 확인 메일이 보내지므로 Confirm 할 필요가 있습니다.



    설정이 끝나면 모니터링이 시작됩니다.

    처음에는 「부족」이 되고 있습니다만, 잠시 서 있으면 OK가 됩니다(적정으로 설정했기 때문에).



    알람 테스트



    한 번에 설정이 완료되었으므로 테스트를 시도합니다.

    감시 대상 URL의 파일을 삭제해 봅니다.
    경고가 감지되었습니다.



    메일도 도착했습니다.



    장애가 복구되면 자동으로 취소됩니다.



    이상.

    좋은 웹페이지 즐겨찾기