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:
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