日本でのアトラシアン(Atlassian)製品導入No.1

  1. HOME

リックソフトブログ

2019/11/19

matterbridgeを使ったSlackとMattermostの共存

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

Author

西川 浩平Kohei Nishikawa

西川浩平

タイムリーな情報共有と言えば、今日では「Slack」が圧倒的な知名度を誇っています。以前は、「Chatter」など業務特化のサービスが知られていたのですが、圧倒的なブランド力で「Slack」が席巻しています。

Slackは、SaaS型のクラウドサービスです。しかし、官公庁や教育機関、金融、重工業、病院など、機密性の高いデータとコミュニケーションには、専用サーバーで運用する「Mattermost」や「Rocket.Chat」などが注目を集めています。たとえば、全社的にはSlackを使うものの、とあるプロジェクトチームでは、お客様やパートナーとのタイムリーな情報共有にはセキュリティ重視が優先事項であるため、「Mattermost」を使うといった事態になり、会社からのお知らせなどを知るために常にSlackとMattermostの両方を使用することは非生産的です。

シンプルに考えれば、SlackとMattermostを橋渡しするツールがあれば解決しますよね?

そこで、「matterbridge」というツールがあります。「matterbridge」は、SlackとMattermostのみならず、様々なビジネスコラボレーションハブやチャットツールをサポートしており、異なるシステム間のメッセージをつなぐ橋になります。

matterbridge

ただ、SlackとMattermostについて「matterbridge」を使うための日本語情報がなく、試行錯誤の結果、Slackに投稿すると、Mattermostに転送される動作を確認できました。

matterbridge

下記に手順を記します。

準備

今回は、次のようなものを用意しました。

  • Slack : matterbridgeではフリープランから対応しています。
  • Mattermostを導入したサーバー : クラウドサービス上にサーバーを用意し、Mattermost Enterprise Editionを導入しています。Nginxによるリバースプロキシも設定しています。Mattermost Enterprise Edition は、無料から使用できます。有料のE10またはE20ライセンスを適用することで、無料版で制限されている機能やエンタープライズ向けのサポートサービスが使用可能になります。
  • ボット用ユーザー : Mattermost上で、matterbridgeで使用するユーザーを登録しておきます。既存のユーザーを使用しても構いません。
  • matterbridgeの設定

    次の手順で、Mattermostを導入したサーバーに、matterbridgeをインストールします。Mattermostを導入したサーバーでは、CentOS 7 を使用しています。

    Snapを使用可能にする

    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
    

    Go言語を入れる

    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のインストール

    コマンドを実行し、matterbridgeをインストールします。

    $ sudo snap install matterbridge
    $ sudo reboot
    

    .toml ファイルの作成

    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"
    

    ざっと、ポイントを解説します。

  • 2行目 : 3行目から始まるMattermost用設定の名称です。
  • 3行目 : serverは、MattermostのサイトURLから、httpまたは、httpsを除外したものになります。
  • 4行目 : teamは、Slackに投稿されたメッセージの転送先となるMattermost側のチャンネルが存在するチームを指します。
  • 7行目 : Slackから転送されたメッセージをMattermostに投稿するためのボットユーザーのユーザー名です。既存ユーザーを指定しても構いません。
  • 8行目 : Slackから転送されたメッセージをMattermostに投稿するためのボットユーザーのパスワードです。既存ユーザーのものでも構いません。
  • 10行目と11行目 : 今回は、MattermostのサイトURLが、http接続のため、http 接続対応の設定にしています。
  • 16行目 : 17行目から始まるSlack用設定の名称です。
  • 17行目 : matterbrdigeのSlack bot setupを参考に、Slack App(例 matterbridge)を作成し、xoxbで始まるBot User OAuth Access Token を生成し、挿入します。
  • 24行目 : 2行目で記述したMattermost用設定名を、account= の後に記述します。
  • 25行目 : Slackに投稿されたメッセージの転送先となるMattermost側のチャンネルを記述します。たとえば、town-square など既存のチャンネルを使うと良いでしょう。
  • 28行目 : 16行目で記述したSlack用設定名を、account= の後に記述します。
  • 29行目 : Mattermostに転送するメッセージの投稿先のSlackチャンネル名です。ここで入力したSlackチャンネルに、Slack bot setup で作成した、Slack App(例 matterbridge)を招待しておくことを忘れないでください。
  • matterbridgeの動作確認

    設定ファイルを作成し終えましたら、次のコマンドを実行します。

    $ 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』はこちらをご覧ください。

    Mattermost

    またリックソフトはSlack社との国内初となるパートナー契約を締結し、Slack導入支援サービスの提供を開始しました。ぜひご検討ください。

    Slack

    30日間の評価ライセンスも発行できますので、是非ご活用ください。

    評価ライセンスのご依頼

    ご不明な点がございましたら、お気軽にお問い合わせください

    お問い合わせ

    Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedIn

    アトラシアン製品の導入と活用を
    成功させたいなら
    リックソフトのサポートが
    必要です。

    サードパーティ製のアドオンもサポート

    サードパーティ製のアドオンもサポート

    RS標準サポート

    アトラシアン社ではサポート範囲外となっているサードパーティ製のアドオンをリックソフトのRS標準サポートではサポートします。

    • アトラシアン製品とサードパーティ製のアドオンとの事象の切り分け
    • 海外のアドオンベンダーとのやり取りを代行(日→英/英→日)

    リックソフトのRS標準サポートは開発元が提供するサポート以上の価値があります。

    サポートについて

    ツールの活用を促進するアイテム

    ツールの活用を促進するアイテム

    各種ガイドブック

    ツールを導入しただけでは成功とはいえません。利用者が効果を感じていただくことが大切です。独自で制作した各種ガイドブックはツール活用を促進します。

    リックソフトからライセンス購入を頂いたお客様にはガイドブックを無料進呈いたします。

    ガイドブックについて

    価値あるツールの使い方

    価値あるツールの使い方

    研修・トレーニング

    ツール操作の研修だけでなく「ウォータフォール型開発」「アジャイル型開発」のシミュレーション研修も提供。

    日本随一の生産性向上にも効果のある研修サービスです。

    リックソフトからライセンス購入を頂いたお客様には無料招待や割引特典がございます。

    研修について

    PAGE TOP