Slackの外部ツール連携について、使って分かったノウハウを説明する。Slackと外部ツールの連携には、簡単に設定できるが自由度の低い「Apps」と、設定が複雑だが柔軟かつ高度な設定ができる「Custom Integrations」の2種類がある。

 Appsはツール開発元が提供している連携方法だ。基本的にプログラミングなしで導入できる。設定は簡単だが、連携できるツールが限られ、設定の自由度も低い。

 具体的な連携手順は次のようになる。まず、「App Directory」で連携するツールを探す(写真1)。これはAppsで連携可能なツールの一覧だ。目当てのツールを見つけたら、連携するサービスを「インストール」する。連携サービス紹介ページにある「Visit to install」ボタンからインストールを進める。インストールの方法はツールごとに異なる。続いて、「Configuration」で細かい設定を実施する。

写真1●簡単に設定できる「Apps」による連携
連携するツールによるが、数クリックで設定が完了する。対応するツールは限られる
[画像のクリックで拡大表示]

 サーバーワークスでは、タスク管理ツール「Trello」をこの方法で連携させている。SlackとTrelloを連携させると、あらかじめ設定したアクションをTrelloで行った時にSlackで通知できる。

 例えば、Trello上で新しいタスクを作成すると、その旨がSlack上に投稿される。投稿先のチャンネル、投稿の条件などは設定できる。Trelloの場合、「リストが作成された時」「カード(タスク)が作成された時」「カードにコメントがされた時」などを通知の条件で選択する。

 App Directoryに連携したいツールがない場合や、投稿の条件を細かく設定したい場合はCustom Integrationsで連携する。Custom Integrationsには複数の連携方法があるが、ここでは「Incoming Webhook」を使った、Zabbixとの連携方法を紹介する。Incoming WebhookはツールがSlackにHTTPリクエストを送ることで、Slackに任意のメッセージを投稿する連携方法だ。本特集の「コミュニケーションと通知をSlackにまとめる 」で掲載したZabbixとの連携は、こうした方法で実現した。

 設定の手順は以下の通り。SlackのCustom Integrations設定画面で、「Incoming Webhook」の作成を選択する。すると、専用のURLが発行される。専用のURLは外部ツールからのHTTPリクエストを受け取れる。Slackは受け取ったメッセージを設定されたチャンネルに対して投稿する。投稿する際のユーザー名、アイコンも設定可能だ(写真2)。

写真2●高度な連携を設定できる「Custom Integrations」
多くのツールと連携でき、連携方法も柔軟に設定できる。ただし、設定に手間が掛かる
[画像のクリックで拡大表示]

 Zabbix側では、前述したURLにHTTPリクエストを送るように設定する。筆者の現場ではサーバーに障害があった場合と、障害から復旧した場合にメッセージを通知するようにしている。通知内容にはホスト名のほか、発生時間、対象の監視項目などを含めるように設定している。

 今回はZabbixを例としたが、HTTPリクエスト機能を備えているツールであれば同様に連携可能だ。

次ページ以降はITpro Active会員(無料)の方のみお読みいただけます。