Zammad es una solución de tickets gratuita, de código abierto y con todas las funciones escritas en Ruby. Es un sistema basado en la web con muchas funciones para administrar la comunicación con el cliente a través de varios canales como teléfono, facebook, twitter, chat y correos electrónicos. Puede atender fácilmente las consultas y quejas de los clientes. Zammad viene con un amplio conjunto de características que incluyen búsqueda de texto completo, guardado automático, auditable, admite autenticación externa, admite varios idiomas y mucho más.
En este tutorial, te explicamos cómo instalar Zammad Ticketing System en un servidor Ubuntu 18.04.
Requisitos
- Un servidor corriendo con Ubuntu 18.04 con un mínimo de 2 GB de memoria.
- Un password root establecido en tu servidor.
Empezamos
Antes de empezar, deberás instalar Java en tu sistema. Puedes instalar Java 8 con el siguiente comando:
# apt-get install openjdk-8-jdk -y
Una vez instalado, puedes verificar la versión de Java con el siguiente comando:
# java -version
Deberías ver el siguiente resultado:
openjdk version "1.8.0_222"
OpenJDK Runtime Environment (build 1.8.0_222-8u222-b10-1ubuntu1~18.04.1-b10)
OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)
Instala Elasticsearch
Primero, deberás instalar Elasticsearch para la funcionalidad de búsqueda. Por defecto, Elasticsearch no está disponible en el repositorio predeterminado de Ubuntu 18.04. Por ello, deberás agregar el repositorio Elasticsearch en su sistema.
Primero, instala apt-transport-https con el siguiente comando:
# apt-get install apt-transport-https -y
A continuación, descarga y agrega la clave pública Elasticsearch con el siguiente comando:
# wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | apt-key add -
A continuación, agrega el repositorio Elasticsearch con el siguiente comando:
# echo "deb https://artifacts.elastic.co/packages/7.x/apt stable main" | tee -a /etc/apt/sources.list.d/elastic-7.x.list
A continuación, actualiza el repositorio e instala Elasticsearch con el siguiente comando:
# apt-get update -y
# apt-get install elasticsearch -y
Una vez se haya completado la instalación, inicia el servicio elasticsearch y permite que se inicie en el reinicio del sistema con el siguiente comando:
# systemctl start elasticsearch
# systemctl enable elasticsearch
Puedes comprobar el estado de elasticsearch con el siguiente comando:
# systemctl status elasticsearch
Deberías ver el siguiente resultado:
● elasticsearch.service – Elasticsearch
Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; disabled; vendor preset: enabled)
Active: active (running) since Wed 2019-07-31 04:05:36 UTC; 6s ago
Docs: http://www.elastic.co
Process: 11198 ExecStartPre=/usr/share/elasticsearch/bin/elasticsearch-systemd-pre-exec
(code=exited, status=0/SUCCESS)
Main PID: 11201 (java)
Tasks: 13 (limit: 1098) CGroup: /system.slice/elasticsearch.service └─11201 /usr/bin/java -Xms512m -Xmx512m -XX:+UseConcMarkSweepGC - XX:CMSInitiatingOccupancyFraction=75 - XX:+UseCMSInitiatingOccupancy
Jul 31 04:05:36 hitesh systemd[1]: Starting Elasticsearch...
Jul 31 04:05:36 hitesh systemd[1]: Started Elasticsearch.
A continuación, también tienes que permitir que Elasticsearch indexe los archivos adjuntos. Puedes hacerlo con el siguiente comando:
# /usr/share/elasticsearch/bin/elasticsearch-plugin install ingest-attachment
Deberías ver el siguiente resultado:
-> Downloading mapper-attachments from elastic
[=================================================] 100%
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: plugin requires additional permissions @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
* java.lang.RuntimePermission getClassLoader
* java.lang.reflect.ReflectPermission suppressAccessChecks
* java.security.SecurityPermission createAccessControlContext
* java.security.SecurityPermission insertProvider
* java.security.SecurityPermission putProviderProperty.BC
See http://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 mapper-attachments
Una vez instalado, reinicia elasticsearch para cargar el nuevo complemento.
# systemctl restart elasticsearch
Instala Zammad
Por defecto, Zammad no está disponible en el repositorio Ubuntu 18.04. Por lo tanto, deberás agregar el repositorio de Zammad a tu sistema.
Puedes agregar el repositorio con el siguiente comando:
# wget -qO- https://dl.packager.io/srv/zammad/zammad/key | apt-key add -
# wget -O /etc/apt/sources.list.d/zammad.list
# https://dl.packager.io/srv/zammad/zammad/stable/installer/ubuntu/18.04.repo
Una vez que se agregue el repositorio, actualiza el repositorio e instala Zammad con el siguiente comando:
# apt-get update -y
# apt-get install zammad -y
Una vez completada la instalación, puedes verificar Zammad con el siguiente comando:
# systemctl status zammad
Deberías ver el siguiente resultado:
● zammad.service
Loaded: loaded (/etc/systemd/system/zammad.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2019-07-31 04:20:04 UTC; 4min 31s ago
Main PID: 21878 (sleep)
Tasks: 1 (limit: 1098)
CGroup: /system.slice/zammad.service
└─21878 /bin/sleep infinity
Jul 31 04:20:04 hitesh systemd[1]: Started zammad.service.
A continuación, deberás hacer que Zammad funcione con Elasticsearch y reconstruir el índice. Puedes hacerlo con el siguiente comando:
# zammad run rails r "Setting.set('es_url', 'http://localhost:9200')"
# zammad run rake searchindex:rebuild
También puedes agregar el espacio de nombre de índice Elasticsearch adicional, ignorar los tipos de archivos binarios comunes y establecer el tamaño máximo de archivo adjunto con los siguientes comandos:
# zammad run rails r "Setting.set('es_index', Socket.gethostname + '_zammad')"
# zammad run rails r "Setting.set('es_attachment_ignore', [ '.png', '.jpg', '.jpeg', '.mpeg', '.mpg', '.mov','.bin', '.exe', '.box', '.mbox' ] )"
# zammad run rails r "Setting.set('es_attachment_max_size_in_mb', 50)"
Configura Nginx para Zammad
Por defecto, sólo se puede acceder a Zammad desde localhost. Por lo tanto, deberás configurar Nginx para acceder a Zammad desde una ubicación remota. Puedes hacerlo editando el archivo de host virtual de Zammad:
# nano /etc/nginx/sites-available/zammad.conf
Reemplaza el host local con el FQDN o la dirección IP de tu servidor:
# server_name your-server-ip;
Guarda y cierra el archivo. Luego, reinicia el servicio Nginx para aplicar los cambios de configuración.
# systemctl restart nginx
Accede a la Interfaz Web de Zammad
Ahora abre tu navegador web y escribe la URL http: // your-server-ip. Serás redirigido a la siguiente página:
Haz clic en el botón ‘Configurar nuevo sistema’. Deberías ver la siguiente página:
Proporciona el nombre de administrador, correo electrónico, contraseña y haz clic en el botón ‘Crear’. Deberías ver la siguiente página:
Proporciona el nombre de tu organización, la URL del sistema, carga el logotipo y haz clic en el botón ‘Siguiente’. Deberías ver la siguiente página:
Elige un método de envío de correo electrónico adecuado y haz clic en el botón ‘Continuar’. Deberías ver la siguiente página:
Ahora, haz clic en el botón ‘Omitir’ para finalizar la instalación. Deberías ver el panel de Zammad en la siguiente página:
¡Felicidades! Has instalado y configurado correctamente el Sistema de ticketing Zammad en el servidor Ubuntu 18.04.
Ahora puedes implementar fácilmente Zammad en un entorno de producción.