Azure Monitor, Azure Automation (Runbooks)을 사용하여 App Service (PaaS)의 모니터링 알림 대상 (Webhook)을 Chatwork로 만들기

PaaS의 감시 통지처를 Chatwork로 하고 싶다! !


  • PaaS는 Zabbix Agent와 같은 감시 에이전트를 설치할 수 없기 때문에 감시 힘들다.
  • 그렇지만 IaaS로 DB라든가 만들면 감시는 에이전트로 할 수 있지만, 메인터넌스가 힘들다.
  • Azure Monitor라면 메일 통지가 간단하지만 메일은 알아차리지 않는다!
  • 가능하면 PaaS 장애를 Chatwork에 알리고 싶습니다!

  • 그래서

    Azure Monitor + Azure Automation (Runbooks)을 사용하여 Chatwork에 알립니다.


  • Azure Monitor에서는 알림 대상에 '이메일 주소'와 'Webhook'을 지정할 수 있습니다.
  • Webhook은 뭐야? ? 라고 생각하면서 여러가지 조사해 보면 할 수 있었으므로 설정 내용을 정리합니다.

  • 할 일


  • AppService의 Http Server Error를 Chatwork에 알립니다.
  • Azure Monitor에서 AppService를 모니터링합니다.
  • Chatwork에의 통지는 Automation(Runbooks)를 이용한다.
  • Powershell을 실행하여 Chatwork에 알립니다.



  • 필요하지만 이번 절차로는 쓰지 않는 것


  • Chatwork에서 작업
  • 알림 사용자 만들기
  • 알림 대상 Chatwork 그룹 만들기
  • Chatwork API Token 얻기
  • API Token 발급



  • 할 일의 이미지 다이어그램





    절차 개요


  • 1.Automation 계정 생성
  • 2.Runbooks 작성
  • 3.Webhook 설정
  • 4. Azure 모니터 설정

  • 절차



    1.Automation 계정 생성



    Azure Portal 로그인 후 Automation 화면에서 추가 또는 Automation 계정 만들기를 누릅니다.


    각 항목을 입력하고 만들기.


    Automation 계정을 만들었습니다.



    2.Runbooks 만들기



    Automation 계정 화면으로 이동합니다.




    Runbook 추가를 누릅니다.

    런북의 이름과 유형을 입력하고 만들기.
    ※종류는 [PowerShell Runbook]로 했습니다.


    Runbook을 만들었습니다. 만든 Runbook을 선택합니다.


    편집을 합니다.


    Chatwork에 알리기 위한 Powershell을 기재하고 저장합니다.

    ##roomid is chatwork room id
    $roomid = chatwork room ID
    
    ##$headers is hws-chatwork user zabbix
    $headers = @{"X-ChatWorkToken" = "chatwork API token"}
    
    ##$notification is a message content
    $notification = 'body=[info][title]HTTP Server Error in WebApps!![/title][toall]
    An error occurred in WebApps.
    
    Service Name: App Service
    Resource Name: 
    Error: HTTP Server Error
    
    Please check your website.
    [/info]'
    
    ##notificate to chatwork
    Invoke-RestMethod -Uri "https://api.chatwork.com/v2/rooms/$roomid/messages" -Method POST -Headers $headers -Body $notification
    

    저장된 Runbook을 게시합니다.


    런북 상태가 새로 만들기에서 게시됨으로 변경되었습니다.
    ※공개를 하지 않으면 Webhook의 설정을 할 수 없었습니다.



    3.Webhook 설정



    만든 Runbook 화면에서 Webhook 추가를 수행합니다.


    Webhook의 이름을 입력하고 URL을 복사하고 메모한 다음 확인을 누릅니다.
    ※여기서 URL을 메모하지 않으면 URL을 다시 확인할 수 없기 때문에 Azure Monitor에서 설정할 수 없게 되어 버립니다! !


    Chatwork에 알릴 수 있는지 확인하려면 시작을 누릅니다.

    예를 누릅니다.


    이제 다음과 같이 Runbook에 설정한 룸 ID를 가진 채팅 작업에 알릴 것입니다!




    4. Azure Monitor 설정



    AppService 화면에서 메트릭 알림 추가(클래식)를 수행합니다.


    알림 수단의 Webhook에 3단계에서 기록한 URL을 붙이고 OK를 누릅니다.


    이런 느낌이 되면 OK입니다!

    좋은 웹페이지 즐겨찾기