19
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ThousandEyes と Webex Teams をカスタム Webhook で連携してアラートをつぶやいてみた

Last updated at Posted at 2022-12-08

この記事はシスコの有志による Cisco Systems Japan Advent Calendar 2022 の 9 日目として投稿しています。
2022年版: https://qiita.com/advent-calendar/2022/cisco

はじめに

ThousandEyes を使うと、ネットワークの品質をリアルタイムに監視し、問題があるとアラートをあげることができます。これまではメール通知などが主な方法でしたが、2022 年 9 月にアナウンスされた Custom Webhooks 機能で柔軟な外部連携ができるようになりました。

新機能の詳細は、下記をご参照ください。

この記事では、新機能の Custom Webhooks を使い、ThousandEyes と Webex Teams を連携し、アラートを Webext Teams の bot でつぶやく方法をまとめます。イメージとしては以下のようになります。

Screen Shot 2022-11-21 at 13.33.45.png

1. 準備

Webex Teams の Bot を使うために、下記の 2 つの情報を準備しておく必要があります。

  • Bot access token
  • Room ID

すでにこれらの情報をお持ちの方は、2. Custom Webhook の設定 へお進みください。

Bot access token の入手

まず Webex Teams でつぶやく bot を作成します。下記にログインし、右上のアイコンから "My Webex Apps" を選択します。
https://developer.webex.com/
その後 Create a New App をクリックすると、下記の画面になります。

005.png

右上の Create a Bot で Bot を作成します。最後に表示される Bot access token をメモしておいてください。

Bot 作成の詳細な手順については、下記の blog などでも公開されていますので、必要に応じてご参照ください(『「Bot access token」の確保』までの参照で大丈夫です)。

Room ID の入手

次に、つぶやく Webex Teams の Room ID を入手します。上記で作成した bot を適当な Webex Teams のルームに入れます。その後、下記にアクセスします。

右側の "Try it" にある Use personal access token のチェックを外し、Bot access token をコピペします(下図赤枠)。その後、最下部にあるオレンジの Run ボタンを押すと Bot が入っているルームの一覧が得られます。

Screen Shot 2022-11-18 at 20.49.00.png

下記に Run 応答で得られるサンプルの json を示します。ここから、通知先となるルームの ID をメモします("id" や各値はもっと長いですが、見やすくするために短くしています)。

{
    {
      "id": "Y2lzYyazoS9hYWQzOGEcJllMjR",    << これをメモします(本当はもっと長いです)
      "title": "Test Room",
      "type": "group",
      "isLocked": false,
      "lastActivity": "2022-01-17T05:13:19.399Z",
      "creatorId": "Y2lzY29zL1BF02tOWMxZC1jOSVkZi05C1hOGRT1BM4NC",
      "created": "2021-10-20T06:20:14.989Z",
      "ownerId": "Y2lzY29zcG0PTGF0Nj3NzvL3VzL0Nj3NVkZi05FZDcGY",
      "isPublic": false
    }
}

2. Custom Webhook の設定

ThousandEyes にログインし、左のメニューから Alerts > Integrations 選択します。その後、右上にある "New Integration" ボタンを押します。

001.png

すると下記のような画面になりますので、Custom Webhook を選択します。

002.png

その後、カスタム画面になりますので、Preset Configurations を Cisco Webex にします。

003.png

この Preset を使うと、Body に必要な情報が自動的に埋められるので便利です。

Screen Shot 2022-11-18 at 20.57.47.png

あとは、各フィールドを埋めます。下記のような感じです。

  • Name: 適当な名前を入力します(例: Webex Alert)
  • URL: https://webexapis.com/v1/messages
  • Auth Type: None
  • Headers:
    • Content-Type: application/json
    • Authorization: Bearer [Bot access token]
  • Body: 下記参照

Body は以下のようになります。markdown は Preset そのままなので、roomId だけを追加します(最後のコンマを忘れないように気をつけます)。

{
"roomId": "Y2lzYyazoS9hYWQzOGEcJllMjR",
"markdown" : "<strong>ThousandEyes Alert{{#eq type.id 2}} Triggered{{else}} Cleared{{/eq}}{{#if alert.test}} for {{alert.test.name}}{{/if}}</strong>\n<strong>Alert ID:</strong> {{alert.id}}{{#if alert.test}}\n<strong>Test Name:</strong> {{alert.test.name}}\n<strong>Target/s:</strong> {{#each alert.targets}}{{description}}{{#unless @last}} {{/unless}}{{/each}}{{/if}}\n<strong>Alert Rule:</strong> {{alert.rule.name}} - {{formatExpression alert.rule.expression}}{{#if alert.details}}\n<strong>Details:</strong> {{alert.details.size}}{{/if}}\n<strong>Severity:</strong> {{alert.severity.display}}\n<strong>Alerts Link:</strong> https://app.thousandeyes.com/alerts/list/active"
}

最終的には下記のようになります。

Screen Shot 2022-11-18 at 21.04.17.png

3. 動作確認

Test ボタンを押して、動作を確認します。Webex teams ルームに Bot のメッセージが投稿されたら成功です!Save して完了になります。

Screen Shot 2022-11-18 at 21.07.42.png

実際のテストと紐づけるには、Alert Rules の Notifications にある、INTEGRATIONS のメニューから紐づけます。

004.png

ThousandEyes の Alert 生成方法については、下記の YouTube 動画でも説明されていますので、必要に応じてご参照ください。

最後に

ThousandEyes の Custom Webhook を使うと、このように簡単にインテグレーションができます。皆様、良い年末年始をお過ごしください。

19
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
19
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?