2019/11/19
matterbridgeを使ったSlackとMattermostの共存西川 浩平Kohei Nishikawa

タイムリーな情報共有と言えば、今日では「Slack」が圧倒的な知名度を誇っています。以前は、「Chatter」など業務特化のサービスが知られていたのですが、圧倒的なブランド力で「Slack」が席巻しています。
Slackは、SaaS型のクラウドサービスです。しかし、官公庁や教育機関、金融、重工業、病院など、機密性の高いデータとコミュニケーションには、専用サーバーで運用する「Mattermost」や「Rocket.Chat」などが注目を集めています。たとえば、全社的にはSlackを使うものの、とあるプロジェクトチームでは、お客様やパートナーとのタイムリーな情報共有にはセキュリティ重視が優先事項であるため、「Mattermost」を使うといった事態になり、会社からのお知らせなどを知るために常にSlackとMattermostの両方を使用することは非生産的です。
シンプルに考えれば、SlackとMattermostを橋渡しするツールがあれば解決しますよね?
そこで、「matterbridge」というツールがあります。「matterbridge」は、SlackとMattermostのみならず、様々なビジネスコラボレーションハブやチャットツールをサポートしており、異なるシステム間のメッセージをつなぐ橋になります。
ただ、SlackとMattermostについて「matterbridge」を使うための日本語情報がなく、試行錯誤の結果、Slackに投稿すると、Mattermostに転送される動作を確認できました。
下記に手順を記します。
今回は、次のようなものを用意しました。
次の手順で、Mattermostを導入したサーバーに、matterbridgeをインストールします。Mattermostを導入したサーバーでは、CentOS 7 を使用しています。
matterbridgeのインストールには、snap コマンドを使用します。コマンドを実行し、snapを使えるようにします。
$ sudo yum install epel-release $ sudo yum install snapd $ sudo systemctl enable --now snapd.socket $ sudo ln -s /var/lib/snapd/snap /snap
matterbridgeは、Go言語で開発されていますので、Go言語を使えるようにします。
$ sudo yum install -y golang $ sudo mkdir usr/local/go $ sudo vi /etc/profile.d/golang.sh 下記を記述し、保存 GOPATH=/usr/local/go PATH=$GOPATH/bin:$PATH:$HOME/bin export PATH export GOPATH $ cd /usr/local/go/ $ source /etc/profile.d/golang.sh $ sudo mkdir bin pkg src
コマンドを実行し、matterbridgeをインストールします。
$ sudo snap install matterbridge $ sudo reboot
matterbridgeを動かすための設定ファイルは、ファイル拡張子が「toml」となるファイルを用意する必要があります。例として、matterbridge.toml とします。
$ sudo vi matterbridge.toml
以下にサンプルを示します。
<!matterbridge.toml>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[mattermost]
[mattermost.mymattermost]
Server="abc.example.com/chat"
Team="tutorial"
#mattermost bot useraccount
Login="admin"
Password="admin"
NoTLS=true
SkipTLSVerify=true
RemoteNickFormat="[{PROTOCOL}] <{NICK}> "
PrefixMessagesWithNick=true
[slack]
[slack.myslack]
Token="xoxbで始まるBot User OAuth Access Token"
RemoteNickFormat="{BRIDGE} - @{NICK}"
[[gateway]]
name="gateway1"
enable=true
[[gateway.inout]]
account="mattermost.mymattermost"
channel="Slackに投稿されたメッセージの転送先となるMattermost側のチャンネル"
[[gateway.inout]]
account="slack.myslack"
channel="with-bot"
ざっと、ポイントを解説します。
設定ファイルを作成し終えましたら、次のコマンドを実行します。
$ matterbridge -conf matterbridge.toml
期待される実行結果の例
[2019-10-25T14:27:09+09:00] INFO main: Running version 1.16.0 [2019-10-25T14:27:09+09:00] INFO router: Parsing gateway gateway1 [2019-10-25T14:27:09+09:00] INFO router: Starting bridge: mattermost.mymattermost [2019-10-25T14:27:09+09:00] INFO mattermost: Connecting using login/password (sending and receiving) [2019-10-25T14:27:09+09:00] INFO mattermost: Connecting admin (team: tutorial) on abc.example.com/chat [0000] INFO matterclient: Found version 5.16.0.5.16.0.510bef66cf8ca0dd3453338df5e7841c.false [0000] INFO matterclient: found 1 users in team tutorial [2019-10-25T14:27:10+09:00] INFO mattermost: Connection succeeded [2019-10-25T14:27:10+09:00] INFO mattermost: mattermost.mymattermost: joining town-square (ID: town-squaremattermost.mymattermost) [2019-10-25T14:27:10+09:00] INFO router: Starting bridge: slack.myslack [2019-10-25T14:27:10+09:00] INFO slack: Connecting using token [2019-10-25T14:27:10+09:00] INFO slack: slack.myslack: joining with-bot (ID: with-botslack.myslack) [2019-10-25T14:27:10+09:00] INFO main: Gateway(s) started succesfully. Now relaying messages
Slack側で、.tomlファイルの29行目で指定したSlackチャンネルにアクセスし、@Slack App(例 matterbridge) 半角スペース メッセージ の順で入力し、送信しますと、Mattermostに転送されます。
「matterbridge」のようにひと工夫することで、SlackとMattermostなど、様々なビジネスコラボレーションハブやチャットツールを導入した際に課題となるセキュリティ上の「不安」を解決することができます。「運用で」という言葉は便利な言葉ですが、エンドユーザーに負担を与え、せっかく導入したシステムが使われなくなる原因の1つになりますので、システム面で対応できるのであれば、対応していきましょう。
オンプレミスでも使えるビジネスコミュニケーションツール『Mattermost』はこちらをご覧ください。
またリックソフトはSlack社との国内初となるパートナー契約を締結し、Slack導入支援サービスの提供を開始しました。ぜひご検討ください。
30日間の評価ライセンスも発行できますので、是非ご活用ください。
ご不明な点がございましたら、お気軽にお問い合わせください
アトラシアン社ではサポート範囲外となっているサードパーティ製のアドオンをリックソフトのRS標準サポートではサポートします。
リックソフトのRS標準サポートは開発元が提供するサポート以上の価値があります。
ツールを導入しただけでは成功とはいえません。利用者が効果を感じていただくことが大切です。独自で制作した各種ガイドブックはツール活用を促進します。
リックソフトからライセンス購入を頂いたお客様にはガイドブックを無料進呈いたします。
ツール操作の研修だけでなく「ウォータフォール型開発」「アジャイル型開発」のシミュレーション研修も提供。
日本随一の生産性向上にも効果のある研修サービスです。
リックソフトからライセンス購入を頂いたお客様には無料招待や割引特典がございます。