1
/
5

Mattermostをお試しで使ってみた!!

はじめに

こんにちは、id:FM_Harmonyです。 Rakus Developers Blogでは5回目の投稿です。
前回の記事はこちら↓

今回も前回と同じくビアバッシュの補足ネタです。(ビアバッシュ...?という方はコチラ
テーマは「Mattermost」についてです。

Mattermostとは?

MattermostとはSlackに似たオープンソースのチャットツールです。
大きな違いはSlackがクラウド型のサービスであるのに対し、Mattermostはオンプレミス型のサービスであることです。 そのため、社内情報を外部に保存したくないという理由で、チャットツールとしてSlackではなくMattermostを選ぶこともあるようです。


↑Mattermostの公式ページにもSlackとの違いが説明されています。

今回はそんなMattermostのサーバを構築して色々お試ししてみた話です。

Mattermost Serverの構築

それではMattermost Serverの構築について説明します。今回はCentOS7.1
Mattermost Server v4.4.0のサーバを構築しました。
また、データベースサーバとMattermost Serverは同一のマシンに構築します。
構築時の手順は参考リンク内のInstalling Mattermost on RHEL 7.1
を参考にしました。

なお、今回の手順はあくまで手元での検証を目的としたものであるため、セキュリティ等の考慮を省いている部分もあります。 そのため、本番構築時には手順をそのまま適用すべきではないことにご注意ください。

事前準備

事前にパッケージは最新のものにします。

データベースの準備

Mattermostではユーザや投稿を保存するデータベースとして、PostgreSQLMySQLを使うことができますが、今回はPostgreSQL v9.4を利用します。 また、PostgreSQLサーバの構築および初期化は完了しているものとします。

まず、利用するデータベースを作成します。(postgresユーザはPostgreSQLの初期化時に作成されているはずです)

次に作成したデータベースをMattermostが使うためのユーザを作成し、mattermost

データベースに関する全ての権限を与えます。 (ユーザのパスワードは適当に決めてください)

最後にpostgreSQLの接続設定を変更します。 postgresql.confを編集してlisten_addressesを全アドレスに、pg_hba.confを編集してlocalhostから接続する際の認証方式をtrustにすれば基本的には問題ないはずです。

Mattermost Serverの構築

では、いよいよMattermost Serverを構築します。

とりあえず、/usr/local/src
直下にインストールしたいバージョン(今回はv4.4.0)のMattermost Serverをダウンロードします。

次に、ダウンロードしたファイルを解凍し/opt

直下に配置します。 その後、配置したディレクトリの直下にdata

ディレクトリを作成します。

そして、Mattermostを管理するためのシステムユーザを作成し、先ほど配置したmattermost

ディレクトリ以下のファイル・ディレクトリをシステムユーザが書き込み可能にします。

最後にMattermostがデータベースと接続する際の設定を行えば主な作業は完了です。 /opt/mattermost/config/config.jsonを以下のように編集します。

  • "DriverName"
    postgres
    とする。
  • "DataSource"
    "postgres://mmuser:(mmuserのパスワード)@localhost:5432/mattermost?sslmode=disable&connect_timeout=10"
    とする。

ここまで完了すればMattermostを起動することができるはずです。 以下のコマンドからテスト起動を行えます。

起動に失敗する場合は手順を見直してみてください。 また、本来はMattermost Serverをサービス化した方がMattermostを起動する際に便利なのですが、今回は割愛させていただきます。

Mattermostを触ってみる

Mattermostの初期設定

初期設定を変更しない場合、先ほどテスト実行したMattermost Serverは8065ポートでアクセスを待ち受けます。 8065ポートへアクセスすると、下記のような管理者の設定画面が表示されるかと思います。


管理者の設定を終えるとチームを選択する画面に移ります。 Mattermostではチャンネルと呼ばれるチャットが集まって、チームを成しています。 初期状態ではチームはありませんので、Create a new team
をクリックしてチームを作成します。

作成すると以下のような画面に移りますが、これがMattermostのチャット画面です。 tutorialは適当に飛ばしてください。


Webhookを使ってみる

MattermostはWebhookを利用することで外部と連携することができます。 まずはMattermostがWebhookを利用できるか設定を確認するために、チャット画面左上のメインメニューからSystem Console
に移動します。

次に、System Console
内のINTEGRATINS > Custom Integrations
を選択します。 すると、Enable Incoming Webhooks
, Enable Outgoing Webhooks
, Enable Custom Slash Commands
というオプションがあるかと思います。
初期設定ではいずれもtrue
のはずなので、今回はそのままにします。


↑System Console画面、今回は赤枠で囲った部分をすべてtrue
にします。

画面左上のメインメニューからSwitch To (チーム名)
を選択して、チャット画面へ戻りましょう。

その後、再びメインメニューから今度はIntegrations
を選択します。 すると、先ほど紹介した3つの外部連携機能の項目が選べるはずです。


今回は例としてIncoming Webhook
を利用してみましょう。 3つの項目の中からIncoming Webhook
を選択します。 その後、表示された画面の右上にあるAdd Incoming Webhook
を選択します。
すると、Webhook
の設定画面に移りますので、それぞれ適当な値を設定してSave
を選択します。
設定が完了するとURLが表示されます。 Incoming Webhook
ではこのURLに対してリクエストを送ることで、Mattermostにメッセージを表示することができます。


↑ Incoming Webhookの設定画面です。

試しに以下のコマンドをターミナルから実行してみます。

すると、以下の画像のように「this is sample bot」というメッセージが表示されるはずです。 また、設定を変更していない場合、投稿者名にBOT
という表示が出ているはずです。


このようにIncomming Webhook
を利用することで、外部のサービスからMattermostへメッセージの送信を行うことができます。

おわりに

いかがでしたでしょうか。
駆け足になってしまいましたが、Mattermost Serverの構築手順とWebhookについて少しでもご理解いただければ幸いです。
Mattermostサーバ構築の難易度はそれほど高くないと思いますので、これからチャットツールを導入したいという方は、この機会にぜひMattermostを体験してみてはいかがでしょうか。

株式会社ラクスでは一緒に働く仲間を募集しています
2 いいね!
2 いいね!
今週のランキング
株式会社ラクスからお誘い
この話題に共感したら、メンバーと話してみませんか?