24時間365日フルマネージドホスティングサービスのデイーネット

チャットツールのMattermostを導入してみた

こんにちは、色々とアグレッシブに踏み込みすぎて、
ドラえもんの4次元ポケットにお世話になりたいと思っているインテグの馬場です。

さて今回ご紹介するのは、オープンソースのチャットツールについてです。

オープンソースのチャットツールには私が確認した中では
『Riot.im』、『Let's Chat』、『RocketChat』、『Mattermost』がありました。
今回はMattermostについてご紹介します。

Mattermostについて

  • MattermostはSlackに良く似たチャットツールです。
  • 機能的な部分についても、Markdown記法で書くことができ、プッシュ通知にも対応しています。
  • 日本語での検索はもちろん、tag等をつけて検索を行いやすくしたり
    メンションをつけて特定の人へメッセージを送ることも可能です。
  • プログラム自体はGo言語で作成されています。

特にどういった企業にお勧めか

  • 金融企業や金融企業と連携している会社などセキュリティ的にも
    厳しい会社には、社内空間で使えるMattermostがお勧めです。
  • またチャットを外部サーバ経由で使用したくない場合等、
    完全なプライベート環境でチャットを行いたい場合を想定している企業には最適です。

動作条件


詳しい内容につきましてはこちらをご覧ください。(英語ページ)

●サポートされているOS

  • Ubuntu 14.04、Ubuntu 16.04、
  • Debian Jessie、
  • CentOS 6.6+、CentOS 7.1+、
  • RedHat Enterprise Linux 6.6+、RedHat Enterprise Linux 7.1+、
  • Oracle Linux 6.6+、Oracle Linux 7.1+

●サポートされているデータベース

  • MySQL 5.6、5.7、8
  • PostgreSQL 9.4+
  • Amazon Aurora MySQL 5.6+

●推奨動作環境

  • 小規模から中規模のMattermostの導入は、
  • 登録ユーザーに基づいて以下の仕様で1台のサーバーでサポートできます。
  • 250 ~ 500人のユーザ - 2つのvCPU /コア、4 GBのRAM、45~90 GBのストレージ
  • 500 ~ 1,000人のユーザ - 4つのvCPU /コア、8 GBのRAM、および90~180 GBのストレージ
  • 1,000 ~ 2,000ユーザ  - 4~8個のvCPU /コア、16~32 GBのRAM、
    および180~360 GBのストレージ

動作環境の確認と導入前準備

 導入自体は非常に簡単で、難しくありません。それでは実際に導入してみましょう。
 環境は以下のとおりです。  

==============
 CentOS   -- 7.5
 MariaDB  -- 10.3.6
 Mattermost -- 5.0.1
 ==============

■MariaDBの設定
1.Mysqlにログインする。
  mysql -u root -p
2.データベースの作成。
  create database mattermost;
3.ユーザーの作成。
  GRANT ALL ON mattermost.* TO matteruser@'localhost' IDENTIFIED BY '{パスワード}';

※既にMysql等は導入済みである前提で書いています。環境に合わせて変更してください。

Mattermostの導入について

1.ダウンロード
  以下のサイトからダウンロードを実施します。
  https://releases.mattermost.com/5.0.1/mattermost-5.0.1-linux-amd64.tar.gz
  cd /usr/local/src/
  wget https://releases.mattermost.com/5.0.1/mattermost-5.0.1-linux-amd64.tar.gz

2.解凍と設定
  tar zxf mattermost-5.0.1-linux-amd64.tar.gz
  mv mattermost /opt
  mkdir /opt/mattermost/data
  useradd --system -s /sbin/nologin mattermost
  chown -R mattermost: /opt/mattermost
  chmod -R g+w /opt/mattermost

3.設定ファイルの編集
  ファイル場所:/opt/mattermost/config/config.json
  107,108行目辺り
  "DriverName": "mysql",となっていることを確認する。
  "DataSource": "mmuser:mostest@tcp(dockerhost:3306)/mattermost_test?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s",
  以下のように編集を行い、{}の部分は置き換える。
  "DataSource": "{Mysqlユーザー}:{{Mysqlパスワード}}@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

4.動作テスト
  Mattermostを起動
  cd /opt/mattermost/bin
  sudo -u mattermost ./platform
  ファイアウォールの設定を行う。
  firewall-cmd --permanent --add-port=8065/tcp
  firewall-cmd --reload
  firewall-cmd --list-port |grep 8065
  正常にログが出力される事
  8065番ポートが開いている事
  • 以下のURLにアクセスして以下の画像のように、
    Mattermostのユーザー追加画面が表示されることを確認する。
    URL:
    http://IPアドレスorドメイン:8065
    Mattermost.PNG 問題なければCtrl + Cで抜ける。
5.起動ファイルを設置する。
  cd /lib/systemd/system/
  vim mattermost.service
================================
[Unit]
Description=Mattermost
After=syslog.target network.target mariadb.service
[Service]
Type=simple
WorkingDirectory=/opt/mattermost/bin
User=mattermost
ExecStart=/opt/mattermost/bin/platform
PIDFile=/var/spool/mattermost/pid/master.pid
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target
================================

6.権限を変更する
  chmod 644 mattermost.service
  デーモンリロード
  systemctl daemon-reload

7.Mattermostの起動
  systemctl start mattermost
  
  自動起動の有効化
  systemctl enable mattermost
  
  正常に反映されていることを確認する。
  sysremctl is-enabled mattermost

  8065番ポートが正常に開いている事を確認する。
  ss -ant |grep 8065
  • 以下にアクセスしてMattermostのユーザー追加画面が表示されることを確認する。
    http://IPアドレスorドメイン:8065

日本語の全文検索を可能にする。

 Mattermostではデフォルトだと部分検索が正常に行うことができないので、
 MysqlにMroongaを設定し、正常に部分検索を行えるようにする。

1.Mattermostにログイン後、適当な文字列に対し検索を行い、
  部分検索ができないことを確認する。

2.Mysqlにログインする。
  mysql -u root -p

3.エンジンを確認する。
  show engines;
  一覧にMroongaが無ければ登録を行う。

4.MariaDBの10系からはMroongaが標準でバンドルされているので有効化を行う。
  INSTALL PLUGIN Mroonga SONAME 'ha_mroonga.so';
  CREATE FUNCTION last_insert_grn_id RETURNS INTEGER SONAME 'ha_mroonga.so';
  CREATE FUNCTION mroonga_snippet RETURNS STRING SONAME 'ha_mroonga.so';
  CREATE FUNCTION mroonga_command RETURNS STRING SONAME 'ha_mroonga.so';
  CREATE FUNCTION mroonga_escape RETURNS STRING SONAME 'ha_mroonga.so';

5.確認を行う。
  show engines;
  適用されていることを確認する。
  Mattermostにログインして、部分検索が行えることを確認する。

その他

 目的や必要に応じてNginx等のproxy設定を行う。
 テスト用であれば無料で使えるDDNSを利用するといいかも知れません。

導入完了

導入が完了すると以下の画像のように、Slackと殆ど変わらない感じで使うことができます!
是非使ってみてください。

Mattermost2.PNG

詳しい内容はこちらを参照してください。(英語ページです)

それではまた次回でお会いしましょう!

  • このページの先頭へ

  • 東京本社
    〒105-0001東京都港区虎ノ門2-3-22 第一秋山ビル5F
    TEL:03-3591-8887 FAX:03-3591-8886
  • 大阪本社
    〒541-0041 大阪市中央区北浜2-6-11北浜エクセルビル5F
    TEL:06-6231-8887 FAX:06-6231-8897

  • 認証範囲はこちらをご覧ください。

Denet logo

クラウドサービス・データセンタ・高機能専有サーバ・共有サーバホスティングサービス 株式会社ディーネット
dot_bar