首页 程序笔记 在 Rocky 8 上安装 Zammad 票务系统 | CentOS 8

在 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_lengthindices.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

站心网

每个拥有客户支持的企业都需要一个票务和客户支持系统来保证业务顺利运营。为此可以选择商业和开源软件解决..

为您推荐

详解:订单履约系统规划

大家好,我是汤师爷~什么是订单履约系统?订单履约是从消费者下单支付到收到商品的全流程管理过程,包括订单接收、订单派单、库存分配、仓储管理和物流配送等环节,核心目标是确保商品准时、准确地送达消费者手中。..

最新CentOS7安装搭建shadowsocks服务端+客户端使用图文教程

使用的CentOS版本是7.9,其他版本也可以。超级推荐的是搭建shadowsocks服务端,安装配置都很简单,几分钟就搞定,客户端支持PC移动端,下面是安装shadowsocks的过程,只要复制粘贴命令就行了,文件夹路径都不需要改..

sourcetree安装跳过注册方法

SourceTree下载提取码: ni9m 需翻墙或者破解注册当前只有Win的版本,Mac自行百度很多人用git命令行不熟练,那么可以尝试使用sourcetree进行操作。然鹅~~sourcetree又一个比较严肃的问题就是,很多人不会跳过注册或者..

LinkWeChat开源系统

平台介绍LinkWeChat是一款基于企业微信的开源SCRM系统,为企业构建私域流量系统的综合解决方案,显著提升企业社交运营效率!内置功能环境部署准备工作JDK >= 1.8 (推荐1.8版本)Mysql >= 5.5.0 (推荐5.7版本)Redis >=..

每一个程序员,都希望能成为分布式系统架构师

有很多读者经常问我,程序员的学习、成长之路应该怎么规划,才能早日成为一名架构师。作为一个曾经的架构师,在我走上技术管理这条路之后,管理的团队越来越大,现在我管理的技术团队有一百多人,最大的体会就是操心..

鸿蒙OpenHarmony系统可以运行跨平台的.NET Core吗?

鸿蒙(HarmonyOS)和 OpenHarmony 系统本身并不原生支持直接运行 .NET Core,但可以通过一些方法使 .NET Core 应用在其上运行。鸿蒙和 OpenHarmony 是基于 LiteOS 和 Linux 内核的多终端操作系统,因此它们的运行时..

Winform不同分辨率系统下界面混乱

产生界面混乱的主要原因是,winform程序的坐标是基于点(Point)的,而Point又与DPI相关。一英寸 = 96pixels96DPI是windows的默认DPI,当它被用户更改后,可能就会导致界面与设计之初产生了错乱。在网上搜索相关资料后..

CentOS7部署发布.NET Core网站Ngnix安装配置图文教程

Linux服务器部署.NET Core网站运行速度更快,最近打算把原来windows server上的网站迁到linux的云服务器上。 顺便记录一下CentOS7安装.NET运行环境,安装和配置Ngnix的过程。首先安装.NET运行时sudorpm-Uvhhttps://p..

IIS使用Certify安装Let's Encrypt免费SSL证书

域名疑似被流量劫持,不仅被腾讯网址安全中心检测成危险网站,还间歇性出现访问域名被302重定向到Localhost。于是决定响应百度站长平台的号召,进行HTTPS改造。不用担心HTTPS后的SEO问题,百度站长平台官方已经表态..

系统架构7个非功能性需求

在软件系统里面,功能性需求是面向用户、详细明确的需求,由产品人员根据市场的需要提炼出来,是产品生命周期里最重要的一环。比如电商系统里面的优惠券功能,通常包含需求:优惠券分类、细分领券人群、核销优惠券等..

Kubernetes(k8s) Linux安装和配置

什么是Kubernetes(k8s)?Kubernetes(通常称为"k8s")是一种用于自动部署、扩展和管理容器化应用程序的开源平台。它提供了一个容器编排和管理系统,可以自动化应用程序的部署、管理和缩放,并确保它们的高可用性。在..

程序员开发人员常用工具和网站

给大家分享一些程序员开发人员常用工具和网站,我相信这里总有一款工具适合你。排名不分先后~Visual Studio CodeVisual Studio Code官网地址:https://code.visualstudio.com/Visual Studio Code重新定义和优化了代..

类似sms-activate的国外手机验证码接码平台

很多网站需要通过手机验证码才能注册成功,例如最近大火的ChatGPT的官网OpenAI只能使用国外手机号注册。这里推荐几个可以接收国外手机验证码的平台。sms-activatehttps://sms-activate.org/cn站点推荐:ChatGPT手机..

百度文心一言邀请码如何获得?

3月16日下午,百度于北京总部发布了新一代大语言模型、生成式AI产品文心一言。首批用户即可通过邀请测试码,在文心一言官网体验产品,后续将陆续开放给更多用户。邀请码申请方式请往下看。百度文心官网地址:https://..

免费申请SSL证书的网站教程推荐

现在有很多平台可以申请的免费SSL证书让你的网站提供https服务。一些云服务器平台可能也会有一些免费SSL证书的服务。免费SSL证书安全吗?免费SSL证书可以使用,并且在许多情况下是足够安全的。免费SSL证书可以通过Le..

react使用echart图文教程

可以参考ECharts官网的文档:https://echarts.apache.org/handbook/zh/basics/import在React中使用ECharts可以通过以下步骤:安装ECharts库使用npm或者yarn安装ECharts库:npm install echarts --save引入ECharts库..

量化炒股的原理是什么?量化交易策略有哪些?

量化炒股是一种利用计算机程序和数学模型来进行投资决策的方法。它的原理是通过分析历史市场数据、价格走势、技术指标等多种因素,构建数学模型,用以预测未来股市走势和行情。这些模型能够自动执行交易,以实现更高..

头条搜索站长工具网站提交

头条搜索站长平台官网地址:https://zhanzhang.toutiao.com/头条站长是一款提供网站分析和优化建议的工具,可以帮助站长了解其网站的流量情况、用户行为、页面质量等信息,以便对网站进行优化和改进。它的功能和百度..

类似ChatGPT的AI产品有哪些?

在自然语言处理领域,有一些可以替代ChatGPT的工具和框架,以下是一些比较流行的:Transformer-XL:Transformer-XL是由CMU和Google共同开发的自然语言处理模型,具有较好的上下文理解能力和处理长文本的能力。该模型..

echars k线图tooltip formatter没有执行

使用echars生成k线图时,参考官网的示例发现无法修改tooltip的内容,经过研究发现官网示例代码是不正确的。以名为[K 线图刷选]的K线图为例,因为它的示例里有tooltip formatter的实现代码,但是实际上是没有执行的。..

发表回复

返回顶部