Zammad là giải pháp hỗ trợ khách hàng/vé nguồn mở dựa trên Ruby và PostgreSQL. Giải pháp này giúp các tổ chức quản lý thông tin liên lạc qua nhiều kênh email, trò chuyện và phương tiện truyền thông xã hội.
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Hệ thống vé Zammad trên máy chủ Rocky Linux. Bạn sẽ chạy Zammad với PostgreSQL, Nginx và Elasticsearch.
Trước hết, hãy thêm kho lưu trữ EPEL vào hệ thống Rocky Linux của bạn bằng lệnh sau.
Bây giờ hãy thiết lập ngôn ngữ mặc định thành en_US.UTF-8 bằng lệnh bên dưới.
Bây giờ hãy chạy lệnh bên dưới để bật Node.js kho lưu trữ cho phiên bản 18.
Tiếp theo, chạy lệnh dnf bên dưới để cài đặt các phụ thuộc cho Zammad, bao gồm Nginx, PostgreSQL, Redis và Node.js.
Nhập y để xác nhận và tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22213%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy chạy lệnh bên dưới để khởi tạo máy chủ PostgreSQL.
Khởi động và kích hoạt các dịch vụ cho Nginx, PostgreSQL và Redis bằng lệnh bên dưới.
Cuối cùng, hãy kiểm tra phiên bản Node.js bằng lệnh bên dưới. Đảm bảo bạn đã cài đặt Node.js 18.0+.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22319%22%3E%3C/svg%3E
Bây giờ hãy chạy lệnh bên dưới để thêm khóa GPG cho kho lưu trữ Elasticsearch.
Thêm kho lưu trữ Elasticsearch cho máy chủ Rocky Linux bằng lệnh sau.
Tiếp theo, cài đặt Elasticsearch vào hệ thống của bạn bằng lệnh sau. Nhập y để xác nhận cài đặt và chấp nhận khóa GPG khi được nhắc.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy cài đặt plugin ingest-attachment vào cài đặt Elasticsearch của bạn bằng lệnh bên dưới.
Nhập y để xác nhận cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22320%22%3E%3C/svg%3E
Bây giờ hãy tải lại trình quản lý systemd và khởi động dịch vụ elasticsearch bằng lệnh bên dưới.
Sau khi bắt đầu, hãy kiểm tra Elasticsearch bằng lệnh curl bên dưới. Nếu cài đặt thành công, bạn sẽ nhận được thông tin chi tiết về phiên bản Elasticsearch của mình.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22631%22%20height=%22469%22%3E%3C/svg%3E
Vì vậy, hãy đăng nhập với tư cách là người dùng postgres bằng lệnh bên dưới.
Mở cấu hình PostgreSQL data/postgresql.conf bằng trình soạn thảo nano.
Thay đổi max_connections mặc định thành 2000 như sau:
Lưu tệp và thoát.
Bây giờ hãy chạy lệnh systemctl bên dưới để khởi động lại dịch vụ PostgreSQL và áp dụng các thay đổi của bạn.
Thêm cả dịch vụ HTTP và HTTPS vào firewalld bằng lệnh sau.
Bây giờ hãy tải lại firewalld để áp dụng các quy tắc mới cho HTTP và HTTPS.
Kiểm tra danh sách các quy tắc trên firewalld bằng lệnh bên dưới. Bạn sẽ thấy cả dịch vụ HTTP và HTTPS đều khả dụng trên firewalld.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22278%22%3E%3C/svg%3E
Thêm khóa GPG cho kho lưu trữ Zammad bằng lệnh bên dưới.
Bây giờ hãy thêm kho lưu trữ Zammad vào máy chủ Rocky Linux của bạn bằng lệnh sau.
Tiếp theo, cài đặt zammad bằng lệnh dnf bên dưới. Khi được nhắc, hãy nhập y để xác nhận khóa gpg và cài đặt Zammad.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy chạy lệnh sau để kiểm tra các dịch vụ của Zammad, bao gồm zammad, zammad-web, zammad-worker và zammad-websocket.
Đảm bảo mọi dịch vụ cho Zammad đang chạy.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22215%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh sau để thiết lập tích hợp giữa Zammad và Elasticsearch.
Sau khi lệnh được thực thi, lệnh này sẽ tạo một chỉ mục elasticsearch cho Zammad.
Sao chép cấu hình Nginx cho Zammad vào /etc/nginx/conf.d/zammad.conf và mở nó bằng lệnh nano editor.
Trong tùy chọn server_name, hãy thay đổi nó bằng tên miền của bạn.
Lưu và thoát khỏi tệp.
Bây giờ hãy xác minh cấu hình Nginx của bạn để đảm bảo rằng bạn đã cú pháp thích hợp. Nếu thành công, bạn sẽ nhận được kết quả 'cú pháp ổn'.
Cuối cùng, chạy lệnh bên dưới để khởi động lại dịch vụ Nginx và áp dụng cấu hình khối máy chủ mới cho Zammad.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22162%22%3E%3C/svg%3E
Với điều này, cài đặt Zammad của bạn sẽ sẵn sàng và có thể truy cập được.
Cài đặt Certbot và plugin Nginx bằng lệnh dnf bên dưới. Nhập y để xác nhận cài đặt.
Sau khi cài đặt hoàn tất, hãy chạy lệnh certbot bên dưới để tạo chứng chỉ SSL/TLS và bảo mật cài đặt Zammad của bạn. Hãy đảm bảo thay đổi thông tin địa chỉ email và tên miền bằng thông tin của bạn.
Sau khi hoàn tất, chứng chỉ SSL/TLS của bạn sẽ có tại thư mục /etc/letsencrypt/live/domain.com và Zammad của bạn cũng được bảo mật tự động bằng HTTPS.
Nhấp vào Thiết lập hệ thống mới để bắt đầu cấu hình Zammad.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22429%22%3E%3C/svg%3E
Nhập thông tin chi tiết về người dùng quản trị và mật khẩu của bạn cho Zammad, sau đó nhấp vào Tạo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22689%22%20height=%22628%22%3E%3C/svg%3E
Nhập tên tổ chức của bạn, tải logo lên và nhấp vào Tiếp theo để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22626%22%20height=%22749%22%3E%3C/svg%3E
Để biết cài đặt email, hãy nhấp vào Bỏ qua. Bạn có thể cấu hình sau khi hoàn tất cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22663%22%20height=%22473%22%3E%3C/svg%3E
Bây giờ bạn sẽ thấy bảng điều khiển Zammad như sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22506%22%3E%3C/svg%3E
Trong hướng dẫn này, bạn sẽ tìm hiểu cách cài đặt Hệ thống vé Zammad trên máy chủ Rocky Linux. Bạn sẽ chạy Zammad với PostgreSQL, Nginx và Elasticsearch.
Điều kiện tiên quyết
Trước khi bắt đầu, hãy đảm bảo bạn có những điều sau:- Máy chủ Rocky Linux 9.
- Người dùng không phải root có quyền quản trị viên.
- Tên miền trỏ đến địa chỉ IP của máy chủ.
- SELinux có trạng thái cho phép.
Cài đặt các phụ thuộc
Trong phần này, bạn sẽ cài đặt các phụ thuộc cho Zammad, bao gồm kho lưu trữ EPEL, cơ sở dữ liệu PostgreSQL, máy chủ web Nginx, Redis và Node.js.Trước hết, hãy thêm kho lưu trữ EPEL vào hệ thống Rocky Linux của bạn bằng lệnh sau.
Mã:
sudo dnf install epel-release -y
Mã:
sudo localectl set-locale LC_CTYPE=en_US.UTF-8
Mã:
sudo dnf module enable nodejs:18 -y
Mã:
sudo dnf install imlib2 nginx postgresql-server postgresql-contrib libpq-devel redis nodejs
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22213%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy chạy lệnh bên dưới để khởi tạo máy chủ PostgreSQL.
Mã:
sudo postgresql-setup initdb
Mã:
sudo systemctl start nginx postgresql redis
sudo systemctl enable nginx postgresql redis
Mã:
node --version
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22319%22%3E%3C/svg%3E
Cài đặt Elasticsearch
Sau khi cài đặt Dependencies, bạn sẽ cần cài đặt Elasticsearch. Trong phần này, bạn sẽ cài đặt Elasticsearch 7.x cho Zammad.Bây giờ hãy chạy lệnh bên dưới để thêm khóa GPG cho kho lưu trữ Elasticsearch.
Mã:
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
Mã:
echo "[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md"| tee /etc/yum.repos.d/elasticsearch-7.x.repo
Mã:
sudo dnf install elasticsearch
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy cài đặt plugin ingest-attachment vào cài đặt Elasticsearch của bạn bằng lệnh bên dưới.
Mã:
/usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22320%22%3E%3C/svg%3E
Bây giờ hãy tải lại trình quản lý systemd và khởi động dịch vụ elasticsearch bằng lệnh bên dưới.
Mã:
sudo systemctl daemon-reload
sudo systemctl start elasticsearch
Mã:
curl -X GET 'http://localhost:9200'
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22631%22%20height=%22469%22%3E%3C/svg%3E
Tăng số lượng kết nối tối đa trong PostgreSQL
Đối với PostgreSQl, bạn cần tăng số lượng kết nối mặc định max_connections trong tệp postgresql.conf. Zammad cần điều này.Vì vậy, hãy đăng nhập với tư cách là người dùng postgres bằng lệnh bên dưới.
Mã:
su - postgres
Mã:
nano data/postgresql.conf
Mã:
max_connections = 2000
Bây giờ hãy chạy lệnh systemctl bên dưới để khởi động lại dịch vụ PostgreSQL và áp dụng các thay đổi của bạn.
Mã:
sudo systemctl restart postgresql
Đang thiết lập Firewalld
Theo mặc định, firewalld được bật trên Rocky Linux. Bây giờ bạn cần mở cả dịch vụ HTTP và HTTPS và cho phép lưu lượng truy cập vào Zammad.Thêm cả dịch vụ HTTP và HTTPS vào firewalld bằng lệnh sau.
Mã:
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
Mã:
sudo firewall-cmd --reload
Mã:
sudo firewall-cmd --list-all
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22278%22%3E%3C/svg%3E
Cài đặt Hệ thống hỗ trợ khách hàng Zammad
Bây giờ bạn đã cài đặt và cấu hình các phụ thuộc, bạn có thể khởi động Zammad cài đặt, có thể thực hiện thông qua trình quản lý gói DNF.Thêm khóa GPG cho kho lưu trữ Zammad bằng lệnh bên dưới.
Mã:
sudo rpm --import https://dl.packager.io/srv/zammad/zammad/key
Mã:
sudo wget -O /etc/yum.repos.d/zammad.repo \
https://dl.packager.io/srv/zammad/zammad/develop/installer/el/9.repo
Mã:
sudo dnf install zammad
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22239%22%3E%3C/svg%3E
Sau khi cài đặt hoàn tất, hãy chạy lệnh sau để kiểm tra các dịch vụ của Zammad, bao gồm zammad, zammad-web, zammad-worker và zammad-websocket.
Mã:
sudo systemctl status zammad
sudo systemctl status zammad-web
sudo systemctl status zammad-worker
sudo systemctl status zammad-websocket
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22215%22%3E%3C/svg%3E
Cuối cùng, hãy chạy lệnh sau để thiết lập tích hợp giữa Zammad và Elasticsearch.
Mã:
zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
zammad run rake zammad:searchindex:rebuild
Thiết lập Nginx làm proxy ngược
Bây giờ bạn đã cài đặt Zammad, bạn sẽ định cấu hình Nginx làm proxy ngược và theo mặc định, Zammad cung cấp một cấu hình mẫu có sẵn trong thư mục /opt/zammad/contrib.Sao chép cấu hình Nginx cho Zammad vào /etc/nginx/conf.d/zammad.conf và mở nó bằng lệnh nano editor.
Mã:
cp /opt/zammad/contrib/nginx/zammad.conf /etc/nginx/conf.d/zammad.conf
sudo nano /etc/nginx/conf.d/zammad.conf
Mã:
server_name zammad.howtoforge.local;
Bây giờ hãy xác minh cấu hình Nginx của bạn để đảm bảo rằng bạn đã cú pháp thích hợp. Nếu thành công, bạn sẽ nhận được kết quả 'cú pháp ổn'.
Mã:
sudo nginx -t
Mã:
sudo systemctl restart nginx
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22162%22%3E%3C/svg%3E
Với điều này, cài đặt Zammad của bạn sẽ sẵn sàng và có thể truy cập được.
Bảo mật Zammad bằng HTTPS
Bây giờ Nginx đã được cấu hình, hãy bảo mật Zammad thông qua chứng chỉ SSL/TLS. Bạn sẽ cài đặt Certbot và tạo chứng chỉ SSL bằng certbot từ Letsencrypt.Cài đặt Certbot và plugin Nginx bằng lệnh dnf bên dưới. Nhập y để xác nhận cài đặt.
Mã:
sudo dnf install certbot python3-certbot-nginx
Mã:
sudo certbot --nginx --agree-tos --redirect --hsts --staple-ocsp --email [emailprotected] -d zammad.howtoforge.local
Thiết lập cài đặt Zammad
Khởi chạy trình duyệt web của bạn và truy cập https://zammad.hwomdian.io/. Nếu cài đặt thành công, bạn sẽ được hỏi như sau:Nhấp vào Thiết lập hệ thống mới để bắt đầu cấu hình Zammad.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22429%22%3E%3C/svg%3E
Nhập thông tin chi tiết về người dùng quản trị và mật khẩu của bạn cho Zammad, sau đó nhấp vào Tạo.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22689%22%20height=%22628%22%3E%3C/svg%3E
Nhập tên tổ chức của bạn, tải logo lên và nhấp vào Tiếp theo để tiếp tục.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22626%22%20height=%22749%22%3E%3C/svg%3E
Để biết cài đặt email, hãy nhấp vào Bỏ qua. Bạn có thể cấu hình sau khi hoàn tất cài đặt.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22663%22%20height=%22473%22%3E%3C/svg%3E
Bây giờ bạn sẽ thấy bảng điều khiển Zammad như sau.
data:image/svg+xml,%3Csvg%20xmlns=%22http://www.w3.org/2000/svg%22%20width=%22750%22%20height=%22506%22%3E%3C/svg%3E