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の取得
やることのイメージ図
- AppServiceのHttp Server ErrorをChatworkに通知する。
- Azure MonitorでAppServiceを監視する。
- Chatworkへの通知はAutomation(Runbooks)を利用する。
- Powershellを実行してChatworkに通知する。
必要だけど今回の手順としては書かないこと
- Chatworkにおける作業
- 通知用ユーザの作成
- 通知先Chatworkグループの作成
- Chatwork API Tokenの取得
やることのイメージ図
- 通知用ユーザの作成
- 通知先Chatworkグループの作成
- Chatwork API Tokenの取得
手順概要
- 1.Automationアカウント作成
- 2.Runbooks作成
- 3.Webhook設定
- 4.Azure Monitor設定
手順
1.Automationアカウント作成
Azure Portalログイン後にAutomation画面で[追加]もしくは[Automationアカウントの作成]を押下します。
各項目を入力し[作成]します。
Automationアカウントが出来ました。
2.Runbooks作成
1.Automationアカウント作成
Azure Portalログイン後にAutomation画面で[追加]もしくは[Automationアカウントの作成]を押下します。
各項目を入力し[作成]します。
Automationアカウントが出来ました。
2.Runbooks作成
[Runbookの追加]を押下します。
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を[公開]します。
Runbookのステータスが[新規]から[発行済み]に変わりました。
※公開をしないとWebhookの設定ができませんでした。
3.Webhook設定
作成したRunbookの画面から[Webhookの追加]を行います。
Webhookの[名前]を入力、[URL]をコピー&メモした後に[OK]を押します。
※ここでURLをメモしないとURLをもう一度確認することが出来ないためAzure Monitorで設定することが出来なくなってしまいます!!
Chatworkに通知できるか確認するため[開始]を押下します。
[はい]を押下します。
これで以下のように、Runbookに設定したルームIDを持つチャットワークに通知されるはずです!
4.Azure Monitor設定
AppServiceの画面から[メトリックアラートの追加(クラシック)]を行います。
[通知手段]の[Webhook]に手順3でメモしたURLを張り付けて[OK]を押します。
こんな感じになればOKです!
Author And Source
この問題について(Azure Monitor, Azure Automation(Runbooks)を利用して、App Service(PaaS)の監視通知先(Webhook)をChatworkにする), 我々は、より多くの情報をここで見つけました https://qiita.com/takahashi-kazuki/items/d84a03fd9a522056b76c著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .