O tipo de mídia webhook é útil para chamadas HTTP customizadas de código JavaScript para integração direta com software externos como sistemas de helpdesk, chats, ou mensageiros. Você pode escolher importar uma integração provida pelo Zabbix ou criar uma integração customizada do zero.
As seguintes integrações estão disponíveis, permitindo que tipos de mídia de webhook predefinidos sejam usados para enviar notificações do Zabbix para:
Além dos serviços listados aqui, o Zabbix pode ser integrado com Spiceworks (nenhum webhook é necessário). Para converter notificações do Zabbix em tickets do Spiceworks, crie um email media type e insira o endereço de email do helpdesk do Spiceworks (por exemplo, [email protected]) nas configurações de perfil de um usuário designado do Zabbix.
Para começar a usar uma integração de webhook:
templates/media
da versão baixada do Zabbix ou baixe-o do git repositoryPara criar um webhook personalizado do zero:
A aba Tipo de mídia contém vários atributos específicos para este tipo de mídia:
Todos os campos obrigatórios são marcados com um asterisco vermelho.
Parâmetro | Descrição |
---|---|
Parâmetros | Especifique as variáveis do webhook como pares de atributos e valores. Para webhooks preconfigurados, uma lista de parâmetros varia, dependendo do serviço. Verifique o arquivo Readme.md do webhook para a descrição dos parâmetros. Para novos webhooks, múltiplas variáveis comuns são incluídas por padrão (URL:<empty>, HTTPProxy:<empty>, To:{ALERT.SENDTO}, Subject:{ALERT.SUBJECT}, Message:{ALERT.MESSAGE}), sinta-se à vontade para mantê-las ou removê-las. Todos os macros macros que são suportados em notificações de problemas são suportados nos parâmetros. Se você especificar um proxy HTTP, o campo suporta a mesma funcionalidade que no campo de configuração do item do HTTP proxy. A string do proxy pode ser prefixada com [scheme]:// para especificar qual tipo de proxy é usado (por exemplo, https, socks4, socks5; veja a documentação) documentation). |
Script | Insira o código JavaScript no bloco que aparece ao clicar no campo do parâmetro (ou no botão de visualização/edição ao lado dele). Este código executará a operação do webhook. O script é um código de função que aceita pares de parâmetro - valor. Os valores devem ser convertidos em objetos JSON usando o método JSON.parse(), por exemplo: var params = JSON.parse(value); .O código tem acesso a todos os parâmetros, pode executar solicitações HTTP GET, POST, PUT e DELETE e tem controle sobre os cabeçalhos HTTP e o corpo da solicitação. O script deve conter um operador return, caso contrário, não será válido. Pode retornar o status OK junto com uma lista opcional de tags e valores de tags (veja a opção Processar tags) ou uma string de erro. Observe que o script é executado apenas após a criação de um alerta. Se o script estiver configurado para retornar e processar tags, essas tags não serão resolvidas nos macros {EVENT.TAGS} e {EVENT.RECOVERY.TAGS} na mensagem inicial do problema e nas mensagens de recuperação, pois o script ainda não teve tempo de ser executado. Nota: Usar variáveis locais em vez de globais é recomendado para garantir que cada script opere em seus próprios dados e que não haja colisões entre chamadas simultâneas (veja known issues). Veja também: Webhook development guidelines, Webhook script examples, Additional JavaScript objects. |
Timeout | Tempo limite de execução do JavaScript (1-60s, padrão 30s). Sufixos de tempo são suportados, por exemplo, 30s, 1m. |
Processar tags | Marque a caixa de seleção para processar valores de propriedades JSON retornadas como tags. Essas tags são adicionadas às tags de eventos de problema já existentes (se houver) no Zabbix. Se um webhook usar tags (a caixa de seleção Processar tags estiver marcada), o webhook deve sempre retornar um objeto JSON contendo pelo menos um objeto vazio para tags: var result = {tags: {}}; .Exemplos de tags que podem ser retornadas: Jira ID: PROD-1234, Responsible: John Smith, Processed:<no value>, etc. |
Incluir entrada no menu de eventos | Marque a caixa de seleção para incluir uma entrada no event menu vinculando ao ticket externo criado. Se marcado, o webhook não deve ser usado para enviar notificações para diferentes usuários (considere criar um dedicated user em vez disso) ou em várias ações de alerta related to a single problem event. |
Nome da entrada no menu | Especifique o nome da entrada no menu. {EVENT.TAGS.<tag name>} macro é suportado. Este campo é obrigatório apenas se Incluir entrada no menu de eventos estiver selecionado. |
URL da entrada no menu | Especifique o URL subjacente da entrada no menu. {EVENT.TAGS.<tag name>} macro é suportado. Este campo é obrigatório apenas se Incluir entrada no menu de eventos estiver selecionado. |
Para mais detalhes sobre como configurar mensagens padrão e opções de processamento de alertas, consulte common media type parameters.
Mesmo que um webhook não use mensagens padrão, os templates de mensagens para tipos de operação usados por este webhook ainda devem ser definidos.
Depois que o tipo de mídia estiver configurado, vá para a seção Administração → Usuários e atribua a mídia do webhook a um usuário existente ou crie um novo usuário para representar o webhook. Os passos para configurar a mídia do usuário para um usuário existente, sendo comum para todos os tipos de mídia, estão descritos na página Media types .
Se um webhook usar tags para armazenar o ID do ticket/mensagem, evite atribuir o mesmo webhook como mídia a diferentes usuários, pois isso pode causar erros no webhook (aplica-se à maioria dos webhooks que utilizam a opção Incluir entrada no menu de eventos). Nesse caso, a melhor prática é criar um usuário dedicado para representar o webhook:
Ao configurar a ação de alerta, adicione este usuário no campo Enviar para usuários nos detalhes da operação - isso informará ao Zabbix para usar o webhook para notificações desta ação.
As ações determinam quais notificações devem ser enviadas via webhook. Os passos para configurar ações configuring actions envolvendo webhooks são os mesmos que para todos os outros tipos de mídia, com as seguintes exceções: