Você está visualizando a documentação da versão de desenvolvimento, que pode estar incompleta.
Esta página foi traduzida automaticamente. Se você notar um erro, selecione-o e pressione Ctrl+Enter para reportá-lo aos editores.

6 Tipos de mídia

Visão geral

Os tipos de mídia são exportados com todos os objetos relacionados e relações de objetos.

Exportando

Para exportar tipos de mídia, faça o seguinte:

  1. Vá para AlertasTipos de mídia.
  2. Marque as caixas de seleção dos tipos de mídia a serem exportados.
  3. Clique em Exportar abaixo da lista.

Dependendo do formato selecionado, os tipos de mídia são exportados para um arquivo local com um nome padrão:

  • zabbix_export_mediatypes.yaml - na exportação YAML (opção padrão para exportação);
  • zabbix_export_mediatypes.xml - na exportação XML;
  • zabbix_export_mediatypes.json - na exportação JSON.

Importando

Para importar tipos de mídia, faça o seguinte:

  1. Vá para AlertasTipos de mídia.
  2. Clique em Importar no canto superior direito.
  3. Selecione o arquivo de importação.
  4. Marque as opções necessárias nas regras de importação.
  5. Clique em Importar no canto inferior direito do formulário de configuração.

Regras de importação:

Regra Descrição
Atualizar existentes Os elementos existentes serão atualizados usando os dados do arquivo de importação. Caso contrário, eles não serão atualizados.
Criar novos Novos elementos serão criados usando os dados do arquivo de importação. Caso contrário, eles não serão criados.

Uma mensagem de sucesso ou falha da importação será exibida no frontend.

Formato de exportação

Exportar para YAML:

zabbix_export:
         version: '8.0'
         media_types:
           - name: Pushover
             type: WEBHOOK
             parameters:
               - name: endpoint
                 value: 'https://api.pushover.net/1/messages.json'
               - name: eventid
                 value: '{EVENT.ID}'
               - name: event_nseverity
                 value: '{EVENT.NSEVERITY}'
               - name: event_source
                 value: '{EVENT.SOURCE}'
               - name: event_value
                 value: '{EVENT.VALUE}'
               - name: expire
                 value: '1200'
               - name: message
                 value: '{ALERT.MESSAGE}'
               - name: priority_average
                 value: '0'
               - name: priority_default
                 value: '0'
               - name: priority_disaster
                 value: '0'
               - name: priority_high
                 value: '0'
               - name: priority_information
                 value: '0'
               - name: priority_not_classified
                 value: '0'
               - name: priority_warning
                 value: '0'
               - name: retry
                 value: '60'
               - name: title
                 value: '{ALERT.SUBJECT}'
               - name: token
                 value: '<PUSHOVER TOKEN HERE>'
               - name: triggerid
                 value: '{TRIGGER.ID}'
               - name: url
                 value: '{$ZABBIX.URL}'
               - name: url_title
                 value: Zabbix
               - name: user
                 value: '{ALERT.SENDTO}'
             status: DISABLED
             max_sessions: '0'
             script: |
               try {
                   var params = JSON.parse(value),
                       request = new HttpRequest(),
                       data,
                       response,
                       severities = [
                           {name: 'not_classified', color: '#97AAB3'},
                           {name: 'information', color: '#7499FF'},
                           {name: 'warning', color: '#FFC859'},
                           {name: 'average', color: '#FFA059'},
                           {name: 'high', color: '#E97659'},
                           {name: 'disaster', color: '#E45959'},
                           {name: 'resolved', color: '#009900'},
                           {name: 'default', color: '#000000'}
                       ],
                       priority;
               
                   if (typeof params.HTTPProxy === 'string' && params.HTTPProxy.trim() !== '') {
                       request.setProxy(params.HTTPProxy);
                   }
           
                   if ([0, 1, 2, 3].indexOf(parseInt(params.event_source)) === -1) {
                       throw 'Incorrect "event_source" parameter given: "' + params.event_source + '".\nMust be 0-3.';
                   }
              
                   if (params.event_value !== '0' && params.event_value !== '1'
                       && (params.event_source === '0' || params.event_source === '3')) {
                       throw 'Incorrect "event_value" parameter given: ' + params.event_value + '\nMust be 0 or 1.';
                   }
             
                   if ([0, 1, 2, 3, 4, 5].indexOf(parseInt(params.event_nseverity)) === -1) {
                       params.event_nseverity = '7';
                   }
             
                   if (params.event_value === '0') {
                       params.event_nseverity = '6';
                   }
            
                   priority = params['priority_' + severities[params.event_nseverity].name] || params.priority_default;
             
                   if (isNaN(priority) || priority < -2 || priority > 2) {
                       throw '"priority" should be -2..2';
                   }
             
                   if (params.event_source === '0' && isNaN(params.triggerid)) {
                       throw 'field "triggerid" is not a number';
                   }
             
                   if (isNaN(params.eventid)) {
                       throw 'field "eventid" is not a number';
                   }
             
                   if (typeof params.message !== 'string' || params.message.trim() === '') {
                       throw 'field "message" cannot be empty';
                   }
               
                   data = {
                       token: params.token,
                       user: params.user,
                       title: params.title,
                       message: params.message,
                       url: (params.event_source === '0') 
                           ? params.url + '/tr_events.php?triggerid=' + params.triggerid + '&eventid=' + params.eventid
                           : params.url,
                       url_title: params.url_title,
                       priority: priority
                   };
               
                   if (priority == 2) {
                       if (isNaN(params.retry) || params.retry < 30) {
                           throw 'field "retry" should be a number with value of at least 30 if "priority" is set to 2';
                       }
              
                       if (isNaN(params.expire) || params.expire > 10800) {
                           throw 'field "expire" should be a number with value of at most 10800 if "priority" is set to 2';
                       }
               
                       data.retry = params.retry;
                       data.expire = params.expire;
                   }
              
                   data = JSON.stringify(data);
                   Zabbix.log(4, '[ Pushover Webhook ] Sending request: ' + params.endpoint + '\n' + data);
           
                   request.addHeader('Content-Type: application/json');
                   response = request.post(params.endpoint, data);
              
                   Zabbix.log(4, '[ Pushover Webhook ] Received response with status code ' + request.getStatus() + '\n' + response);
              
                   if (response !== null) {
                       try {
                           response = JSON.parse(response);
                       }
                       catch (error) {
                           Zabbix.log(4, '[ Pushover Webhook ] Failed to parse response received from Pushover');
                           response = null;
                       }
                   }
              
                   if (request.getStatus() != 200 || response === null || typeof response !== 'object' || response.status !== 1) {
                       if (response !== null && typeof response === 'object' && typeof response.errors === 'object'
                               && typeof response.errors[0] === 'string') {
                           throw response.errors[0];
                       }
                       else {
                           throw 'Unknown error. Check debug log for more information.';
                       }
                   }
               
                   return 'OK';
               }
               catch (error) {
                   Zabbix.log(4, '[ Pushover Webhook ] Pushover notification failed: ' + error);
                   throw 'Pushover notification failed: ' + error;
               }
             description: |
               Consulte o guia de configuração aqui: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/pushover
               
               Defina o parâmetro token com a chave do seu aplicativo Pushover.
               Ao atribuir o meio Pushover ao usuário do Zabbix - adicione a chave do usuário no campo enviar para.
             message_templates:
               - event_source: TRIGGERS
                 operation_mode: PROBLEM
                 subject: 'Problema: {EVENT.NAME}'
                 message: |
                   Problema iniciado às {EVENT.TIME} em {EVENT.DATE}
                   Nome do problema: {EVENT.NAME}
                   Host: {HOST.NAME}
                   Gravidade: {EVENT.SEVERITY}
                   Dados operacionais: {EVENT.OPDATA}
                   ID do problema original: {EVENT.ID}
                   {TRIGGER.URL}
               - event_source: TRIGGERS
                 operation_mode: RECOVERY
                 subject: 'Resolvido em {EVENT.DURATION}: {EVENT.NAME}'
                 message: |
                   O problema foi resolvido às {EVENT.RECOVERY.TIME} em {EVENT.RECOVERY.DATE}
                   Nome do problema: {EVENT.NAME}
                   Duração do problema: {EVENT.DURATION}
                   Host: {HOST.NAME}
                   Gravidade: {EVENT.SEVERITY}
                   ID do problema original: {EVENT.ID}
                   {TRIGGER.URL}
               - event_source: TRIGGERS
                 operation_mode: UPDATE
                 subject: 'Problema atualizado em {EVENT.AGE}: {EVENT.NAME}'
                 message: |
                   {USER.FULLNAME} {EVENT.UPDATE.ACTION} problema em {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
                   {EVENT.UPDATE.MESSAGE}
                 
                   O status atual do problema é {EVENT.STATUS}, idade é {EVENT.AGE}, reconhecido: {EVENT.ACK.STATUS}.
               - event_source: DISCOVERY
                 operation_mode: PROBLEM
                 subject: 'Descoberta: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}'
                 message: |
                   Regra de descoberta: {DISCOVERY.RULE.NAME}
                  
                   IP do dispositivo: {DISCOVERY.DEVICE.IPADDRESS}
                   DNS do dispositivo: {DISCOVERY.DEVICE.DNS}
                   Status do dispositivo: {DISCOVERY.DEVICE.STATUS}
                   Tempo de atividade do dispositivo: {DISCOVERY.DEVICE.UPTIME}
                   
                   Nome do serviço do dispositivo: {DISCOVERY.SERVICE.NAME}
                   Porta do serviço do dispositivo: {DISCOVERY.SERVICE.PORT}
                   Status do serviço do dispositivo: {DISCOVERY.SERVICE.STATUS}
                   Tempo de atividade do serviço do dispositivo: {DISCOVERY.SERVICE.UPTIME}
               - event_source: AUTOREGISTRATION
                 operation_mode: PROBLEM
                 subject: 'Autoregistro: {HOST.HOST}'
                 message: |
                   Nome do host: {HOST.HOST}
                   IP do host: {HOST.IP}
                   Porta do agent: {HOST.PORT}

Elementos exportados

Os elementos exportados são explicados na tabela abaixo.

Elemento Tipo Descrição
name string (obrigatório) Nome do tipo de mídia.
type string (obrigatório) Transporte usado pelo tipo de mídia.
Valores possíveis:1 EMAIL (0), SMS (1), SCRIPT (2), WEBHOOK (4).
status string Se o tipo de mídia está habilitado.
Valores possíveis:1 ENABLED (0, padrão), DISABLED (1)
max_sessions integer O número máximo de alertas que podem ser processados em paralelo.
Valores possíveis para SMS:1 1 (padrão).
Valores possíveis para outros tipos de mídia:1 0-100 (onde 0 - ilimitado).
attempts integer O número máximo de tentativas para enviar um alerta.
Valores possíveis:1 1-10 (padrão: 3).
attempt_interval string O intervalo (usando segundos ou sufixo de tempo) entre as tentativas de reenvio.
Valores possíveis:1 0-60s (padrão: 10s).
description string Descrição do tipo de mídia.
message_templates Elemento raiz para modelos de mensagem do tipo de mídia.
event_source string (obrigatório) Fonte do evento.
Valores possíveis:1 TRIGGERS (0), DISCOVERY (1), AUTOREGISTRATION (2), INTERNAL (3), SERVICE (4).
operation_mode string Modo de operação.
Valores possíveis:1 PROBLEM (0), RECOVERY (1), UPDATE (2).
subject string Assunto da mensagem.
message string Corpo da mensagem.

Veja também: Objeto de tipo de mídia (consulte a propriedade relevante com o nome correspondente).

Email

Os seguintes elementos adicionais são exportados apenas para o tipo de mídia Email.

Elemento Tipo Descrição
provider string Provedor de e-mail.
smtp_server string Servidor SMTP.
smtp_port integer Porta do servidor SMTP para conectar.
Padrão: 25.
smtp_helo string SMTP helo.
smtp_email string Endereço de e-mail do qual as notificações serão enviadas.
smtp_security string Nível de segurança da conexão SMTP a ser usado.
Valores possíveis:1 NONE (0, padrão), STARTTLS (1), SSL_OR_TLS (2).
smtp_verify_host string Verificação de host SSL para SMTP.
Valores possíveis:1 NO (0, padrão), YES (1).
smtp_verify_peer string Verificação de peer SSL para SMTP.
Valores possíveis:1 NO (0, padrão), YES (1).
smtp_authentication string Método de autenticação SMTP a ser usado.
Valores possíveis:1 NONE (0, padrão), PASSWORD (1), OAUTH (2).
username string Nome de usuário.
password string Senha de autenticação.
redirection_url string URL do frontend do Zabbix para redirecionar a autorização OAuth.
client_id string Identificador do cliente registrado no servidor de autorização OAuth.
authorization_url string URL OAuth, com parâmetros, para obter tokens de acesso e atualização.
token_url string URL OAuth para trocar o token de autorização por tokens de acesso e atualização.
message_format string Formato da mensagem.
Valores possíveis:1 TEXT (0), HTML (1, padrão).

Veja também: Objeto media type (consulte a propriedade relevante com o nome correspondente).

SMS

Os seguintes elementos adicionais são exportados apenas para o tipo de mídia SMS.

Elemento Tipo Descrição
gsm_modem string (obrigatório) Nome do dispositivo serial do modem GSM.

Veja também: Objeto de tipo de mídia (consulte a propriedade relevante com o nome correspondente).

Script

Os seguintes elementos adicionais são exportados apenas para o tipo de mídia Script.

Elemento Tipo Descrição
script name string (obrigatório) Nome do script.
parameters Elemento raiz para parâmetros do script.
sortorder string (obrigatório) Ordem dos parâmetros do script passados para o script como argumentos de linha de comando.
value string Valor do parâmetro do script.

Veja também: Objeto media type (consulte a propriedade relevante com o nome correspondente).

Webhook

Os seguintes elementos adicionais são exportados apenas para o tipo de mídia Webhook.

Elemento Tipo Descrição
script string Script.
timeout string Intervalo de tempo limite para requisição HTTP do script Javascript.
Valores possíveis:1 1-60s (padrão: 30s).
process_tags string Se as tags retornadas devem ser processadas.
Valores possíveis:1 NO (0, padrão), YES (1).
show_event_menu string Indica a presença de uma entrada no menu de eventos se a macro {EVENT.TAGS.*} foi resolvida com sucesso nos campos event_menu_url e event_menu_name.
Valores possíveis:1 NO (0, padrão), YES (1).
event_menu_url string URL da entrada do menu de eventos. Suporta a macro {EVENT.TAGS.*}.
event_menu_name string Nome da entrada do menu de eventos. Suporta a macro {EVENT.TAGS.*}.
parameters Elemento raiz para parâmetros do tipo de mídia webhook.
name string (obrigatório) Nome do parâmetro do webhook.
value string Valor do parâmetro do webhook.

Veja também: Objeto media type (consulte a propriedade relevante com o nome correspondente).

Notas de rodapé

1 Os valores inteiros da API entre parênteses, por exemplo, ENABLED (0), são mencionados apenas para referência. Para obter mais informações, consulte a página do objeto da API vinculada na entrada da tabela ou no final de cada seção.