Zabbix

Utilizando-se da API do Tiflux é possível fazer a integração de um servidor Zabbix para que o mesmo interaja com tickets.

Importante

A presente integração e os passos de instalação, foram testados e homologados nos seguintes sistemas:

  • Ubuntu 20.04 e Red Hat EL 8.4

  • Zabbix 5.0 e 5.4

  • Python 3

A integração Zabbix não é um produto Tiflux, é um software desenvolvido por um especialista Zabbix que disponibilizou os códigos para uso de nossa comunidade Tifluxer. Os códigos criados, fazem uso de nossa API pública e podem ser desenvolvidos ou dado manutenção por qualquer pessoa que tenha conhecimentos de programação e Zabbix.

A Tiflux não realiza suporte no Zabbix e nem na integração, caso seja necessário algum suporte sobre esse ponto, recomendamos que você contrate uma empresa especialista na solução Zabbix para que a mesma possa lhe auxiliar neste ponto.

Características

A integração aqui disponibilizada, garante que o servidor Zabbix possa fazer as seguintes atividades no Tiflux:

  • Abrir um ticket com o nome da trigger e o link do evento

  • Se o evento for resolvido no Zabbix ele notificará no ticket (comunicação interna ou cliente)

  • Se o evento voltar a ocorrer e o ticket não estiver encerrado ele notificará no ticket já em andamento (não ficará abrindo vários tickets caso o problema oscile)

  • Se o evento voltar a ocorrer e o ticket estiver encerrado ele abrirá um novo ticket

A integração realiza unicamente as ações acima. A adição de novas ações pode ser desenvolvida ou utilizadas usando-se dos métodos que estão disponíveis em nossa API:

Downloads

Abaixo os dois scripts para automação do Zabbix + Tiflux.

O script Debian é para sistemas baseados no Debian (Debian, Ubuntu, Mint etc)

O script RHEL é para sistemas baseados no RHEL (Red Hat, Oracle Linux, CentOS)

Instalação

Configurações e implantação a ser feita direto no servidor Linux do Zabbix:

Pré-requisitos Configuração no Zabbix

Editar o arquivo de configuração /etc/zabbix/zabbix_agentd.conf e adicionar:

  • AllowKey=system.run[*]

  • EnableRemoteCommands=1

IMPORTANTE: Se precisar inserir as configurações acima, é necessário reiniciar o serviço do agente do zabbix.

O usuário do Zabbix precisa ter acesso ao bash no linux. Editar o arquivo /etc/passwd. Localizar a linha do usuário zabbix e verificar se no final da linha está: "/sbin/nologin". Caso afirmativo, alterar para "/bin/bash".

Exemplo: zabbix:x:985:983:Zabbix Monitoring System:/home/zabbix:/bin/bash

Instalando

Faça login com o usuário root

Execute o script setup-zbx-tiflux-deb.sh ou setup-zbx-tiflux-rhel.sh de acordo com a distribuição do Linux instalada em seu servidor.

  • O script irá verificar se o arquivo /etc/passwd está configurado para o usuário zabbix usar como diretório home /home/zabbix e o bash ativado /bin/bash

  • O script será encerrado caso a etapa anterior não satisfaça o home indicado e o bash ativado.

  • Em seguida o script verifica se existe o diretório /home/zabbix. Caso negativo, ele cria o diretório e ajusta as permissões.

  • O script faz a instalação dos pacotes necessários para o funcionamento da integração e finaliza com a mensagem: 'Setup do Zabbix + TiFlux finalizado.'

Editando os arquivos da Integração

Editar os arquivos ack_zabbix.py e ack_ticket_ja_existe.py e inserir as credenciais de acesso ao zabbix.

Colocar as informações de acesso entre parênteses.

IMPORTANTE:

  • Não informar / no final da variável server.

  • O usuário informado nesses arquivos deverá ter acesso de ao menos leitura em todos os hosts que irão participar da integração.

  • A sugestão é que você crie um usuário que tenha acesso somente leitura em todos os hosts que irão participar da integração.

Configuração Zabbix interface web

Criar script em Administation -> Scripts

  • Name: Abrir Chamado TiFlux

    Scope: Action operation (opção disponível somente nas versões mais recentes do Zabbix. Caso não tenha em sua versão, ignore)

    Execute on: Zabbix server

Commands:

. /home/zabbix/tiflux/venv/bin/activate
python3 /home/zabbix/tiflux/scripts/tiflux.py "{$CLIENT_ID}" "{$MESA_ID}" "{HOSTNAME} - {TRIGGER.NAME}" "{TRIGGER.STATUS} - Detectado problema no host {HOSTNAME}. Trigger: {TRIGGER.NAME}. ID do evento: {EVENT.ID}. URL: <a href='{$ZABBIX_SERVER_URL}/tr_events.php?triggerid={TRIGGER.ID}&amp;eventid={EVENT.ID}' target='_blank'>{$ZABBIX_SERVER_URL}/tr_events.php?triggerid={TRIGGER.ID}&amp;eventid={EVENT.ID}</a>" "{EVENT.ID}" "{$PRIORITY_ID}" "{TRIGGER.ID}" "{$TIPO_COMUNICACAO}" "{$API_KEY}" "{$API_URL}" "{$ZABBIX_SERVER_URL}" "{$ZABBIX_USER}" "{$ZABBIX_PASS}"

Importar o template padrão

Baixo o template abaixo para importação

Template Zabbix

Dentro de Configuration > Templates > Import faça a importação.

Ajustar valores das macros do template de acordo com o seu ambiente.

Dicas:

  • API_KEY é a chave codificada que você deve executar usando a chave gerada dentro do Tiflux para autenticação da API e seu usuário.

    Dúvidas de como gerar, consulte a nossa documentação de API na seção de autenticação, acesse aqui;

  • CLIENTE_ID deixe em branco essa informação neste momento. É preciso ser ajustado esse campo de acordo com cada host que for monitorado. Dentro de cada host você poderá modificar as macros e colocar o ID correto do cliente daquele host;

  • MESA_ID se for usado apenas uma única mesa no Tiflux para abertura de tickets de monitoramento, informe o seu ID neste momento para ficar padrão;

  • PRIORITY_ID é a prioridade da mesa ao abrir o ticket. Configure agora se for usado um padrão para todos os tickets;

Capturando o ID dos campos do Tiflux

ID do Cliente dentro do Tiflux. Dentro do cadastro do cliente, no URL vai aparecer o ID:

ID da mesa de serviço dentro do Tiflux. Dentro do cadastro da mesa, no URL vai aparecer o ID:

ID das prioridades da mesa. Pressione a tecla "F12" e do lado direito, selecione a aba "Network" ou "Rede".

Com essa aba aberta, abra a mesa e clique em prioridades. Os IDs vão aparecer a direito, igual no print abaixo:

Criar uma ação para chamar o script da integração:

- A ação deverá ter as condições para ativar o script da integração. A sugestão é inserir um grupo de hosts chamado "Integração TiFlux" e associar esse grupo a todos os hosts que irão participar da integração.

- Já na aba operações, insira uma operação selecionando o nome do script criado na seção "Administration > Scripts" e marque a opção "Current host".

Last updated