Recherche de site Web

Installer le système de billetterie Zammad sur Rocky 8 | CentOS 8


Chaque entreprise disposant d'un support client a besoin d'un système de billetterie et de support client pour des opérations commerciales fluides. Il existe une option de solutions logicielles commerciales et open source qui peuvent être adoptées à cet effet. Zammad est l'un des meilleurs systèmes open source de billetterie et de support client qui vous permet de gérer la communication client via différents canaux tels que les réseaux sociaux, les e-mails, les appels téléphoniques et les chats à partir d'un tableau de bord Web centralisé.

Certaines fonctionnalités clés de la solution logicielle Zammad sont :

  • Gestion des tickets clients
  • Base de connaissances pour les procédures, les FAQ et les SOP internes
  • Gestion des actifs informatiques
  • Automatisation des flux de travail
  • Surveillance, reporting et analyses
  • Prise en charge de divers canaux de communication
  • Intégration avec de nombreux outils de collaboration
  • Collecte des retours clients
  • Gestion des accords de niveau de service (SLA)
  • Gestion du centre d'appels
  • Modèles d'e-mails
  • Notifications en temps réel
  • Portail libre-service
  • Parmi tant d'autres

Dans ce court didacticiel, vous apprendrez comment installer, configurer et utiliser le système de billetterie Zammad sur le système Linux Rocky 8 ou CentOS 8.

Ajouter un référentiel EPEL

Certains des packages de dépendances requis sont contenus dans le référentiel EPEL. Vous pouvez configurer le dépôt sur le système en exécutant les commandes suivantes sur le système.

sudo dnf install wget epel-release

Définissez également les paramètres régionaux sur votre langue.

sudo localectl set-locale LANG=en_US.utf8

Installer Elasticsearch

Importez la clé GPG elasticsearch dans votre magasin système.

sudo rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

Ajoutez le dépôt Elasticsearch au système.

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

Installez le package elasticsearch en exécutant les commandes suivantes dans votre terminal.

sudo dnf -y install elasticsearch

Ouvrir le fichier de configuration pour le modifier

sudo vim /etc/elasticsearch/elasticsearch.yml

Personnalisez les valeurs http.max_content_length et 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

Démarrez et activez le service pour démarrer au démarrage du système.

sudo systemctl enable --now elasticsearch

Installez le plugin ingest-attachment pour elasticsearch.

$ 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

Redémarrez le service après avoir effectué la modification.

sudo systemctl restart elasticsearch

Installez Zammad sur Rocky/CentOS 8

Importer la clé du référentiel Zammad

sudo rpm --import https://dl.packager.io/srv/zammad/zammad/key

Ajoutez ensuite le référentiel Zammad RPM qui contient les packages requis

wget https://dl.packager.io/srv/zammad/zammad/stable/installer/el/8.repo -O zammad.repo 
sudo mv zammad.repo  /etc/yum.repos.d/

Installez Zammad à l'aide du gestionnaire de packages yum ou dnf.

sudo dnf -y install zammad

Démarrez et activez les services.

sudo systemctl enable --now zammad zammad-web zammad-worker zammad-websocket

Définir les autorisations de répertoire pour les données

sudo chmod -R 755 /opt/zammad/public/

Si SELinux est en mode d'application, configurez les étiquettes.

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/

Ouvrez le port 80 ou le port 443 sur le pare-feu s'il est actif.

sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload

En général, Zammad utilise trois services – ceux-ci peuvent être (re)démarrés et arrêtés avec le parent 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

Vérifiez si les services sont en cours d'exécution.

$ 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.

Définissez l'adresse du serveur Elasticsearch à l'aide de la commande zammad.

zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"

Construisez l'index de recherche avant d'utiliser 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.

La désactivation de la vérification SSL peut être effectuée en définissant es_ssl_verify sur false.

zammad run rails r "Setting.set('es_ssl_verify', false)"

Configurer le proxy Nginx

Assurez-vous que nginx est installé.

sudo dnf -y install nginx && sudo systemctl enable --now nginx

Configurez le serveur Web en copiant le fichier de configuration

$ sudo find / -name zammad.conf
/etc/nginx/conf.d/zammad.conf
/opt/zammad/contrib/apache2/zammad.conf
/opt/zammad/contrib/nginx/zammad.conf

Modifiez et définissez le nom DNS correct pour qu'il corresponde au nom 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;

Confirmez l'index 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

Redémarrez le service du serveur Web nginx.

sudo systemctl restart nginx

Accéder à l'interface Web de Zammad

Accédez à Zammad sur votre navigateur Web en utilisant le nom d'hôte configuré – http://yourfqdn. Choisissez « Configurer un nouveau système ».

Saisissez le nom de votre organisation et téléchargez le logo de votre entreprise.

Confirmez que le logo a été téléchargé et est visible.

Ensuite, vous pouvez configurer SMTP pour les e-mails sortants ou choisir de le configurer ultérieurement.

Le MTA local peut être utilisé pour la livraison des e-mails.

Configurez les canaux de communication à utiliser ou ignorez-les pour les configurations ultérieures.

Sur la page suivante, vous devriez voir l'interface administrative de Zammad.

Sécurisez Zammad avec le certificat Let's Encrypt

Let's Encrypt est un certificat SSL gratuit qui peut être utilisé pour l'accès HTTPS de vos sites Web. Installez certbot.

sudo dnf -y install epel-release
sudo dnf -y install certbot python3-certbot python3-certbot-nginx

Définissez le nom de domaine et l'adresse e-mail Zammad qui recevront les alertes d'expiration de certificat.

export DOMAIN="tickets.example.com"
export ALERTS_EMAIL="alerts.example.com"

Générez des certificats SSL et configurez nginx pour les utiliser.

sudo certbot --nginx --redirect -d $DOMAIN --preferred-challenges http --agree-tos -n -m $ALERTS_EMAIL --keep-until-expiring

Apprenez-en plus sur les pages de documentation de Zammad.

Articles connexes: