Splunkからチャットへメッセージを送る方法
目標:ログをSplunk経由でWebex Teamsへメッセージを投稿します
ネットワーク装置環境
手順
1. Cisco Webexにスペースを作ります。(ルームIDの作成とBotアクセスキーの確認)
Cisco Webexの投稿先
https://api.ciscospark.com/v1/messages
Authorization: bearer <ボットのアクセストークン>
Content-type: application/json
{
"roomId": <ルームID情報>,
"text": <投稿するメッセージの内容>
}
Mar 23 17:32:42 10.255.255.2 %ASA-4-722051: Group <Osaka-SE-GP-Password> User <xxx-xxx> IP <202.234.xxx.xxx> IPv4 Address <10.254.11.1> IPv6 address <::> assigned to session
<13>Mar 23 11:28:33 sol-sdp.xxx.xxx cz-vpnd: [AUDIT] {"client_ip":"180.42.xxx.xxx","client_port":61689,"collective_id":"d8304006-5b71-xxx-xxx-xxx-xxx","distinguished_name":"CN=a45cf59aea1xxxxxxxxxxxxxx,CN=xxx-xxx,OU=local","distinguished_name_device_id":"a45cf59aea1xxxxxxxxxxxxxx","distinguished_name_ou":"local","distinguished_name_user":"xxx-xxx","event_type":"tunnel_established","geoip":{"ip":"180.42.xxx.xxx","time_zone":"Asia/Tokyo","continent_code":"AS","city_name":"Kobe","country_name":"Japan","country_code2":"JP","country_code3":"JP","region_code":"28","region_name":"Hyōgo","postal_code":"650-xxxx","location":{"lon":135.xxxx,"lat":34.xxxx},"latitude":34.xxxx,"longitude":135.xxxx,"cordinates":[135.xxxx,34.xxxx]},"id":"8ebf588f-a780-4bf0-xxxx-xxxxxxxxx","pool_v4_ip":"192.168.100.14","pool_v6_ip":"fd00:0:0:0:0:ffff:xxxx:xxxx","timestamp":"2020-03-23T11:28:33.633Z","tunnel_protocol":"TLS","version":9}
すこし余談ですが、上記は同じようにVPNでアクセスしているログです。装置によって出力されるログが大きく異なります。
- Splunk上でサーチ文からASAとAppGateのアラートを作成します。
- 対象のログをサーチし、右上の「名前をつけて保存」からアラートを作成します。
- アラートタイプを「リアルタイム」に変更します。
- アクション追加から「Webhook」を選択します。
- WebhookのURLにはZapierのCatch HookのURLを貼り付けます。(後ほど)
- Make a Zapから新規のZapを作成
- Webhooks by Zapierを選択
- When this happens..ではCatch Hookを選択
- Customize hookをコピー
- Skip test(この時点でログを飛ばしても問題なし)
- Do thisでもWebhook by Zapierを選択
- Postを選択
- URLを入力(https://api.ciscospark.com/v1/messages)
- Payload Typeを選択(JSON)
- Dataは"roomId"と"text"の値を入力
- Headerには、authorization: bearer <botのアクセストークン>
When this happens..の作り方例
Do this..の作り方例
を入力し完了です。上記の画面ではすでに変数がセットしてありますが、最初は変数が取れないので次の6,7の手順でテストを実施してください。
6. Splunkのアラート設定に戻ります。
アクションの編集からWebhookのURLへ、5の手順で取得したZapierのWebhook URLを入力。
7. Zapierへ変数の設定
- 先程作成したZapのFind DataからTest&Contineし、この間にネットワーク装置からログを送信します。
- Zapier上で受信したログのサンプルを選択。
- Do thisのPostのData部分に、Splunkから受信した情報をメッセージに埋め込みます。
8. テストの実施
ここまでの過程ですでにチャットにはいくつかメッセージがポストされているはずですので、再確認の意味で再びログを発生させてポストされたメッセージを確認しましょう。意図した情報がメッセージの中に含まれていれば成功です。
ログを発生させてみましょう。
もちろん同様にASA側もセットすることで
もちろん通知が煩わしいことも多いので、私はZapier側でAppGateとASAのアップを管理できるようにしています。
まとめ
ネットワーク装置からチャットにメッセージを投稿
著者紹介
SB C&S株式会社
ICT事業本部 技術本部 第3技術部
宮本 世華
釣りが好きです。