20 Extensões

Visão geral

Embora o Zabbix ofereça uma grande variedade de recursos, sempre há espaço para funcionalidades adicionais. As extensões são uma maneira conveniente de modificar e aprimorar os recursos de monitoramento do Zabbix sem alterar seu código-fonte.

Você pode ampliar a funcionalidade do Zabbix usando as opções de extensão incorporadas (itens trapper, parâmetros de usuário, etc.) ou usando ou criando extensões personalizadas (módulos carregáveis, plugins, etc.).

Esta seção fornece uma visão geral com referências a todas as opções de extensão do Zabbix.

Coleta de dados com comandos personalizados

Itens do Trapper

Itens Trapper são itens que aceitam dados recebidos em vez de consultá-los. Os itens trapper são úteis para enviar dados específicos ao servidor Zabbix, por exemplo, dados periódicos de disponibilidade e desempenho no caso de scripts de usuário de longa execução. Você pode fazer isso usando o utilitário de linha de comando [Zabbix sender] (/manual/concepts/sender) ou implementando um [protocolo de comunicação] baseado em JSON(/manual/appendix/items/trapper) (semelhante ao usado no Zabbix sender).

Verificações externas

Uma verificação externa é um item para execução de verificações executando um executável, por exemplo, um shell script ou um binário.

As verificações externas são executadas pelo servidor Zabbix ou pelo proxy (quando o host é monitorado pelo proxy), e não requerem um agente em execução no host que está sendo monitorado.

Parâmetros do usuário

Um parâmetro de usuário é um comando definido pelo usuário (associado a uma chave definida pelo usuário) que, quando executado, pode recuperar os dados necessários do host em que o Zabbix Agent está sendo executado. Os parâmetros do usuário são úteis para configurar itens do agente ou do agente 2 que não estão predefinidos no Zabbix.

system.run[] Itens do agente Zabbix

system.run[] Zabbix item do agente é um item para um comando definido pelo usuário (associado a uma chave predefinida system.run[], por exemplo, system.run[myscript.sh]) que pode ser executado no host onde o Zabbix Agent está sendo executado.

Observação: os itens system.run[] são desativados por padrão e, se usados, devem ser ativados (allowed) e definidos no arquivo de configuração do Zabbix Agent ou Agent 2 (parâmetro de configuração AllowKey).

Comandos definidos pelo usuário em itens como verificações externas, parâmetros do usuário e itens do Zabbix Agent system.run[] são executados pelo usuário do sistema operacional utilizado para executar os componentes do Zabbix. Para executar esses comandos, esse usuário deve ter as permissões necessárias.

Itens do agente HTTP

o item HTTP agent é um item para execução de solicitações de dados por HTTP/HTTPS. Os itens de agente HTTP são úteis para enviar solicitações a pontos de extremidade HTTP para recuperar dados de serviços como Elasticsearch e OpenWeatherMap, para verificar o status da API do Zabbix ou o status do servidor da Web Apache ou Nginx, etc.

Itens de script

Um item de script é um item para execução de código JavaScript definido pelo usuário que recupera dados por HTTP/HTTPS. Os itens de script são úteis quando a funcionalidade fornecida pelos itens do agente HTTP não é suficiente. Por exemplo, em cenários de coleta de dados exigentes que requerem várias etapas ou lógica complexa, um item de script pode ser configurado para fazer uma chamada HTTP e, em seguida, processar os dados recebidos, e, em seguida, passar o valor transformado para uma segunda chamada HTTP.

::: dica de nota Os itens de agente HTTP e os itens de script são suportados pelo Zabbix Server e pelo proxy, e não requerem um agente em execução no host que está sendo monitorado. :::

Extensões avançadas

Módulos carregáveis

Os módulos carregáveis, escritos em C, são uma opção versátil versátil e voltada para o desempenho para estender a funcionalidade dos componentes do Zabbix (servidor, proxy, agente) em plataformas UNIX. Um módulo carregável é basicamente uma biblioteca compartilhada usada pelo daemon do Zabbix e carregada na inicialização. A biblioteca deve conter determinadas funções, para que um processo do Zabbix possa detectar que o arquivo é, de fato, um módulo que pode ser carregado e com o qual pode trabalhar.

Os módulos carregáveis têm vários benefícios, inclusive a capacidade de adicionar novas métricas ou implementar qualquer outra lógica (por exemplo, Zabbix history data export), ótimo desempenho e a opção de desenvolver, usar e compartilhar a funcionalidade que eles fornecem. Isso contribui para uma manutenção sem problemas e ajuda a fornecer novas funcionalidades de forma mais fácil e independente da base de código principal do Zabbix.

Os módulos carregáveis são especialmente úteis em uma configuração de monitoramento complexa. Ao monitorar sistemas incorporados, ter um grande número de parâmetros monitorados ou scripts pesados com lógica complexa ou longo tempo de inicialização, extensões como parâmetros de usuário, itens do agente Zabbix system.run[] e verificações externas terão um impacto no desempenho. Os módulos carregáveis oferecem uma maneira de estender a funcionalidade do Zabbix sem sacrificar o desempenho.

Plugins

Os plug-ins são uma alternativa aos módulos carregáveis (escritos em C). No entanto, os plug-ins são apenas uma forma de estender o agente 2 do Zabbix.

Um plug-in é um pacote Go que define a estrutura e implementa uma ou várias interfaces de plug-in (Exporter, Collector, Configurator, Runner, Watcher). Há suporte para dois tipos de plug-ins do Zabbix Agent 2:

Veja a lista de plugins embutidos.

Para obter instruções e tutoriais sobre como criar seus próprios plug-ins, consulte Developer center.

Personalização de alertas

Webhooks

Um webhook é um tipo de mídia do Zabbix que fornece uma opção para estender os recursos de alerta do Zabbix para softwares externos, como sistemas de helpdesk, chats ou messengers. Da mesma forma que os itens de script, os webhooks são úteis para fazer chamadas HTTP usando código JavaScript personalizado, por exemplo, para enviar notificações para diferentes plataformas, como Microsoft Teams, Discord e Jira. Também é possível retornar alguns dados (por exemplo, sobre tíquetes de helpdesk criados) que são exibidos no Zabbix.

Os webhooks existentes estão disponíveis no [repositório Git] do Zabbix (https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media). Para o desenvolvimento de webhooks personalizados, consulte Diretrizes de desenvolvimento de webhooks.

Scripts de alerta

Um script de alerta é um tipo de mídia do Zabbix que fornece uma opção para criar uma maneira alternativa (script) de lidar com os alertas do Zabbix. Os scripts de alerta são úteis se você não estiver satisfeito com os tipos de mídia existentes para o envio de alertas no Zabbix.

Personalização de front-end

Temas personalizados

É possível alterar a aparência visual do front-end do Zabbix usando temas personalizados. Consulte as instruções sobre como criar e aplicar seus próprios temas.

Módulos de front-end

Os módulos front-end oferecem uma opção para ampliar a funcionalidade do front-end do Zabbix adicionando módulos de terceiros ou desenvolvendo seus próprios módulos. Com os módulos de front-end, você pode adicionar novos itens de menu, suas respectivas visualizações, ações, etc.

Scripts globais

Um script global é um conjunto de comandos definido pelo usuário que pode ser executado em um alvo de monitoramento (pelo interpretador shell (/bin/sh)), dependendo do escopo configurado e das permissões do usuário. Os scripts globais podem ser configurados para as seguintes ações:

Os scripts globais são úteis em muitos casos. Por exemplo, se configurado para operações de ação ou ações manuais do host, você pode usar scripts globais para executar automática ou manualmente [comandos remotos] (/manual/config/notifications/action/operation/remote_command) como reiniciar um aplicativo (servidor da Web, middleware, CRM etc.) ou liberar espaço em disco (remover arquivos antigos, limpar /tmp, etc.). Ou, outro exemplo, se configurado para ações de eventos manuais, você pode usar scripts globais para gerenciar tíquetes de problemas em sistemas externos.

Os scripts globais podem ser executados pelo Zabbix Server, proxy ou agente.

Os comandos definidos pelo usuário são executados a partir do usuário do sistema operacional utilizado para executar os componentes do Zabbix. Para executar esses comandos, esse usuário deve ter as permissões necessárias.

API do Zabbix

a API do Zabbix é uma API baseada em HTTP que faz parte do front-end do Zabbix. Com a API do Zabbix, você pode realizar qualquer uma das seguintes operações:

  • Recuperar e modificar programaticamente a configuração do Zabbix.
  • Importar e exportar a configuração do Zabbix.
  • Acessar dados históricos e de tendências do Zabbix.
  • Configurar aplicativos para trabalhar com o Zabbix.
  • Integrar o Zabbix com software de terceiros.
  • Automatizar tarefas de rotina.

A API do Zabbix consiste em uma multiplicidade de métodos que são nominalmente agrupados em APIs separadas. Cada método executa uma tarefa específica. Para conhecer os métodos disponíveis, bem como uma visão geral das funções fornecidas pela API do Zabbix, consulte API do Zabbix Referência do método.