싸권's IT Story

오픈소스 메신저 Mattermost 설치 및 사용기(1/2)

싸권 2020. 12. 12. 13:40

현재 회사에 Jitsi Meet를 설치해서 약간의 커스터마이징 후 사용하고 있습니다.

처음 설치는 한 부서에서 지역랩(대구, 광주, 부산)과의 화상회의를 Skype로 진행하다 너무 문제가 많아서 별도의 화상회의 솔루션을 구입한다고 하길래 비용을 줄여볼까 해서 진행한거라 그리 많이 사용을 하진 않을거라 생각했습니다.

하지만 코로나의 급격한 증가로 타부서에서도 화상회의를 진행하다보니 전사적으로 지속적으로 사용하고 있는 상황입니다. 최근은 대표이사에게 사업계획 보고도 화상회의를 진행하고 있네요.

추가로 내부에 메신저 서비스를 별도 구축하는 것도 어떠냐는 의견이 있어서 오픈소스를 이용해서 구축을 해봤습니다.

몇달전 Rocket Chat으로 처음 구축을 했는데, 생각보다 사용이 너무 어려워서 저희 부서에서도 사용을 못했습니다.

그러다 Rocket Chat보다 Mattermost가 좀 더 안정적이고, 기본적으로 한글을 지원한다고 해서 다시 Mattermost로 구축을 해봤습니다.

나름 깔끔한 인터페이스와 Desktop, Android, iOS, Linux Client 제공, 특히 Push 서비스를 Mattermost 서버를 통해서 지원해주는 부분이 있어서 Rocket Chat보다는 이용하기가 훨씬 더 용이했습니다.

아직은 회사내 테스트서버에 구축만 해놓은 상태이고, 차주부터는 부서 인력들과 활용하면서 전사적으로 사용이 가능할지는 테스트해볼 생각입니다.

 

또 언젠가 필요할지 몰라 제가 설치했던 순서를 한번 정리해보겠습니다.

 

서버 및 Client Download : https://mattermost.com/download/

 

Download Mattermost

Download the latest version of the Mattermost Server for Team Edition and Enterprise Edition, as well as our most current desktop and mobile apps.

mattermost.com

설치 가이드 : https://docs.mattermost.com/guides/administrator.html#installing-mattermost

 

Self-Managed Administrator’s Guide — Mattermost 5.29 documentation

© Copyright 2015-2020 Mattermost

docs.mattermost.com

설치 시 위 설치 가이드를 참고했으며, 제가 설치했던 내용은 다음과 같습니다.

 

1. 서버 : Ubuntu 20.02 Server

2. DBMS : MySQL Server (PostgreSQL 서버도 지원합니다, 보편적인 MySQL로 진행했습니다)

 

"설치 내용"

1. Ubunt 20.04 Server 설치

   여러 플랫폼을 지원하는데, Jitsi Meet 설치를 Ubuntu에 해서 Ubuntu Server를 이용했습니다.

   향후엔 Docker에 올려보고 싶은데, 아직 제가 Docker에 대한 지식이 부족해서 공부중입니다.

   Ubuntu Server 설치는 별다른 내용이 없어서 생략합니다.

 

2. MySQL 설치

 

1) MySQL Server 설치

sudo apt install mysql-server

 

2) MySQL 보안 설정

sudo mysql_secure_installation

MySQL 패스워드 재설정, 보안 설정을 하는 부분이며, 필요에 따라 해당 부분 설정을 해주시면 됩니다.

    

3)  MySQL 접속

sudo mysql

유저 및 Database 생성을 위해 mysql을 root 권한으로 접속을 합니다.

 

4) Mattermost User 생성

mysql> create user 'mmuser'@'%' identified by '패스워드';

Mattermost user인 mmuser를 생성하고 패스워드를 설정합니다.

위에 보안 설정 시 패스워드 복잡도를 어떻게 설정했느냐에 따라 입력을 해주시면 됩니다.

 

5) Mattermost database 생성

mysql> create database mattermost;

 

6) mmuser의 database 권한 설정

mysql> grant all privileges on mattermost.* to 'mmuser'@'%';

필요에 따라 권한을 세부적으로 나눠서 부여할 수도 있지만, 굳이 그럴 필요는 없을거 같습니다.

 

7) MySQL 접속 종료

mysql> exit

 

3. Mattemost Server 설치

 

1) 최신 Mattermost 파일 다운로드

wget https://releases.mattermost.com/5.29.1/mattermost-5.29.1-linux-amd64.tar.gz

위쪽에 표시한 다운로드 사이트에 최신 버전이 표시되어 있습니다.

 

2) 파일 압축해제 및 디렉토리 설정

tar -xvzf mattermost*.gz
sudo mv mattermost /opt
sudo mkdir /opt/mattermost/data
sudo useradd --system --user-group mattermost
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost

압축 해제 후 순서대로 디렉토리 이동, 권한 설정 등을 해주면 됩니다.

 

3) Config 설정

/opt/mattermost/config/config.json 파일내 DBMS 부분을 수정해줍니다.

 "SqlSettings": {
    "DriverName": "mysql",
    "DataSource": "mmuser:패스워드@tcp(localhost:3306)/mattermost?charset=utf8mb4,utf8\u0026readTimeout=30s\u0026writeTimeout=30s",

MySQL 설치시 입력했던 패스워드를 수정하고, database가 mattermost_test로 되어 있는 부분을 mattermost로 수정합니다. 만약 DBMS 서버가 외부에 있다면 localhost 부분을 해당 서버의 ip로 수정하면 되는데, 같은 서버에 설치했으니 수정할 필요는 없습니다.

파일 제일 윗부분에 "SiteURL"이 있는데, 회사같은 경우 Domain 할당을 받았다면 해당 Domain을 넣어주면 됩니다.

자체 Test용에도 Domain을 넣고 싶다면 hosts파일을 수정하면 가능하겠죠.

 

4) 설정 테스트

cd /opt/mattermost
sudo -u mattermost ./bin/mattermost

위와 같이 실행했을때

"Server is listening on [::]:8065","address":"[::]:8065"

위와 같은 메시지가 나온다면 정상적으로 설치가 완료된 것입니다.

 

5) 서비스 설정

sudo touch /lib/systemd/system/mattermost.service

서비스 설정을 위해 파일을 생성하고 아래 내용을 넣어줍니다

[Unit]

Description=Mattermost

After=network.target

After=mysql.service

BindsTo=mysql.service

 

[Service]

Type=notify

ExecStart=/opt/mattermost/bin/mattermost

TimeoutStartSec=3600

Restart=always

RestartSec=10

WorkingDirectory=/opt/mattermost

User=mattermost

Group=mattermost

LimitNOFILE=49152

 

[Install]

WantedBy=mysql.service

DBMS 서버가 Mattermost 서버내 설치하지 않고 별도로 있다면 추가적으로 몇가지 설정을 해줘야하는데, 그건 설치가이드를 참고하시기 바랍니다.

 

6) 서비스 등록 및 테스트

sudo systemctl daemon-reload
sudo systemctl status mattermost.service 
sudo systemctl start mattermost.service
curl http://localhost:8065
sudo systemctl enable mattermost.service

서비스 등록 및 부팅시 자동시작까지 설정했습니다.

 

여기까지 진행하면 브라우저에 http://서버IP:8065 를 입력하면 아래와 같은 내용이 나타납니다.

 

Mattermost 설치는 가이드대로 순서대로 진행하면 쉽게 완료됩니다.

굉장히 친절하게 설명이 잘되어 있는 편인데, 환경설정이나 사용 매뉴얼도 굉장히 자세하게 설명이 되어있습니다.

소규모 회사나 개인이 구축해서 사용하기엔 정말 좋은 솔루션이라고 생각되네요.

 

일단 서버는 설치가 된 상태이고, 이후 TLS 설정과 사용자 설정등을 진행해야합니다.

그 부분은 다음 포스팅에서 다루도록 하겠습니다.