在 Rocky 8 上安装 Zammad 票务系统 | CentOS 8
每个拥有客户支持的企业都需要一个票务和客户支持系统来保证业务顺利运营。为此可以选择商业和开源软件解决方案。 Zammad 是最好的开源票务和客户支持系统之一,它允许您通过各种渠道(例如社交媒体、电子邮件、电话和集中式 Web 仪表板聊天)管理客户通信。
Zammad 软件解决方案的一些主要功能包括:
- 客票管理
- 操作方法、常见问题解答、内部 SOP 的知识库
- IT资产管理
- 工作流程自动化
- 监控、报告和分析
- 支持多种通讯渠道
- 与许多协作工具集成
- 收集客户反馈
- 服务水平协议 (SLA) 管理
- 呼叫中心管理
- 电子邮件模板
- 实时通知
- 自助服务门户
- 阿蒙还有很多其他人
在这个简短的教程中,您将学习如何在 Rocky 8 或 CentOS 8 Linux 系统上安装、配置和使用 Zammad 票务系统。
添加 EPEL 存储库
所需的一些依赖包包含在 EPEL 存储库中。您可以通过在系统上运行以下命令来配置系统上的存储库。
sudo dnf install wget epel-release
还将区域设置设置为您的语言。
sudo localectl set-locale LANG=en_US.utf8
安装Elasticsearch
将 elasticsearch GPG 密钥导入到您的系统存储中。
sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
将 Elasticsearch 存储库添加到系统中。
sudo tee /etc/yum.repos.d/elasticsearch-7.x.repo<<EOF
[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
EOF
通过在终端中执行以下命令来安装 elasticsearch
包。
sudo dnf -y install elasticsearch
打开配置文件进行编辑
sudo vim /etc/elasticsearch/elasticsearch.yml
自定义 http.max_content_length
和 indices.query.bool.max_clause_count
值。
# Tickets above this size (articles + attachments + metadata)
# may fail to be properly indexed (Default: 100mb).
#
# When Zammad sends tickets to Elasticsearch for indexing,
# it bundles together all the data on each individual ticket
# and issues a single HTTP request for it.
# Payloads exceeding this threshold will be truncated.
#
# Performance may suffer if it is set too high.
http.max_content_length: 400mb
# Allows the engine to generate larger (more complex) search queries.
# Elasticsearch will raise an error or deprecation notice if this value is too low,
# but setting it too high can overload system resources (Default: 1024).
#
# Available in version 6.6+ only.
indices.query.bool.max_clause_count: 2000
启动并启用该服务在系统引导时启动。
sudo systemctl enable --now elasticsearch
为elasticsearch安装ingest-attachment
插件。
$ sudo /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
-> Installing ingest-attachment
-> Downloading ingest-attachment from elastic
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission accessClassInPackage.sun.java2d.cmm.kcms
* java.lang.RuntimePermission accessDeclaredMembers
* java.lang.RuntimePermission getClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
* java.security.SecurityPermission createAccessControlContext
See https://docs.oracle.com/javase/8/docs/technotes/guides/security/permissions.html
for descriptions of what these permissions allow and the associated risks.
Continue with installation? [y/N]y
-> Installed ingest-attachment
-> Please restart Elasticsearch to activate any plugins installed
更改后重新启动服务。
sudo systemctl restart elasticsearch
在 Rocky/CentOS 8 上安装 Zammad
导入 Zammad 存储库密钥
sudo rpm --import https://dl.packager.io/srv/zammad/zammad/key
然后添加 Zammad RPM 存储库,其中包含所需的软件包
wget https://dl.packager.io/srv/zammad/zammad/stable/installer/el/8.repo -O zammad.repo
sudo mv zammad.repo /etc/yum.repos.d/
使用 yum 或 dnf 包管理器安装 Zammad。
sudo dnf -y install zammad
启动并启用服务。
sudo systemctl enable --now zammad zammad-web zammad-worker zammad-websocket
设置数据的目录权限
sudo chmod -R 755 /opt/zammad/public/
如果 SELinux 处于强制模式,请配置标签。
sudo chcon -Rv --type=httpd_sys_content_t /opt/zammad/public/
sudo setsebool httpd_can_network_connect on -P
sudo semanage fcontext -a -t httpd_sys_content_t /opt/zammad/public/
sudo restorecon -Rv /opt/zammad/public/
sudo chmod -R a+r /opt/zammad/public/
打开防火墙上的端口 80 或端口 443(如果处于活动状态)。
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
一般来说,Zammad 使用三种服务 – 这些服务可以通过父 zammad 来(重新)启动和停止。
$ Zammad service to start all services at once
$ systemctl (status|start|stop|restart) zammad
$ # Zammads internal puma server (relevant for displaying the web app)
$ systemctl (status|start|stop|restart) zammad-web
$ # Zammads background worker - relevant for all delayed- and background jobs
$ systemctl (status|start|stop|restart) zammad-worker
$ # Zammads websocket server for session related information
$ systemctl (status|start|stop|restart) zammad-websocket
检查服务是否正在运行。
$ systemctl status zammad zammad-web zammad-worker zammad-websocket
● zammad.service
Loaded: loaded (/etc/systemd/system/zammad.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2024-03-14 22:36:35 EAT; 1min 14s ago
Main PID: 6807 (sleep)
Tasks: 1 (limit: 49026)
Memory: 172.0K
CGroup: /system.slice/zammad.service
└─6807 /bin/sleep infinity
Mar 14 22:36:35 webhosting.cloudspinx.com systemd[1]: Started zammad.service.
● zammad-web.service
Loaded: loaded (/etc/systemd/system/zammad-web.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2024-03-14 22:36:35 EAT; 1min 14s ago
Main PID: 6810 (sleep)
Tasks: 1 (limit: 49026)
Memory: 172.0K
CGroup: /system.slice/zammad-web.service
└─6810 /bin/sleep infinity
Mar 14 22:36:35 webhosting.cloudspinx.com systemd[1]: Started zammad-web.service.
● zammad-worker.service
Loaded: loaded (/etc/systemd/system/zammad-worker.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2024-03-14 22:36:35 EAT; 1min 14s ago
Main PID: 6808 (sleep)
Tasks: 1 (limit: 49026)
Memory: 172.0K
CGroup: /system.slice/zammad-worker.service
└─6808 /bin/sleep infinity
Mar 14 22:36:35 webhosting.cloudspinx.com systemd[1]: Started zammad-worker.service.
● zammad-websocket.service
Loaded: loaded (/etc/systemd/system/zammad-websocket.service; enabled; vendor preset: disabled)
Active: active (running) since Thu 2024-03-14 22:36:35 EAT; 1min 14s ago
Main PID: 6812 (sleep)
Tasks: 1 (limit: 49026)
Memory: 176.0K
CGroup: /system.slice/zammad-websocket.service
└─6812 /bin/sleep infinity
Mar 14 22:36:35 webhosting.example.com systemd[1]: Started zammad-websocket.service.
使用 zammad
命令设置 Elasticsearch 服务器地址。
zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
使用 Zammad 之前构建搜索索引。
$ zammad run rake zammad:searchindex:rebuild
Dropping indexes... done.
Deleting pipeline... done.
Creating indexes... done.
Creating pipeline... done.
Reloading data...
- Chat::Session...
done in 0 seconds.
- Cti::Log...
done in 0 seconds.
- Group...
done in 0 seconds.
- KnowledgeBase::Answer::Translation...
done in 0 seconds.
- KnowledgeBase::Category::Translation...
done in 0 seconds.
- KnowledgeBase::Translation...
done in 0 seconds.
- Organization...
done in 0 seconds.
- StatsStore...
done in 0 seconds.
- Ticket::Priority...
done in 0 seconds.
- Ticket::State...
done in 0 seconds.
- Ticket...
done in 0 seconds.
- User...
done in 0 seconds.
可以通过将 es_ssl_verify 设置为 false 来停用 SSL 验证。
zammad run rails r "Setting.set('es_ssl_verify', false)"
配置 Nginx 代理
确保已安装 nginx。
sudo dnf -y install nginx && sudo systemctl enable --now nginx
通过复制配置文件来配置 Web 服务器
$ sudo find / -name zammad.conf
/etc/nginx/conf.d/zammad.conf
/opt/zammad/contrib/apache2/zammad.conf
/opt/zammad/contrib/nginx/zammad.conf
编辑并设置正确的 DNS 名称以匹配 DNS 名称。
$ sudo vim /etc/nginx/conf.d/zammad.conf
# replace 'localhost' with your fqdn if you want to use zammad from remote
server_name tickets.cloudspinx.com;
确认 Nginx 索引。
$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
重新启动 nginx Web 服务器服务。
sudo systemctl restart nginx
访问 Zammad 网页界面
使用配置的主机名 - http://yourfqdn 在网络浏览器上访问 Zammad。选择“设置新系统”。
输入您的组织名称并上传您的公司徽标。
确认徽标已上传并且可见。
接下来,您可以为外发电子邮件配置 SMTP 或选择稍后进行设置。
本地 MTA 可用于电子邮件传送。
设置要使用的通信通道或跳过以后的配置。
在下一页中,您应该看到 Zammad 管理界面。
使用 Let’s Encrypt 证书保护 Zammad
Let’s Encrypt 是一个免费的 SSL 证书,可用于您的网站 HTTPS 访问。安装证书机器人。
sudo dnf -y install epel-release
sudo dnf -y install certbot python3-certbot python3-certbot-nginx
设置将接收证书过期警报的 Zammad 域名和电子邮件。
export DOMAIN="tickets.example.com"
export ALERTS_EMAIL="alerts.example.com"
生成 SSL 证书并配置 nginx 以使用它们。
sudo certbot --nginx --redirect -d $DOMAIN --preferred-challenges http --agree-tos -n -m $ALERTS_EMAIL --keep-until-expiring
从 Zammad 文档页面了解更多信息。
更新于:3个月前
相关文章
- LinkWeChat开源系统
- 每一个程序员,都希望能成为分布式系统架构师
- 游戏陪玩系统语音聊天系统商业版源码安装教程
- 【说站】python系统内置方法如何获取
- CentOS7部署发布.NET Core网站Ngnix安装配置图文教程
- 【说站】python os怎样处理系统文件
- 系统架构7个非功能性需求
- mac 系统 homebrew 管理 PHP
- TP6.0 空控制器: 健壮系统服务
- 系统的讲解网站的优化
- TP6.0 系统服务的使用和理解
- Windows 系统 PhpStorm 2020无限试用30天
- CentOS离线安装unzip
- Linux使用Docker部署.NET6网站图文教程
- Centos 镜像文件下载
- C#中如何获取当前系统CPU的核心数
- AnolisOS能够超过CentOS吗?
- C#获取Windows系统中所有已安装软件的名称和版本号
- 在64位的Windows系统下运行32位的C#程序如何控制重定向
- 怎样在Linux系统 Ubuntu18.04 中安装微信