Se encuentra viendo la documentación de la versión en desarrollo, puede estar incompleta.
Esta página fue traducida automáticamente. Si detectas un error, selecciónalo y presiona Ctrl+Enter para informarlo a los editores.

6 Tipos de medios

Descripción general

Los tipos de medios se exportan con todos los objetos relacionados y relaciones de objetos.

Exportar

Para exportar tipos de medios, haga lo siguiente:

  1. Vaya a AlertasTipos de medios.
  2. Marque las casillas de los tipos de medios a exportar.
  3. Haga clic en Exportar debajo de la lista.

Dependiendo del formato seleccionado, los tipos de medios se exportan a un archivo local con un nombre por defecto:

  • zabbix_export_mediatypes.yaml - en exportación YAML (opción por defecto para exportar);
  • zabbix_export_mediatypes.xml - en exportación XML;
  • zabbix_export_mediatypes.json - en exportación JSON.

Importando

Para importar tipos de medios, haga lo siguiente:

  1. Vaya a AlertasTipos de medios.
  2. Haga clic en Importar en la esquina superior derecha.
  3. Seleccione el archivo de importación.
  4. Marque las opciones requeridas en las reglas de importación.
  5. Haga clic en Importar en la esquina inferior derecha del formulario de configuración.

Reglas de importación:

Regla Descripción
Actualizar existentes Los elementos existentes se actualizarán utilizando los datos del archivo de importación. De lo contrario, no se actualizarán.
Crear nuevos Se crearán nuevos elementos utilizando los datos del archivo de importación. De lo contrario, no se crearán.

Un mensaje de éxito o fallo de la importación se mostrará en la interfaz.

Formato de exportación

Exportar a 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: |
               Por favor, consulte la guía de configuración aquí: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/pushover
               
               Establezca el parámetro token con la clave de su aplicación Pushover.
               Al asignar el medio Pushover al usuario de Zabbix, añada la clave de usuario en el campo enviar a.
             message_templates:
               - event_source: TRIGGERS
                 operation_mode: PROBLEM
                 subject: 'Problema: {EVENT.NAME}'
                 message: |
                   El problema comenzó a las {EVENT.TIME} el {EVENT.DATE}
                   Nombre del problema: {EVENT.NAME}
                   Equipo: {HOST.NAME}
                   Gravedad: {EVENT.SEVERITY}
                   Datos operativos: {EVENT.OPDATA}
                   ID de problema original: {EVENT.ID}
                   {TRIGGER.URL}
               - event_source: TRIGGERS
                 operation_mode: RECOVERY
                 subject: 'Resuelto en {EVENT.DURATION}: {EVENT.NAME}'
                 message: |
                   El problema se ha resuelto a las {EVENT.RECOVERY.TIME} el {EVENT.RECOVERY.DATE}
                   Nombre del problema: {EVENT.NAME}
                   Duración del problema: {EVENT.DURATION}
                   Equipo: {HOST.NAME}
                   Gravedad: {EVENT.SEVERITY}
                   ID de problema original: {EVENT.ID}
                   {TRIGGER.URL}
               - event_source: TRIGGERS
                 operation_mode: UPDATE
                 subject: 'Problema actualizado en {EVENT.AGE}: {EVENT.NAME}'
                 message: |
                   {USER.FULLNAME} {EVENT.UPDATE.ACTION} problema el {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
                   {EVENT.UPDATE.MESSAGE}
                 
                   El estado actual del problema es {EVENT.STATUS}, la antigüedad es {EVENT.AGE}, reconocido: {EVENT.ACK.STATUS}.
               - event_source: DISCOVERY
                 operation_mode: PROBLEM
                 subject: 'Descubrimiento: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}'
                 message: |
                   Regla de descubrimiento: {DISCOVERY.RULE.NAME}
                  
                   IP del dispositivo: {DISCOVERY.DEVICE.IPADDRESS}
                   DNS del dispositivo: {DISCOVERY.DEVICE.DNS}
                   Estado del dispositivo: {DISCOVERY.DEVICE.STATUS}
                   Tiempo en funcionamiento del dispositivo: {DISCOVERY.DEVICE.UPTIME}
                   
                   Nombre del servicio del dispositivo: {DISCOVERY.SERVICE.NAME}
                   Puerto del servicio del dispositivo: {DISCOVERY.SERVICE.PORT}
                   Estado del servicio del dispositivo: {DISCOVERY.SERVICE.STATUS}
                   Tiempo en funcionamiento del servicio del dispositivo: {DISCOVERY.SERVICE.UPTIME}
               - event_source: AUTOREGISTRATION
                 operation_mode: PROBLEM
                 subject: 'Autoregistro: {HOST.HOST}'
                 message: |
                   Nombre del equipo: {HOST.HOST}
                   IP del equipo: {HOST.IP}
                   Puerto del agente: {HOST.PORT}

Elementos exportados

Los elementos exportados se explican en la siguiente tabla.

Elemento Tipo Descripción
name string (obligatorio) Nombre del tipo de medio.
type string (obligatorio) Transporte utilizado por el tipo de medio.
Valores posibles:1 EMAIL (0), SMS (1), SCRIPT (2), WEBHOOK (4).
status string Indica si el tipo de medio está habilitado.
Valores posibles:1 ENABLED (0, por defecto), DISABLED (1)
max_sessions integer El número máximo de alertas que se pueden procesar en paralelo.
Valores posibles para SMS:1 1 (por defecto).
Valores posibles para otros tipos de medio:1 0-100 (donde 0 - ilimitado).
attempts integer El número máximo de intentos para enviar una alerta.
Valores posibles:1 1-10 (por defecto: 3).
attempt_interval string El intervalo (usando segundos o sufijo de tiempo) entre los intentos de reintento.
Valores posibles:1 0-60s (por defecto: 10s).
description string Descripción del tipo de medio.
message_templates Elemento raíz para las plantillas de mensajes del tipo de medio.
event_source string (obligatorio) Fuente del evento.
Valores posibles:1 TRIGGERS (0), DISCOVERY (1), AUTOREGISTRATION (2), INTERNAL (3), SERVICE (4).
operation_mode string Modo de operación.
Valores posibles:1 PROBLEM (0), RECOVERY (1), UPDATE (2).
subject string Asunto del mensaje.
message string Cuerpo del mensaje.

Véase también: Objeto tipo de medio (consulte la propiedad correspondiente con el mismo nombre).

Correo electrónico

Los siguientes elementos adicionales se exportan solo para el tipo de medio Correo electrónico.

Elemento Tipo Descripción
provider string Proveedor de correo electrónico.
smtp_server string Servidor SMTP.
smtp_port integer Puerto del servidor SMTP al que conectarse.
Por defecto: 25.
smtp_helo string SMTP helo.
smtp_email string Dirección de correo electrónico desde la que se enviarán las notificaciones.
smtp_security string Nivel de seguridad de la conexión SMTP a utilizar.
Valores posibles:1 NONE (0, por defecto), STARTTLS (1), SSL_OR_TLS (2).
smtp_verify_host string Verificación SSL del host para SMTP.
Valores posibles:1 NO (0, por defecto), YES (1).
smtp_verify_peer string Verificación SSL del par para SMTP.
Valores posibles:1 NO (0, por defecto), YES (1).
smtp_authentication string Método de autenticación SMTP a utilizar.
Valores posibles:1 NONE (0, por defecto), PASSWORD (1), OAUTH (2).
username string Nombre de usuario.
password string Contraseña de autenticación.
redirection_url string URL del frontend de Zabbix a la que redirigir tras la autorización OAuth.
client_id string Identificador de cliente registrado en el servidor de autorización OAuth.
authorization_url string URL de OAuth, con parámetros, para obtener los tokens de acceso y actualización.
token_url string URL de OAuth para intercambiar el token de autorización por tokens de acceso y actualización.
message_format string Formato del mensaje.
Valores posibles:1 TEXT (0), HTML (1, por defecto).

Véase también: Objeto tipo de medio (consulte la propiedad correspondiente con el mismo nombre).

SMS

Los siguientes elementos adicionales se exportan solo para el tipo de medio SMS.

Elemento Tipo Descripción
gsm_modem string (requerido) Nombre del dispositivo serie del módem GSM.

Consulte también: Objeto tipo de medio (consulte la propiedad relevante con el mismo nombre).

Script

Los siguientes elementos adicionales se exportan solo para el tipo de medio Script.

Elemento Tipo Descripción
nombre del script string (requerido) Nombre del script.
parámetros Elemento raíz para los parámetros del script.
sortorder string (requerido) Orden de los parámetros del script pasados al script como argumentos de línea de comandos.
value string Valor del parámetro del script.

Ver también: Objeto tipo de medio (consulte la propiedad relevante con el mismo nombre).

Webhook

Los siguientes elementos adicionales se exportan solo para el tipo de medio Webhook.

Elemento Tipo Descripción
script string Script.
timeout string Intervalo de tiempo de espera para la solicitud HTTP del script Javascript.
Valores posibles:1 1-60s (por defecto: 30s).
process_tags string Indica si se deben procesar las etiquetas devueltas.
Valores posibles:1 NO (0, por defecto), SÍ (1).
show_event_menu string Indica la presencia de una entrada en el menú de eventos si la macro {EVENT.TAGS.*} se resolvió correctamente en los campos event_menu_url y event_menu_name.
Valores posibles:1 NO (0, por defecto), SÍ (1).
event_menu_url string URL de la entrada del menú de eventos. Soporta la macro {EVENT.TAGS.*}.
event_menu_name string Nombre de la entrada del menú de eventos. Soporta la macro {EVENT.TAGS.*}.
parameters Elemento raíz para los parámetros del tipo de medio webhook.
name string (requerido) Nombre del parámetro del webhook.
value string Valor del parámetro del webhook.

Véase también: Objeto tipo de medio (consulte la propiedad correspondiente con el mismo nombre).

Notas al pie

1 Los valores enteros de la API entre corchetes, por ejemplo, ENABLED (0), se mencionan solo como referencia. Para obtener más información, consulte la página del objeto API enlazada en la entrada de la tabla o al final de cada sección.