Conectar e configurar o Elasticsearch
TIP
Are you tired of complex setup, configuration, backup and update tasks? Let us handle this stuff for you! 🚀
The easiest and often most cost-effective way to operate Zammad is our cloud service. Give it a try with a free trial instance!
Este guia mostra como conectar o Zammad ao Elasticsearch.
Conectar o Elasticsearch ao Zammad
Definir a URL do Elasticsearch
Defina o endereço do servidor Elasticsearch; adapte ao seu cenário.
zammad run rails r "Setting.set('es_url', 'https://localhost:9200')"Definir o usuário e senha do Elasticsearch
zammad run rails r "Setting.set('es_user', 'elastic')"Substitua <password> pela senha que você obteve durante a instalação do Elasticsearch. Caso precise criar uma nova senha, execute /usr/share/elasticsearch/bin/elasticsearch-reset-password -u elastic.
zammad run rails r "Setting.set('es_password', '<password>')"Adicionar certificado ao Zammad
Adicionar via console Rails
Caso você esteja instalando um novo Zammad e ainda não tenha passado pelo assistente de configuração inicial, adicione o certificado via console:
sudo cat /etc/elasticsearch/certs/http_ca.crt | zammad run rails r "SSLCertificate.create!(certificate: STDIN.read)"Adicionar via interface
Caso você já tenha um Zammad em execução e configurado, pode adicionar o certificado nas configurações de administração do Zammad (Settings > Security > SSL Certificates) como alternativa. Para mostrar e copiar o certificado gerado automaticamente pelo Elasticsearch, execute:
sudo cat /etc/elasticsearch/certs/http_ca.crtPara adicioná-lo no Zammad, envie o arquivo de certificado ou cole o conteúdo na caixa de diálogo. Certifique-se de copiar/colar os delimitadores (por exemplo, -----BEGIN CERTIFICATE-----) também.
Construir/reconstruir o índice de pesquisa
Sem especificar núcleos de CPU a usar:
zammad run rake zammad:searchindex:rebuildEspecificando núcleos de CPU a usar (exemplo 8):
zammad run rake zammad:searchindex:rebuild[8]Configurações opcionais
Reunimos algumas configurações úteis que você pode querer aplicar. Para mais informações, consulte a documentação da Elastic.
Namespacing de índice
Útil ao conectar múltiplos serviços ou instâncias do Zammad a um único servidor Elasticsearch (para evitar colisões de nomes durante a indexação).
zammad run rails r "Setting.set('es_index', Socket.gethostname.downcase + '_zammad')"Regras de indexação de anexos de arquivo
O Zammad suporta pesquisa em anexos de arquivo, o que significa que o Elasticsearch precisa indexá-los também. Limitar essa indexação pode ajudar a preservar recursos do sistema.
Arquivos com essas extensões não serão indexados:
zammad run rails r "Setting.set('es_attachment_ignore',\
[ '.png', '.jpg', '.jpeg', '.mpeg', '.mpg', '.mov', '.bin', '.exe', '.box', '.mbox' ] )"Arquivos maiores que este tamanho (em MB) não serão indexados:
zammad run rails r "Setting.set('es_attachment_max_size_in_mb', 50)"Asciifold
Por padrão, o recurso Asciifold do Elasticsearch está habilitado. Isso pode ser útil se você lida com texto que inclui diacríticos e/ou trema.
Caso você precise de uma pesquisa mais exata, pode desativá-lo via console Rails.
Solução de problemas
TIP
Solução de problemas sem sucesso ou problema não descrito?
Se você não conseguir resolver seu problema usando as etapas de solução de problemas fornecidas, ou não encontrar seu problema específico descrito aqui, sinta-se à vontade para perguntar à comunidade para assistência técnica.
Dados ausentes na interface web / dados de pesquisa ausentes ou incompletos
Um problema comumente relatado é a falta de dados na interface web. Isso pode ser tickets, artigos, usuários ou qualquer outra coisa indexada pelo Elasticsearch, e pode ser causado por índices ausentes ou incompletos.
Se você está enfrentando esse problema e instalou o Elasticsearch de acordo com o nosso guia de instalação, siga estas etapas para garantir que o Elasticsearch esteja funcionando corretamente.
Etapa 1: verificar se o Elasticsearch está em execução
sudo systemctl status elasticsearchIsso deve exibir algo como o seguinte; certifique-se de que diga Active: active (running):
● elasticsearch.service - Elasticsearch
Loaded: loaded (/lib/systemd/system/elasticsearch.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2021-07-20 09:38:21 UTC; 1h 4min ago
Docs: https://www.elastic.co
Main PID: 1790 (java)Caso contrário, tente reiniciá-lo e verifique novamente:
sudo systemctl restart elasticsearchWARNING
Se isso falhar, sua instalação do Elasticsearch provavelmente está corrompida. Tente limpar completamente e reinstalar o Elasticsearch de acordo com o nosso guia de instalação.
Etapa 2: verificar se o Zammad pode acessar o Elasticsearch e reconstruir os índices
Force o Zammad a descartar e reconstruir os índices do Elasticsearch, opcionalmente com um número específico de núcleos de CPU a usar para a reindexação (exemplo [8]):
zammad run rake zammad:searchindex:rebuild[8]Isso deve começar a reconstruir os índices e exibir seu progresso:
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.
[...]Dependendo do desempenho do sistema e da quantidade de dados, isso pode levar algum tempo para concluir. Deixe essa tarefa terminar completamente e aguarde até que ela volte ao console.
Se isso falhar ou gerar um erro, pode haver algo mais errado com sua instalação. Certifique-se de ter seguido o procedimento completo de configuração e integração do Elasticsearch, de acordo com nosso guia de instalação.
TIP
Em muitas situações onde você não obtém sucesso com as etapas acima, você pode querer verificar o arquivo de log do Elasticsearch: /var/log/elasticsearch/elasticsearch.log.
Depois de concluir essas etapas, você deve ter verificado que sua instalação do Elasticsearch está em execução e reconstruído os índices.