25/02/2022

MatterMost – Cài đặt trên CentOS 7

MatterMost là một ứng dụng chat nội bộ cho phép triển khai phòng chat cho toàn bộ nhân viên trong công ty của bạn. MatterMost sẽ được chia thành các channel – các kênh nhỏ cho các cuộc thảo luận nhóm,… hoặc bất cứ điều gì mà bạn muốn. Ưu điểm lớn nhất của MatterMost là khả năng tích hợp với các ứng dụng lưu trữ khác nhau như : Github, Gitlab hay Jira, Jenkin. Ngoài ra, MatterMost còn là một công cụ ưa thích của dân IT khi cho phép người dùng tích hợp để bắn cảnh báo, report vào các channel trên MatterMost.

Sự đa nền tảng của MatterMost (MatterMost App trên Desktop, Androin, IOS và MatterMost Web) cũng là một điểm cộng thu hút người dùng

Để triển khai MatterMost có 2 phương án:

1. Sử dụng template trên Cloud 365 của Nhân Hòa

2. Triển khai cài manual từng ứng dụng

Trong bài này chúng tôi sẽ hướng dần triển khai theo phương án 2. Bổ sung cấu hình Tài liệu hướng dẫn cài đặt MatterMost trên CentOS7:

Chuẩn bị

Chuẩn bị một server có cấu hình tối thiểu như sau:

  • 1 CPU
  • 1 GB RAM
  • 10 GB Disk
  • CentOS 7
  • Tài khoản root

Update OS

yum -y install epel-release && yum update -y

Disable Firewalld & SElinux & ipv6

systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
sed -i 's/SELINUX=permissive/SELINUX=disabled/g' /etc/sysconfig/selinux
echo "net.ipv6.conf.all.disable_ipv6 = 1" >> /etc/sysctl.conf
echo "net.ipv6.conf.default.disable_ipv6 = 1" >> /etc/sysctl.conf
sysctl -p
init 6

Cài đặt MySQL Database

wget http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
sudo yum localinstall mysql57-community-release-el7-9.noarch.rpm
sudo yum install mysql-community-server -y

Start MySQL

sudo systemctl start mysqld.service

Lấy password tạm thời sau khi cài đặt

sudo grep 'temporary password' /var/log/mysqld.log

Cấu hình cho phép cấu hình mật khẩu đơn giản(Có thể bỏ qua)

echo "validate_password_policy=LOW" >> /etc/my.cnf
systemctl restart mysqld

Genera password mới

openssl rand -hex 16

Đăng nhập vào mysql

mysql -u root -p

Đổi mật khẩu root được gen ở bước trên

ALTER USER 'root'@'localhost' IDENTIFIED BY 'c4082afca3c1b6d358d';
FLUSH PRIVILEGES;

Create Database cho mattermost

create user 'mmuser'@'localhost' identified by 'c4082afca3c1b6d358d';
create database mattermost;
grant all privileges on mattermost.* to 'mmuser'@'localhost';
FLUSH PRIVILEGES;
exit

Cấu hình cho phép mysql khởi động cùng OS

sudo systemctl enable mysqld

Cài đặt Mattermost

Download source code của Mattermost về

cd
wget https://releases.mattermost.com/5.21.0/mattermost-5.21.0-linux-amd64.tar.gz -O mattermost.tar.gz

Giải nén

tar -zxvf mattermost.tar.gz

Chuyển source code vào /opt

sudo mv mattermost /opt

Tạo folder để lưu các file dữ liệu

sudo mkdir -p /opt/mattermost/data

Khởi tạo các user và group phân quyền cho phép hoạt động

sudo useradd --system --user-group mattermost
sudo chown -R mattermost:mattermost /opt/mattermost
sudo chmod -R g+w /opt/mattermost

Cấu hình Database /opt/mattermost/config/config.json

Cấu hình “SiteURL

Hoặc `http:10.10.30.192`
"SiteURL" "http:10.10.30.192"

Cấu hình “DriverName” thành “mysql
Cấu hình “DataSource” <mmuser-password> <host-name-or-IP> các thông tin user đã khởi tạo phía trên

"DataSource" "mmuser:<mmuser-password>@tcp(<host-name-or-IP>:3306)/mattermost?charset=utf8mb4,utf8&readTimeout=30s&writeTimeout=30s"

Kiểm tra hoạt động của các cấu hình

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

Như phía trên là đã kết nối đến Database và cấu hình thành công bấm CTRL + C để thoát chế độ trên

Cấu hình để Mattermost chạy ở chế độ Deamon

touch /etc/systemd/system/mattermost.service
cat <<EOF >> /etc/systemd/system/mattermost.service
[Unit]
Description=Mattermost
After=syslog.target network.target postgresql-9.4.service
[Service]
Type=notify
WorkingDirectory=/opt/mattermost
User=mattermost
ExecStart=/opt/mattermost/bin/mattermost
PIDFile=/var/spool/mattermost/pid/master.pid
TimeoutStartSec=3600
LimitNOFILE=49152
[Install]
WantedBy=multi-user.target
EOF

Phân quyền

sudo chmod 664 /etc/systemd/system/mattermost.service

Reload service

sudo systemctl daemon-reload

Cho phép Mattermost khởi động cùng OS

sudo systemctl enable mattermost

Start Mattermost

sudo systemctl start mattermost

Kiểm tra

http://10.10.30.192:8065

Tài khoản ban đầu sẽ là tài khoản Admin có quyền vào setup hệ thống

Cài đặt Nginx

Để Mattermost chạy ở port 80 thay vi port 8065 chúng ta sẽ sử dụng Nginx làm Proxy

yum install nginx -y

Bổ sung cấu hình

vi /etc/nginx/conf.d/mattermost.conf

Nội dung

upstream backend {
   server 10.10.30.192:8065;
   keepalive 32;
}
proxy_cache_path /var/cache/nginx levels=1:2 keys_zone=mattermost_cache:10m max_size=3g inactive=120m use_temp_path=off;
server {
   listen 80;
   server_name 10.10.30.192;
   location ~ /api/v[0-9]+/(users/)?websocket$ {
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection "upgrade";
       client_max_body_size 50M;
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       client_body_timeout 60;
       send_timeout 300;
       lingering_timeout 5;
       proxy_connect_timeout 90;
       proxy_send_timeout 300;
       proxy_read_timeout 90s;
       proxy_pass http://backend;
   }
   location / {
       client_max_body_size 50M;
       proxy_set_header Connection "";
       proxy_set_header Host $http_host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
       proxy_set_header X-Frame-Options SAMEORIGIN;
       proxy_buffers 256 16k;
       proxy_buffer_size 16k;
       proxy_read_timeout 600s;
       proxy_cache mattermost_cache;
       proxy_cache_revalidate on;
       proxy_cache_min_uses 2;
       proxy_cache_use_stale timeout;
       proxy_cache_lock on;
       proxy_http_version 1.1;
       proxy_pass http://backend;
   }
}

Kiểm tra config và reload ngin

nginx -t
nginx -s reload

Truy cập vào Mattermost với IP và mặc định port 80


Khi cần hỗ trợ xin liên hệ với chúng tôi:

Công ty phần mềm Nhân Hòa