Grafana 를 사용하여 알람을 구성 하였는데, 그라파나 알람 에서 DatasuourceError 가 자주 발생한다

 - 위 알람은 Grafana 의 DataSource 가 정상적로 연동되지 않았을 경우 발생

 - 저의 경우 EKS 에서 기동중인 Prometheus가 Datasource 인데 EKS를 주기적으로 재기동 하는경우가 이에 해당 한다

 

만약 위 알람이 주기적으로 발생하고 알람에 대한 조치가 필요 없는 경우 아래와 같이 처리할 수 있다

 

1. Grafana 에서 주기적으로 발생하는 알람에 대하여 silence 를 걸어서 알람 제어

2. Grafana 에서 SNS를 발송하기 전에 Lambda 코드를 통해 DataSourceError 일경우는 SNS 발송을 하지 않기

 


 

1번 의 경우 silence 를 매일 다시 수정 해 주어야 하는 번거로움이 있어서 2번을 통해 진행

관련된 코드는 아래와 같으니 참고하여 적절한 내용으로 수정해서 도움이 되었으면 좋겠습니다

 

import json
import boto3

def lambda_handler(event, context):
    #send_sns(event)    
    alerts_info(event)
    print(event)
##alert 정보 변수 설정
def alerts_info(event):
    
    for i in event['detail']['alerts']:
        
        alert_name = i['labels']['alertname']
        alert_time = i['startsAt']
        if alert_name != "DatasourceError":
            alert_value = i['values']['C']
            sns_main = "Alert Name : " + alert_name + "\n" +  "Alert Time : " + alert_time + "\n" + "Alert Value :" +  json.dumps(alert_value)
            
            client = boto3.client('sns')
            client.publish(
            TopicArn='arn:aws:sns:ap-northeast-2:#########:cloudwatch',
            Message = sns_main,
            Subject = alert_name
            )

+ Recent posts