Telegram 봇 생성에 이어서 Azure Portal 구성 진행
https://comengx.tistory.com/98
알람을 보내는 아키텍쳐
[Azure VM] --> [Azure Monitor] --> [Alert Rule] --> [Action Group] --> [Logic Apps] --> [Telegram Bot API] --> [Telegram Chat] |
- Azure VM: 모니터링 대상 가상 머신
- Azure Monitor: VM 상태를 지속적으로 모니터링
- Alert Rule: VM 다운 등 특정 조건 감지 시 알림 트리거
- Action Group: 알림 발생 시 수행할 작업 정의
- Logic Apps: Telegram으로 메시지를 보내는 워크플로우 실행
- Telegram Bot API: Telegram과 통신하는 인터페이스
- Telegram Chat: 최종적으로 알림을 수신하는 대화방
구성 순서는 Logic Apps -> Action Group -> Azure Monitor 순으로 진행
- Action Group과 Azure Monitor는 한번에 진행해도 상관은 없음.
Logic Apps 구성
1. Logic Apps 생성
- Azure Portal -> Logic Apps -> "추가" 선택
- 호스팅 옵션 선택 -> "다중 테넌트"
- 논리 앱 만들기 (다중 테넌트)
- "구독", "리소스 그룹", "논리 앱 이름", "지역" 선택
- 나머지는 기본 값 선택 -> 만들기
2. 트리거 설정
- 생성 된 Logic Apps(Azure_Dev_Alert_LogicApps)를 열고 "논리 앱 디자이너" 선택
- "트리거 추가" 선택 및 "When a HTTP request is received" 검색하여 추가 (설정값은 기본 유지)
- 아래쪽 "작업추가"를 선택 후 "HTTP"를 검색하여 액션 추가 -> 저장
- HTTP 액션 설정 -> 저장 선택
- Method: POST
- URI: Telegram 봇 API 주소 입력
- https://api.telegram.org/bot<봇 토큰>/sendMessage
- Headers 입력
- 키: Content-Type
- : application/json
- Body: 내용 입력
{
"chat_id": "<챗 ID>",
"text": "Azure VM이 다운되었습니다!"
}
<봇 토큰>, <챗 ID>는 Telegram 봇 생성 시 기록한 내용을 입력
3. 테스트
- 상단의 "실행"을 클릭하여 메시지 발송 테스트
- 정상적으로 실행이 된 경우
(실행결과)
(실행기록)
(텔레그램 메시지)
Action Group 구성
1. Azure Portal -> 모니터 -> 경고 -> "작업 그룹" -> "만들기" 선택
- (기본 사항) 리소스 그룹 / 작업 그룹 이름 / 표시 이름
- (알림) 기본값
- (작업) 작업 형식 "논리 앱" 선택 후 미리 생성한 logic apps 연결
"만들기" 선택 후 생성 된 작업 그룹 확인
Azure 모니터링 구성
1. Azure Portal -> 모니터 -> 경고 -> "경고 규칙" -> "만들기" 선택
- (범위) 모니터링 대상 VM 선택
- (조건)
- 신호 이름: VM Availability Metric (Preview) 선택
- 경고 논리: 최소값 / 작거나 같음 / 개수 / 0
- VM이 다운되었을 때 가용성 메트릭이 0이되어 경고 발생
- VM이 다시 시작되면 가용성 메트릭이 1이되어 경고가 자동으로 해제
- 평가할 시기: 1분 / 1분
- 평가 빈도와 기간은 필요에 따라 수정
- (작업) 기존에 생성한 작업 그룹 선택
- (세부 정보) 심각도 / 경고 규칙 이름
"만들기" 선택 후 생성 된 경고 규칙 확인
알람 테스트
- Azure Portal 에서 VM 재시작 시 텔레그램 메시지 발송
- OS에서 리부팅 시 메시지 발송을 하려면 Agent 설치 필요
텔레그램으로 발송은 정상적으로 확인이 되었으나, 알람 발생 조건에 대해서는 좀 더 확인이 필요함.
https://learn.microsoft.com/ko-kr/azure/azure-monitor/vm/tutorial-monitor-vm-alert-availability