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}&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}"
Importar o template padrão
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.
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