Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

21 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 trapper

Itens trapper são itens que aceitam dados recebidos em vez de consultá-los. Itens trapper são úteis para enviar dados específicos para o servidor ou proxy Zabbix, por exemplo, dados periódicos de disponibilidade e desempenho no caso de scripts de usuário de longa execução. O envio de dados para o servidor ou proxy Zabbix é possível usando o utilitário Zabbix sender ou o protocolo do Zabbix sender. O envio de dados para o servidor Zabbix também é possível usando o método de API history.push.

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.

Items do agente HTTP

O item agente HTTP é um item para executar solicitações de dados via HTTP/HTTPS. Os itens do agente HTTP são úteis para enviar solicitações para endpoints HTTP para recuperar dados de serviços como Elasticsearch e OpenWeatherMap, para verificar o status da API do Zabbix ou o status do servidor web Apache ou Nginx, etc. Os itens do agente HTTP (com captura habilitada) também podem funcionar como itens trapper.

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 oferece uma opção para estender as capacidades de alerta do Zabbix para softwares externos, como sistemas de helpdesk, chats ou mensageiros. Semelhante aos 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 tickets de helpdesk criados) que são então exibidos no Zabbix.

Os webhooks existentes estão disponíveis no repositório Git do Zabbix. Para desenvolvimento de webhooks personalizados, consulte as Diretrizes de desenvolvimento de Webhook.

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 frontend do Zabbix usando temas personalizados. Veja as instruções para 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.