2013-03-06 5 views
5

2 시간마다 실행되는 백업 스크립트가 있습니다. 나는이 스크립트의 성공적인 실행을 추적하기 위해 CloudWatch를 사용하고 스크립트가 문제가 발생할 때마다 알림을 받기 위해 CloudWatch의 Alarms를 사용하려고합니다.이상한 CloudWatch 알람 동작

스크립트는 모든 성공적인 백업 후 CloudWatch는 메트릭에 데이터 포인트를두고 :

mon-put-data --namespace Backup --metric-name $metric --unit Count --value 1 

나는 메트릭에 대한 통계 "합계"는 이하 2 때마다 경보 상태가되어 알람이 6 시간.

이 설정을 테스트하기 위해 하루가 지나면 메트릭에 데이터를 저장하지 않았습니다 (예 : mon-put-data 명령을 주석 처리했습니다). 좋아, 결국 알람이 ALARM 상태가되어 예상대로 이메일 알림을 받았습니다.

문제는 나중에 알람이 OK 상태로 돌아 오지만 메트릭에 추가되는 새 데이터가 없다는 것입니다.

두 전환 (OK => ALARM, ALARM => OK)이 기록되었으며이 질문에서 로그를 재생산했습니다. 두 항목 모두 "기간 : 21600"(즉, 6 시간)이지만 두 번째 항목은 startDate와 queryDate 사이의 12 시간 간격을 보여줍니다. 이것이 전환을 설명 할 수도 있지만, CloudWatch가 6 시간 동안 통계를 계산하기 위해 12 시간의 시간 범위를 고려하는 이유를 이해할 수 없습니다.

무엇이 여기에 있습니까? 내가 원하는 것을 얻기 위해 알람을 구성하는 방법 (즉, 백업이 만들어지지 않을 경우 알림을 얻는 방법)?

{ 
    "Timestamp": "2013-03-06T15:12:01.069Z", 
    "HistoryItemType": "StateUpdate", 
    "AlarmName": "alarm-backup-svn", 
    "HistoryData": { 
     "version": "1.0", 
     "oldState": { 
      "stateValue": "OK", 
      "stateReason": "Threshold Crossed: 1 datapoint (3.0) was not less than the threshold (3.0).", 
      "stateReasonData": { 
       "version": "1.0", 
       "queryDate": "2013-03-05T21:12:44.081+0000", 
       "startDate": "2013-03-05T15:12:00.000+0000", 
       "statistic": "Sum", 
       "period": 21600, 
       "recentDatapoints": [ 
        3 
       ], 
       "threshold": 3 
      } 
     }, 
     "newState": { 
      "stateValue": "ALARM", 
      "stateReason": "Threshold Crossed: 1 datapoint (1.0) was less than the threshold (2.0).", 
      "stateReasonData": { 
       "version": "1.0", 
       "queryDate": "2013-03-06T15:12:01.052+0000", 
       "startDate": "2013-03-06T09:12:00.000+0000", 
       "statistic": "Sum", 
       "period": 21600, 
       "recentDatapoints": [ 
        1 
       ], 
       "threshold": 2 
      } 
     } 
    }, 
    "HistorySummary": "Alarm updated from OK to ALARM" 
} 

간단한 내가 이해할 수없는 두 번째 :

{ 
    "Timestamp": "2013-03-06T17:46:01.063Z", 
    "HistoryItemType": "StateUpdate", 
    "AlarmName": "alarm-backup-svn", 
    "HistoryData": { 
     "version": "1.0", 
     "oldState": { 
      "stateValue": "ALARM", 
      "stateReason": "Threshold Crossed: 1 datapoint (1.0) was less than the threshold (2.0).", 
      "stateReasonData": { 
       "version": "1.0", 
       "queryDate": "2013-03-06T15:12:01.052+0000", 
       "startDate": "2013-03-06T09:12:00.000+0000", 
       "statistic": "Sum", 
       "period": 21600, 
       "recentDatapoints": [ 
        1 
       ], 
       "threshold": 2 
      } 
     }, 
     "newState": { 
      "stateValue": "OK", 
      "stateReason": "Threshold Crossed: 1 datapoint (3.0) was not less than the threshold (2.0).", 
      "stateReasonData": { 
       "version": "1.0", 
       "queryDate": "2013-03-06T17:46:01.041+0000", 
       "startDate": "2013-03-06T05:46:00.000+0000", 
       "statistic": "Sum", 
       "period": 21600, 
       "recentDatapoints": [ 
        3 
       ], 
       "threshold": 2 
      } 
     } 
    }, 
    "HistorySummary": "Alarm updated from ALARM to OK" 
} 

답변

5

이 동작합니다 (INSFUCCIENT_DATA 상태로 전환하지 않은 모니터가 있음을 CloudWatch를 그렇게 '프리 타임 스탬프'메트릭 데이터 포인트와 고려하기 때문에 (6 시간 알람의 경우) 현재 열려있는 6 시간 창에 데이터가 없으면 이전 6 시간 창 (따라서 위의 12 시간 타임 스탬프)에서 데이터를 가져옵니다.

'충실도를 높이려면 ', 알람 기간을 줄입니다. o 1 시간/3600 초. 평가 기간을 늘리면 실패 할 때 경고 할 기간 수를 늘립니다. 그러면 알람이 예상대로 INSFUCCIENT_DATA (으)로 전환됩니다.

원하는 것을 얻기 위해 알람을 구성하는 방법 (즉, 백업이 만들어지지 않은 경우 알림을 받겠습니다)?

경보가 발생할 수있는 아키텍처는 작업이 성공하면 1을, 실패하면 0을 게시합니다. 그런 다음 임계 값이 < 인 알람을 3 - 3600s 기간 동안 생성하십시오. 이는 작업이 실패한 경우 (즉, 실행 중이지만 실패한 경우) 알람이 ALARM으로 들어갈 것임을 의미합니다. 또한 해당 알람에 대해 INSFUCCIENT_DATA 작업을 설정하면 작업이 전혀 실행되지 않는 경우 알림을 받게됩니다.

희망이 있습니다.

+0

흥미 롭습니다. 그러나 나는이 "기능"이 어디서나 문서가 아니라는 것을 매우 편안하게 느끼지 않는다. 또한 제안한 아키텍처는 좋지 않습니다. 데이터가 없을 때 알림을 받는다는 전체적인 생각은 알림이 실패한 경우에 경보를 발생시키는 것입니다 (예 : 백업을 중지시키는 서버가 죽었거나 네트워크가 있다고 가정합니다. 문제 등). 귀하의 회신에 감사드립니다! 이를 염두에두고 내가 할 수있는 것을 볼 것입니다. –

+0

메트릭 데이터 포인트가없는 경우 알람은 ALARM 상태가 아닌 INSUFFICIENT_DATA 상태로 전환됩니다. 따라서 작업이 실행되고 있지 않다는 알림을 받으려면 INSFUCCIENT_DATA에 작업을 지정해야합니다. 임계 값을 비교할 수있는 데이터 포인트가있는 경우에만 알람이 ALARM 상태로 전환됩니다. – Wal

+0

따라서 작업 성공에 대한 가치 1, 작업 실패 (예 : 작업이 실행 중이지만 성공적으로 완료되지 않음)에 값 1을 게시하고 마지막으로 INSFUCCIENT_DATA 상태가 게시되는 메트릭 부족을 처리하도록 제안합니다 (예 : 작업을 실행하는 호스트가 작동하지 않습니다.) – Wal