실시간 모니터링이 필요한 주요 aws 리소스의 상태 변화를 slack이라는 협업 도구를 통해 효율적으로 모니터링하는 방법에 대해 안내합니다.
전체적인 흐름은 lambda에서 eventbridge를 통해 리소스 변화를 감지하는 트리거를 감지하고, 슬랙에 해당 이벤트에 대한 정보를 보내는 구성입니다.
Webhook URL을 지원하는 다른 플랫폼을 통해서도 모니터링이 가능합니다.
import urllib3
def lambda_handler(event, context):
url = "https://https://hooks.slack.com/services/T192GUYE7/B01L9RYEV0A/3PP2Kw" #본인 Slack훅 정보
username = '[SYSTEM-lambda]'
#pretext = '[Event]' + event['detail-type']
#account = event['account']
time = event['time']
region = event['region']
detail = event['detail']
senText = ' account : {} \n time : {} \n region : {} \n detail : {}'.format(account,time,region,detail )
msg = {
"username": '[SYSTEM-lambda]' ,
"pretext": pretext,
"text": senText,
"icon_emoji": ""
}
encoded_msg = json.dumps(msg).encode('utf-8')
resp = http.request('POST',url, body=encoded_msg)
print({
"status_code": resp.status,
"response": resp.data
})
return {
'statusCode': resp.status,
'body': resp.data
}
아래와 같이 모니터링 대상의 상태 변화가 발생했을 때, slack을 통해 해당 정보를 빠르게 확인할 수 있습니다.