Los tipos de medios se exportan con todos los objetos relacionados y las relaciones entre objetos.
Para exportar tipos de medios, haga lo siguiente:
Según el formato seleccionado, los tipos de medios se exportan a un archivo local con un nombre predeterminado:
zabbix_export_mediatypes.yaml
- en exportación YAML (opción predeterminada para exportar);zabbix_export_mediatypes.xml
- en exportación XML;zabbix_export_mediatypes.json
- en exportación JSON.Para importar tipos de medios, haga lo siguiente:
Reglas de importación:
Regla | Descripción |
---|---|
Actualizar existente | Los elementos existentes se actualizarán utilizando los datos del archivo de importación. De lo contrario, no se actualizarán. |
Crear nuevo | Se crearán nuevos elementos utilizando los datos del archivo de importación. En caso contrario no se crearán. |
Se mostrará un mensaje de éxito o fracaso de la importación en la interfaz.
Exportar a YAML:
zabbix_export:
version: '7.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: |
Please refer to setup guide here: https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/pushover
Set token parameter with to your Pushover application key.
When assigning Pushover media to the Zabbix user - add user key into send to field.
message_templates:
- event_source: TRIGGERS
operation_mode: PROBLEM
subject: 'Problem: {EVENT.NAME}'
message: |
Problem started at {EVENT.TIME} on {EVENT.DATE}
Problem name: {EVENT.NAME}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Operational data: {EVENT.OPDATA}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
- event_source: TRIGGERS
operation_mode: RECOVERY
subject: 'Resolved in {EVENT.DURATION}: {EVENT.NAME}'
message: |
Problem has been resolved at {EVENT.RECOVERY.TIME} on {EVENT.RECOVERY.DATE}
Problem name: {EVENT.NAME}
Problem duration: {EVENT.DURATION}
Host: {HOST.NAME}
Severity: {EVENT.SEVERITY}
Original problem ID: {EVENT.ID}
{TRIGGER.URL}
- event_source: TRIGGERS
operation_mode: UPDATE
subject: 'Updated problem in {EVENT.AGE}: {EVENT.NAME}'
message: |
{USER.FULLNAME} {EVENT.UPDATE.ACTION} problem at {EVENT.UPDATE.DATE} {EVENT.UPDATE.TIME}.
{EVENT.UPDATE.MESSAGE}
Current problem status is {EVENT.STATUS}, age is {EVENT.AGE}, acknowledged: {EVENT.ACK.STATUS}.
- event_source: DISCOVERY
operation_mode: PROBLEM
subject: 'Discovery: {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}'
message: |
Discovery rule: {DISCOVERY.RULE.NAME}
Device IP: {DISCOVERY.DEVICE.IPADDRESS}
Device DNS: {DISCOVERY.DEVICE.DNS}
Device status: {DISCOVERY.DEVICE.STATUS}
Device uptime: {DISCOVERY.DEVICE.UPTIME}
Device service name: {DISCOVERY.SERVICE.NAME}
Device service port: {DISCOVERY.SERVICE.PORT}
Device service status: {DISCOVERY.SERVICE.STATUS}
Device service uptime: {DISCOVERY.SERVICE.UPTIME}
- event_source: AUTOREGISTRATION
operation_mode: PROBLEM
subject: 'Autoregistration: {HOST.HOST}'
message: |
Host name: {HOST.HOST}
Host IP: {HOST.IP}
Agent port: {HOST.PORT}
Los valores de las etiquetas de los elementos se explican en la siguiente tabla.
Elemento | Propiedad del elemento | Obligatorio | Tipo | Rango1 | Descripción |
---|---|---|---|---|---|
media_types | - | Elemento raíz para media_types. | |||
name | x | cadena |
Nombre del tipo de medio. | ||
type | x | cadena |
0 - CORREO ELECTRÓNICO 1 - SMS 2 - SCRIPT 4 - WEBHOOK |
Transporte utilizado por el tipo de medio. | |
status | - | cadena |
0 - HABILITADO (predeterminado) 1 - DESHABILITADO |
Si el tipo de medio está habilitado. | |
max_sessions | - | entero |
Valores posibles para SMS: 1 - (predeterminado) Valores posibles para otros tipos de medios: 0-100, 0 - ilimitado |
El número máximo de alertas que pueden procesarse en paralelo. | |
attempts | - | integer |
1-10 (predeterminado: 3) | El número máximo de intentos para enviar una alerta. | |
attempt_interval | - | string |
0-60s (predeterminado: 10s) | El intervalo entre reintentos. Acepta segundos y unidades de tiempo con sufijo. |
|
description | - | cadena |
Descripción del tipo de medio. | ||
message_templates | - | Elemento raíz para plantillas de mensajes de tipo multimedia. | |||
event_source | x | cadena |
0 - DISPARADORES 1 - DESCUBRIMIENTO 2 - REGISTRO AUTOMÁTICO 3 - INTERNO 4 - SERVICIO |
Fuente del evento. | |
operation_mode | x | cadena |
0 - PROBLEMA 1 - RECUPERACIÓN 2 - ACTUALIZACIÓN |
Modo de operación. | |
subject | - | cadena |
Asunto del mensaje. | ||
message | - | cadena |
Cuerpo del mensaje. | ||
Usado solo por tipo de medio de correo electrónico | |||||
smtp_server | x | cadena |
Servidor SMTP. | ||
smtp_port | - | integer |
Predeterminado: 25 | Puerto del servidor SMTP al que conectarse. | |
smtp_helo | x | cadena |
Hola SMTP. | ||
smtp_email | x | cadena |
Dirección de correo electrónico desde la que se enviarán las notificaciones. | ||
smtp_security | - | cadena |
0 - NINGUNO (predeterminado) 1 - STARTTLS 2 - SSL_OR_TLS |
Nivel de seguridad de conexión SMTP a utilizar. | |
smtp_verify_host | - | cadena |
0 - NO (predeterminado) 1 - SÍ |
SSL verificar host para SMTP. Opcional si smtp_security es STARTTLS o SSL_OR_TLS. | |
smtp_verify_peer | - | cadena |
0 - NO (predeterminado) 1 - SÍ |
SSL verificar par para SMTP. Opcional si smtp_security es STARTTLS o SSL_OR_TLS. | |
smtp_authentication | - | cadena |
0 - NINGUNO (predeterminado) 1 - CONTRASEÑA |
Método de autenticación SMTP a utilizar. | |
username | - | cadena |
Nombre de usuario. | ||
password | - | cadena |
Contraseña de autenticación. | ||
content_type | - | string |
0 - TEXTO 1 - HTML (predeterminado) |
Formato de mensaje. | |
Usado solo por tipo de medio SMS | |||||
gsm_modem | x | cadena |
Nombre del dispositivo serie del módem GSM. | ||
Usado solo por tipo de medio de script | |||||
script name | x | cadena |
Nombre del script. | ||
parámetros | - | Elemento raíz para los parámetros del script. | |||
Usado solo por el tipo de medio de webhook | |||||
script | x | cadena |
Guión. | ||
timeout | - | cadena |
1-60s (predeterminado: 30s) | Intervalo de tiempo de espera de solicitud HTTP de secuencia de comandos Javascript. | |
process_tags | - | string |
0 - NO (predeterminado) 1 - SÍ |
Si se deben procesar las etiquetas devueltas. | |
show_event_menu | - | string |
0 - NO (predeterminado) 1 - SÍ |
Si {EVENT.TAGS.*} se resolvió exitosamente en event_menu_url y event_menu Campos _name, este campo indica la presencia de una entrada en el menú de eventos. | |
event_menu_url | - | cadena |
URL de la entrada del menú del evento. Admite la macro {EVENT.TAGS.*}. | ||
event_menu_name | - | cadena |
Nombre de la entrada del menú de eventos. Admite la macro {EVENT.TAGS.*}. | ||
parameters | - | Elemento raíz para los parámetros de tipo de medio de webhook. | |||
name | x | cadena |
Nombre del parámetro del webhook. | ||
value | - | cadena |
Valor del parámetro webhook. |
The following additional elements are exported only for the Email media type.
Element | Type | Description | |
---|---|---|---|
provider | string | Email provider. | |
smtp_server | string | SMTP server. | |
smtp_port | integer | SMTP server port to connect to. Default: 25. |
|
smtp_helo | string | SMTP helo. | |
smtp_email | string | Email address from which notifications will be sent. | |
smtp_security | string | SMTP connection security level to use. Possible values:1 NONE (0, default), STARTTLS (1), SSL_OR_TLS (2). |
|
smtp_verify_host | string | SSL verify host for SMTP. Possible values:1 NO (0, default), YES (1). |
|
smtp_verify_peer | string | SSL verify peer for SMTP. Possible values:1 NO (0, default), YES (1). |
|
smtp_authentication | string | SMTP authentication method to use. Possible values:1 NONE (0, default), PASSWORD (1). |
|
username | string | Username. | |
password | string | Authentication password. | |
content_type | string | Message format. Possible values:1 TEXT (0), HTML (1, default). |
See also: Media type object (refer to the relevant property with a matching name).
SMS
Los siguientes elementos adicionales se exportan únicamente para el tipo de medio SMS.
Elemento | Tipo | Descripción | |
---|---|---|---|
gsm_modem | cadena | (obligatorio) Nombre del dispositivo serie del módem GSM. |
Consulte también: Objeto de tipo de medio (consulte la propiedad relevante con un nombre coincidente).
Script
Los siguientes elementos adicionales se exportan solo para el tipo de medio Script.
Elemento | Tipo | Descripción | |
---|---|---|---|
script name | cadena | (obligatorio) Nombre del script. | |
parameters | Elemento raíz para los parámetros del script. | ||
sortorder | string | (obligatorio) Orden de los parámetros del script pasados al script como argumentos de la línea de comandos. | |
value | cadena | Valor del parámetro del script. |
::: nota clásica Consulte también: Objeto de tipo de medio (consulte la propiedad relevante con un nombre coincidente). :::
Webhook
The following additional elements are exported only for the Webhook media type.
Element | Type | Description | |
---|---|---|---|
script | string | Script. | |
timeout | string | Javascript script HTTP request timeout interval. Possible values:1 1-60s (default: 30s). |
|
process_tags | string | Whether to process returned tags. Possible values:1 NO (0, default), YES (1). |
|
show_event_menu | string | Indicates the presence of an entry in the event menu if the {EVENT.TAGS.*} macro was successfully resolved in event_menu_url and event_menu_name fields.Possible values:1 NO (0, default), YES (1). |
|
event_menu_url | string | URL of the event menu entry. Supports {EVENT.TAGS.*} macro. | |
event_menu_name | string | Name of the event menu entry. Supports {EVENT.TAGS.*} macro. | |
parameters | Root element for webhook media type parameters. | ||
name | string | (required) Webhook parameter name. | |
value | string | Webhook parameter value. |
See also: Media type object (refer to the relevant property with a matching name).
1 Los valores enteros de API entre paréntesis, por ejemplo, HABILITADO (0), se mencionan solo como referencia. Para obtener más información, consulte la página del objeto API vinculado en la entrada de la tabla o al final de cada sección.