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

# Zabbix

## Importante

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

* Ubuntu 20.04 e Red Hat EL 8.4
* Zabbix 5.0 e 5.4&#x20;
* Python 3

{% hint style="warning" %}
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.&#x20;

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.
{% endhint %}

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

{% embed url="https://tiflux.docs.apiary.io/#" %}



## 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)

{% file src="https://2304813967-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCU_zijA4r4IkDIJyZG%2F-MkCvelhuFuUpyh-7WAi%2F-MkCvu6LIY3ncEm1l1bc%2Fsetup-zbx-tiflux-deb.sh?alt=media&token=46889e8b-841d-4c60-96e4-156cc5471dff" %}
Debian
{% endfile %}

{% file src="https://2304813967-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCU_zijA4r4IkDIJyZG%2F-MkCvelhuFuUpyh-7WAi%2F-MkCvzSHFWdPR4ZnES-J%2Fsetup-zbx-tiflux-rhel.sh?alt=media&token=611ffe24-b8c8-45f6-a33c-e7c19433d842" %}
RHEL
{% endfile %}



## Instalação

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

#### 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&#x20;

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.&#x20;

* 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&#x20;
* O script será encerrado caso a etapa anterior não satisfaça o home indicado e o bash ativado.&#x20;
* Em seguida o script verifica se existe o diretório /home/zabbix. Caso negativo, ele cria o diretório e ajusta as permissões.&#x20;
* 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.

![](https://2304813967-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCU_zijA4r4IkDIJyZG%2F-MhxXTn15vyp4rFyMEOF%2F-MhxYA_fXqqma1_2zGJK%2Fimage.png?alt=media\&token=f9f8e3a9-b84c-49c0-aa96-4490445caac5)

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

IMPORTANTE:&#x20;

* 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&#x20;

*   **Name:** Abrir Chamado TiFlux&#x20;

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

{% embed url="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LCU_zijA4r4IkDIJyZG%2Fuploads%2FyfAq5xXlfVFtFkwUX5rZ%2Ftemplate-tiflux.xml?alt=media&token=18046d90-c9b4-4973-821e-53fe8b9f0d2d" %}
Template Zabbix
{% endembed %}



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

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

![](https://2304813967-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LCU_zijA4r4IkDIJyZG%2F-MhxYGh3K7DRr8YiqNqq%2F-MhxcqoDVUEkRewKEDQn%2Fimage.png?alt=media\&token=8e99d880-bedd-4ca9-b638-98e81407f9d3)

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.&#x20;

    Dúvidas de como gerar, consulte a nossa documentação de API na seção de autenticação, [**acesse aqui**](https://tiflux.docs.apiary.io/#introduction/autenticacao);
* 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:

![](https://2304813967-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LCU_zijA4r4IkDIJyZG%2Fuploads%2FppArjGuCJcGfWeKmxTdg%2FCapturar.PNG?alt=media\&token=20e204fe-c4e5-4e6a-a291-6aea26aec47b)



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

![](https://2304813967-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LCU_zijA4r4IkDIJyZG%2Fuploads%2FKZgm0Tkal8bCZAk5KCuX%2Fimage.png?alt=media\&token=7265ecb2-21c8-47b6-84e1-d6ee84c8aa6a)



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:

![](https://2304813967-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LCU_zijA4r4IkDIJyZG%2Fuploads%2FpvJyr369qDsbGqggU6We%2FCapturar3.PNG?alt=media\&token=e020467e-bfca-4fb8-9731-1d755cf3250b)





**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".
