ChatWorkでDatadogのアラート通知を受けてみた

chatwork

はじめに

AWSチームのすずきです。

今回、国産チャットツールとして知られるChatWork、監視SaaSのDatadogが検知した アラートの通知先として設定する機会がありましたので、その内容を紹介させて頂きます。

準備

  • チャットワークAPIの利用に必要となるAPIトークンの発行と、通知先(room_id)の確認を行います。

APIトークン発行

  • 参考リンク

チャットワークAPI ドキュメント(認証方法)

チャットワークの「動作設定」画面に「API発行」が表示されない場合、APIトークンの発行を管理者に依頼してください。

APIテスト環境

OS

  • Amazon Linux

APIキーの動作テストは、AmazonLinux標準の「curl」を利用しました。

追加パッケージ

  • jq

JSONの視認性を向上、フィルタリングの実現のため、AmazonLinux標準リポジトリより「jq」をインストールしました。

sudo yum install  jq -y

API実行

TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
curl -X GET -H "X-ChatWorkToken: ${TOKEN}" "https://api.chatwork.com/v1/rooms" | head -n 3

room_id確認

  • チャット通知先として利用する「room_id」を確認します。
  • チャットワークのURL、GETパラメータとして表示される「rid」は「room_id」は異なりますのでご注意ください。

グループチャット一覧確認

TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"

curl -X GET -H "X-ChatWorkToken: ${TOKEN}" "https://api.chatwork.com/v1/rooms" | jq '.[]|select(.type == "group") '

チャット名指定

TOKEN="xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
curl -X GET -H "X-ChatWorkToken: ${TOKEN}" "https://api.chatwork.com/v1/rooms" | jq '.[]|select(.name == "テスト") '

実行例

{
  "room_id": 0000000,
  "name": "テスト",
  "type": "group",
  "role": "member",
  "sticky": false,
  "unread_num": 2,
  "mention_num": 0,
  "mytask_num": 0,
  "message_num": 2,
  "file_num": 0,
  "task_num": 0,
  "icon_path": "https://tky-chat-work-appdata.s3.amazonaws.com/icon/ico_group.png",
  "last_update_time": 0000000
}

Datadog設定

Integration 設定

  • ChatWork Integration 設定画面を開きます

datadog2chatwrok-01

datadog2chatwrok-02

通知先設定

  • Auth token として、先に疎通テストを実施したAPIトークンを記入します。
  • Room Idは、先に確認した「room_id」を記入します。
  • Rome Name は任意の名称とします

datadog2chatwrok-03

監視設定

監視設定作成

  • 「New Monitor」より監視設定を作成します

datadog2chatwrok-06

監視対象指定

  • 「Metric」より監視対象を指定します
  • 今回、SQSのデッドレターキューの発生を想定し、デットレターキューとして指定したキューに蓄積したメッセージ数を、監視対象としています。

datadog2chatwrok-05

監視条件設定

  • Alert, Warnningの閾値を指定します。
  • Datadog,Cloudwatchメトリックの取得頻度は約10分、duringの設定時にはご注意ください。

datadog2chatwrok-08

通知メッセージ

  • チャット通知に含めるメッセージを記載します
  • 何らかの障害対応が予想されるアラートの場合、その手順などの案内が可能です

通知先指定

  • 先にChatWork Integrationで設定したチャット情報を指定します。

datadog2chatwrok-11

datadog2chatwrok-12

アラートテスト

Datadogのアラート通知が実施される事を確認します。

擬似障害

  • 監視対象としたSQSのキューに対し、AWSコンソールよりメッセージを投入します

datadog2chatwrok-13

datadog2chatwrok-15

Datadog 検出確認

  • Datadogのコンソールで、アラート発生したことを確認します

datadog2chatwrok-16

チャットワーク通知確認

  • 障害発生を示すメッセージが到着しています。

datadog2chatwrok-17

チャットリンク表示確認

  • チャット記載のURLより、該当アラートを示すDatadogの詳細画面に遷移することができます。

datadog2chatwrok-18

まとめ

今回はDatadogからChatWorkへの設定例を紹介させて頂きましたが、 Datadogはチャット通知先として、SlackやHipChatなども利用可能です。

DatadogのIntegration導入、設定とも簡単に実施できますので、ぜひお試しください。