awscurl를 이용한 AMP Alertmanager Mute 설정

안녕하세요 🙂

베스핀글로벌 SRE실 남원식 님이 작성해 주신 ‘awscurl를 이용한 AMP Alertmanager Mute 설정’에 대해 알아보겠습니다.

# 사전 준비 사항


1. awscurl 설치

$ pip3 install awscurl

2. accesskey 설정

[sre3-nws]
aws_access_key_id = {aws_access_Key_id}
aws_secret_access_key = {aws_secret_access_key}

# awscurl MuteList 조회


$ export AMP_ENDPOINT=https://aps-workspaces.{REGION}.amazonaws.com/workspaces/{WORKSPACE_ID}/alertmanager/api/v2/silences

$ awscurl -X GET –region {REGION} –profile {PROFILE} -H “Content-Type: application/json” –service aps $AMP_ENDPOINT | jq

– WORKSPACE_ID 값은 Amazon Managed Service for Prometheus 서비스에서 확인 가능 

# awscurl Mute 설정


$ export AMP_ENDPOINT=https://aps-workspaces.{REGION}.amazonaws.com/workspaces/{WORKSPACE_ID}/alertmanager/api/v2/silences

$ awscurl -X POST –region {REGION} –profile {PROFILE} -H “Content-Type: application/json” \

-d ‘{
“matchers”:[
{
“name”:”alertname”, #알림 규칙에서의 Matcher의 이름을 지정
“value”:”ContainerStatusKilled”,  #알림 규칙에서의 Matcher의 이름의 값을 지정
“isEqual”:true, #해당 옵션이 true로 설정 된 경우, Matcher의 Name 및 Value 값이 정확히 일치하는 알림 선택
“isRegex”:true #해당 옵션이 true로 설정 된 경우, Matcher의 Name 및 Value 값을 정규식 턴으로 사용하여 알림 선택
}
],
“startsAt”:”2023-07-05T00:00:00+00:00″, #알림 규칙 시작 시간을 UTC 형식으로 지정
“endsAt”:”2023-07-05T09:00:00+00:00″,  #알림 규칙 종료 시간을 UTC 형식으로 지정
“createdBy”:”SRE3-NWS”, #알람 규칙을 생성한 사용자를 지정
“comment”:”MUTE”   #알림규칙에 대한 주석을 지정
}’ \
–service aps –service aps $AMP_ENDPOINT | jq

# awscurl UnMute 설정


$ export AMP_ENDPOINT=https://aps-workspaces.{REGION}.amazonaws.com/workspaces/{WORKSPACE_ID}/alertmanager/api/v2/silences

$ awscurl -X DELETE –region {REGION} –profile {PROFILE} -H “Content-Type: application/json” –service aps $AMP_ENDPOINT/{SILENCE_ID}

– SILENCE_ID는 MuteList api 호출시 확인 가능

감사합니다 🙂

Written by 남 원식 / Wonsik Nam

Cloud Engineer

Leave a Comment