Zabbix (Em Homologação)
Utilizando-se da API do Tiflux é possível fazer a integração de um servidor Zabbix para que o mesmo interaja com tickets.
A nossa integração do Zabbix esta em homologação
O presente tutorial ainda esta incompleto e sendo montado conforme os testes que estamos realizando em nosso base.
Assim que completamente homologado, estaremos modificando essa seção.
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 contratado pela Tiflux para que disponibilize essa opção a nossa comunidade Tifluxer. A Tiflux não realiza suporte no Zabbix e nem na integração, caso seja necessário na sua empresa, segue o contato do Janssen Lima [email protected]
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:
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)
setup-zbx-tiflux-deb.sh
1KB
Text
Debian
setup-zbx-tiflux-rhel.sh
1KB
Text
RHEL
Configurações e implantação a ser feita direto no servidor Linux do 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
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.'
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.
- Name: Abrir Chamado TiFluxScope: 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}&eventid={EVENT.ID}' target='_blank'>{$ZABBIX_SERVER_URL}/tr_events.php?triggerid={TRIGGER.ID}&eventid={EVENT.ID}</a>" "{EVENT.ID}" "{$PRIORITY_ID}" "{TRIGGER.ID}" "{$TIPO_COMUNICACAO}" "{$API_KEY}" "{$API_URL}" "{$ZABBIX_SERVER_URL}" "{$ZABBIX_USER}" "{$ZABBIX_PASS}"
Baixo o template abaixo para importação
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.Duvidas 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;
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 modified 1yr ago