Meraki からのアラートをwebhookで通知したい!
家に Cisco Meraki や ThousandEyes のエージェントを設置しているのですが、アラートが上がった場合はダッシュボードに見に行かないとダメなのが不便なので、webhook で通知設定してみました。
まずは Cisco Meraki から Cisco Webex へ簡単に通知できるようにします。
Webhook とは
IT用語辞典の Webhook 【Webフック】の項目では、以下のように記載されています。
Webhookとは、Webアプリケーションに対して、特定のイベントが発生したら別のWebアプリケーションに通知を発行するよう利用者が指定する仕組み。HTTPのPOSTリクエストを利用する。
つまり、何かしらのイベントが発生した場合に別のアプリケーションへ通知をしてくれる仕組みのことです。
内容はHTTP POSTリクエストで通知されるので、通知先のアプリケーションはあまり考えなくてよさそうです。
Incoming Webhooks の追加
Webex の App Hub から、 Incoming Webhooks を追加します。
これは、Meraki からアラートが発生した場合に Webex にメッセージを投稿するための宛先 URL を作成します。
Add Bot+ にて追加後、画面下部に Webhook name と Select a space を設定する画面が表示されます。
ここでは、受信した HTTP リクエストを発信する bot の作成と投稿するスペースを指定します。
Webhook name : bot 名の登録(なんでもOK)
Select a space : 投稿するスペースの指定(作成済のグループをプルダウンから選択)
Add を押下すると、画面下部に webhook の受信 URL が発行されます。
この URL をコピーし、Meraki側へ登録します。
また、webex 側では指定したスペースに新しい bot が追加されます。
Meraki へ Webhook の宛先を登録
Meraki のダッシュボードへログインし、ネットワーク全体
> 設定
> アラート
を選択します。
画面下部に Webhook の送付先(HTTPサーバ)を登録するフォームがあるので、先ほど発行した URL を登録します。
名前 : HTTP サーバ名( Meraki 上での登録名のため、なんでもOK)
URL : Incoming Webhooks で発行した URL を登録
ペイロードテンプレート : アラートとして出力されるテンプレートを Meraki / Webex / Slack / Microsoft Teams から選択
各項目を埋めたら、テストWebhookを送信
で送信テストをしてみましょう。
Webhook テストの項目が deliverd の表示に変われば、送信完了です。
ただし、ペイロードテンプレートに利用したいアプリケーション名がない場合は、IFTTT や Zapier を用いてデータを抽出する必要があります。
テンプレートを Webex とした場合、アラートがマークダウン方式で出力され、下記のように表示されます。
上記のように Webhook での通知が確認できれば完了です。
アラート設定
最後に、Meraki 上でアラートの設定をする必要があります。
画面上部にスクロールし、「アラート設定」欄に先ほど登録した Webhook 名を登録します。
「webhook:」と入力すると、Webhook 項目に登録した名前が表示されるので、通知したい名前を選択します。
あとは、通知が欲しいタイミングを選択し、画面最下部の 保存
を押下すれば完了です。
さいごに
Webhook って馴染みがないので難しいイメージがあったのですが、すごく簡単に登録することができました。
ペイロードテンプレートがあればほぼ頭使わなくて大丈夫そうです。
ペイロードテンプレートなし(Meraki 選択)前提で試行錯誤してたので、後日その内容もまとめたいと思います。