en	# 21 Extensions
pt-br	# 21 Extensões

en	#### Overview Although Zabbix offers a multiplicity of features, there is always room for additional functionality. Extensions are a convenient way of modifying and enhancing the monitoring capabilities of Zabbix without changing its source code. You can extend Zabbix functionality either by using built-in extension options (trapper items, user parameters, etc.) or by using or creating custom extensions (loadable modules, plugins, etc.). This section provides an overview with references to all the options for extending Zabbix.
pt-br	#### 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.

en	#### Data collection with custom commands
pt-br	#### Coleta de dados com comandos personalizados

en	##### Trapper items [Trapper items](/manual/config/items/itemtypes/trapper) are items that accept incoming data instead of querying for it. Trapper items are useful for sending specific data to Zabbix server or proxy, for example, periodic availability and performance data in the case of long-running user scripts. Sending data to Zabbix server or proxy is possible using the [Zabbix sender](/manual/concepts/sender) utility or Zabbix sender [protocol](/manual/appendix/protocols/zabbix_sender). Sending data to Zabbix server is also possible using the [`history.push`](/manual/api/reference/history/push) API method.
pt-br	##### Itens trapper [Itens trapper](/manual/config/items/itemtypes/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](/manual/concepts/sender) ou o [protocolo](/manual/appendix/protocols/zabbix_sender) do Zabbix sender. O envio de dados para o servidor Zabbix também é possível usando o método de API [`history.push`](/manual/api/reference/history/push).

en	##### External checks An [external check](/manual/config/items/itemtypes/external) is an item for executing checks by running an executable, for example, a [shell script](/manual/appendix/command_execution) or a binary. External checks are executed by Zabbix server or proxy (when host is monitored by proxy), and do not require an agent running on the host being monitored.
pt-br	##### Verificações externas Uma [verificação externa](/manual/config/items/itemtypes/external) é um item para execução de verificações executando um executável, por exemplo, um [shell script](/manual/appendix/command_execution) 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.

en	##### User parameters A [user parameter](/manual/config/items/userparameters) is a user-defined command (associated with a user-defined key) that, when executed, can retrieve the data you need from the host where Zabbix agent is running. User parameters are useful for configuring agent or agent 2 items that are not predefined in Zabbix.
pt-br	##### Parâmetros do usuário Um [parâmetro de usuário](/manual/config/items/userparameters) é 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.

en	##### `system.run[]` Zabbix agent items `system.run[]` Zabbix [agent item](/manual/config/items/itemtypes/zabbix_agent#system.run) is an item for a user-defined command (associated with a predefined key `system.run[]`, for example, `system.run[myscript.sh]`) that can be executed on the host where Zabbix agent is running. Note: `system.run[]` items are disabled by default and, if used, must be enabled ([allowed](/manual/config/items/restrict_checks)) and defined in the Zabbix agent or agent 2 configuration file (`AllowKey` configuration parameter).
pt-br	##### Itens do agent Zabbix `system.run[]` O [item do agent](/manual/config/items/itemtypes/zabbix_agent#system.run) Zabbix `system.run[]` é um item para um comando definido pelo usuário (associado à chave predefinida `system.run[]`, por exemplo, `system.run[myscript.sh]`) que pode ser executado no host onde o agent Zabbix está em execução. Nota: os itens `system.run[]` estão desabilitados por padrão e, se usados, devem ser habilitados ([permitidos](/manual/config/items/restrict_checks)) e definidos no arquivo de configuração do agent Zabbix ou agent 2 (parâmetro de configuração `AllowKey`).

en	::: noteimportant User-defined commands in items such as external checks, user parameters and `system.run[]` Zabbix agent items are executed from the OS user that is used to run Zabbix components. To execute these commands, this user must have the necessary permissions. :::
pt-br	::: notaimportante 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. :::

en	##### HTTP agent items [HTTP agent](/manual/config/items/itemtypes/http) item is an item for executing data requests over HTTP/HTTPS. HTTP agent items are useful for sending requests to HTTP endpoints to retrieve data from services such as *Elasticsearch* and *OpenWeatherMap*, for checking the status of Zabbix API or the status of Apache or Nginx web server, etc. HTTP agent items (with trapping enabled) can also function as [trapper items](#trapper-items).
pt-br	##### Items do agente HTTP O item [agente HTTP](/manual/config/items/itemtypes/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](#trapper-items).

en	##### Script items A [script item](/manual/config/items/itemtypes/script) is an item for executing user-defined JavaScript code that retrieves data over HTTP/HTTPS. Script items are useful when the functionality provided by HTTP agent items is not enough. For example, in demanding data collection scenarios that require multiple steps or complex logic, a script item can be configured to make an HTTP call, then process the data received, and then pass the transformed value to a second HTTP call.
pt-br	##### Itens de script Um [item de script](/manual/config/items/itemtypes/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.

en	::: notetip HTTP agent items and script items are supported by Zabbix server and proxy, and do not require an agent running on the host being monitored. :::
pt-br	::: 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. :::

en	#### Advanced extensions
pt-br	#### Extensões avançadas

en	##### Loadable modules [Loadable modules](/manual/extensions/loadablemodules), written in C, are a versatile and performance-minded option for extending the functionality of Zabbix components (server, proxy, agent) on UNIX platforms. A loadable module is basically a shared library used by Zabbix daemon and loaded on startup. The library should contain certain functions, so that a Zabbix process may detect that the file is indeed a module it can load and work with. Loadable modules have a number of benefits, including the ability to add new metrics or implement any other logic (for example, Zabbix [history data export](/manual/extensions/loadablemodules#providing-history-export-callbacks)), great performance, and the option to develop, use and share the functionality they provide. It contributes to trouble-free maintenance and helps to deliver new functionality easier and independently of the Zabbix core code base. Loadable modules are especially useful in a complex monitoring setup. When monitoring embedded systems, having a large number of monitored parameters or heavy scripts with complex logic or long startup time, extensions such as user parameters, `system.run[]` Zabbix agent items, and external checks will have an impact on performance. Loadable modules offer a way of extending Zabbix functionality without sacrificing performance.
pt-br	##### Módulos carregáveis [Os módulos carregáveis](/manual/extensions/loadablemodules), 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](/manual/extensions/loadablemodules#providing-history-export-callbacks)), ó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.

en	##### Plugins Plugins extend the monitoring capabilities of Zabbix agent 2. Written in the Go programming language, they provide an alternative to loadable modules (written in C). A plugin is a Go package that defines the structure and implements one or several plugin interfaces (*Exporter*, *Collector*, *Configurator*, *Runner*, *Watcher*). Two types of Zabbix agent 2 plugins are supported: - [Built-in plugins](https://www.zabbix.com/documentation/guidelines/en/plugins/built_in_plugins) (supported since Zabbix 4.4.0) - [Loadable plugins](https://www.zabbix.com/documentation/guidelines/en/plugins/loadable_plugins) (supported since Zabbix 6.0.0) See the list of [plugins](/manual/extensions/plugins#built-in-plugins) provided by Zabbix. For instructions and tutorials on creating your own plugins, see [Developer center](/devel/plugins).
pt-br	##### Plugins Plugins estendem as capacidades de monitoramento do Zabbix agent 2. Escritos na linguagem de programação Go, eles fornecem uma alternativa aos módulos carregáveis (escritos em C). Um plugin é um pacote Go que define a estrutura e implementa uma ou várias interfaces de plugin (*Exporter*, *Collector*, *Configurator*, *Runner*, *Watcher*). Dois tipos de plugins do Zabbix agent 2 são suportados: - [Plugins embutidos](https://www.zabbix.com/documentation/guidelines/en/plugins/built_in_plugins) (suportados desde o Zabbix 4.4.0) - [Plugins carregáveis](https://www.zabbix.com/documentation/guidelines/en/plugins/loadable_plugins) (suportados desde o Zabbix 6.0.0) Veja a lista de [plugins](/manual/extensions/plugins#built-in-plugins) fornecidos pelo Zabbix. Para instruções e tutoriais sobre como criar seus próprios plugins, consulte o [Centro de desenvolvedores](/devel/plugins).

en	#### Alert customization
pt-br	#### Personalização de alertas

en	##### Webhooks A [webhook](/manual/config/notifications/media/webhook) is a Zabbix [media type](/manual/config/notifications/media) that provides an option to extend Zabbix alerting capabilities to external software such as helpdesk systems, chats, or messengers. Similarly to script items, webhooks are useful for making HTTP calls using custom JavaScript code, for example, to push notifications to different platforms such as Microsoft Teams, Discord, and Jira. It is also possible to return some data (for example, about created helpdesk tickets) that is then displayed in Zabbix. Existing webhooks are available in the Zabbix [Git repository](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media?at=refs%2Fheads%2Frelease%2F7.4). For custom webhook development, see [Webhook development guidelines](https://www.zabbix.com/documentation/guidelines/en/webhooks).
pt-br	##### Webhooks Um [webhook](/manual/config/notifications/media/webhook) é um [tipo de mídia](/manual/config/notifications/media) 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](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media?at=refs%2Fheads%2Frelease%2F7.4). Para desenvolvimento de webhooks personalizados, consulte as [Diretrizes de desenvolvimento de Webhook](https://www.zabbix.com/documentation/guidelines/en/webhooks).

en	##### Alert scripts An [alert script](/manual/config/notifications/media/script) is a Zabbix [media type](/manual/config/notifications/media) that provides an option to create an alternative way (script) to handle Zabbix alerts. Alert scripts are useful if you are not satisfied with the existing media types for sending alerts in Zabbix.
pt-br	##### Scripts de alerta Um [script de alerta](/manual/config/notifications/media/script) é um [tipo de mídia](/manual/config/notifications/media) 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.

en	#### Frontend customization
pt-br	#### Personalização de front-end

en	##### Custom themes It is possible to change Zabbix frontend visual appearance by using custom themes. See the [instructions](/manual/web_interface/theming) on creating and applying your own themes.
pt-br	##### Temas personalizados É possível alterar a aparência visual do frontend do Zabbix usando temas personalizados. Veja as [instruções](/manual/web_interface/theming) para criar e aplicar seus próprios temas.

en	##### Frontend modules [Frontend modules](/manual/extensions/frontendmodules) provide an option to extend Zabbix frontend functionality by adding third-party modules or by developing your own. With frontend modules you can add new menu items, their respective views, actions, etc.
pt-br	##### Módulos de front-end [Os módulos front-end](/manual/extensions/frontendmodules) 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.

en	#### Global scripts A [global script](/manual/web_interface/frontend_sections/alerts/scripts) is a user-defined set of commands that can be executed on a monitoring target (by shell (/bin/sh) interpreter), depending on the configured scope and user permissions. Global scripts can be configured for the following actions: - Action [operation](/manual/config/notifications/action/operation) - [Manual host action](/manual/web_interface/menu/host_menu#overview) - [Manual event action](/manual/web_interface/menu/event_menu#content) Global scripts are useful in many cases. For example, if configured for action operations or manual host actions, you can use global scripts to automatically or manually execute [remote commands](/manual/config/notifications/action/operation/remote_command) such as restarting an application (web server, middleware, CRM, etc.) or freeing disk space (removing older files, cleaning `/tmp`, etc). Or, another example, if configured for manual event actions, you can use global scripts to manage problem tickets in external systems. Global scripts can be executed by Zabbix server, proxy or agent.
pt-br	#### Scripts globais Um [script global](/manual/web_interface/frontend_sections/alerts/scripts) é 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: - Ação [operação](/manual/config/notifications/action/operation) - [Ação manual de host](/manual/web_interface/menu/host_menu#overview) - [Ação manual de evento](/manual/web_interface/menu/event_menu#content) 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.

en	::: noteimportant User-defined commands are executed from the OS user that is used to run Zabbix components. To execute these commands, this user must have the necessary permissions. :::
pt-br	::: notaimportante 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. :::

en	#### Zabbix API [Zabbix API](/manual/api) is an HTTP-based API that is part of Zabbix frontend. With Zabbix API, you can do any of the following operations: - Programmatically retrieve and modify the configuration of Zabbix. - Import and export Zabbix configuration. - Access Zabbix historical and trend data. - Configure applications to work with Zabbix. - Integrate Zabbix with third-party software. - Automate routine tasks. Zabbix API consists of a multiplicity of methods that are nominally grouped into separate APIs. Each method performs a specific task. For the available methods, as well as an overview of the functions provided by Zabbix API, see Zabbix API [Method reference](/manual/api/reference).
pt-br	#### API do Zabbix a [API do Zabbix](/manual/api) é 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](/manual/api/reference).