Els tipus de suport s'exporten amb tots els objectes i relacions d'objecte associats.
Per exportar tipus de suport, feu el següent:
Segons el format triat, els tipus de suport s'exporten a un arxiu local amb un nom per defecte:
Per importar tipus de suport, feu el següent:
Regles d'importació:
Regla | Descripció |
---|---|
Actualització existent | Els elements existents s'actualitzaran amb les dades extretes del fitxer d'importació. En cas contrari, no s'actualitzaran. |
Crear nou | La importació afegirà nous elements emprant les dades del fitxer d'importació. En cas contrari, no els afegirà. |
A la interfície veureu un missatge d'èxit o error d'importació.
Exportar a YAML:
zabbix_export:
version: '6.4'
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}'
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}
Els valors de l'etiqueta d'element s'expliquen a la taula següent.
Element | Propietat de l'element | Obligatori | Tipus | Range1 | Descripció |
---|---|---|---|---|---|
media_types | - | Element arrel per a suport_tipus. | |||
name | x | cadena |
Nom del tipus de suport. | ||
type | x | cadena |
0 - EMAIL 1 - SMS 2 - SCRIPT 4 - WEBHOOK |
Transport emprat pel tipus de suport. | |
status | - | cadena |
0 - ACTIVAT (per defecte) 1 - DESACTIVAT |
Si el tipus de suport és habilitat. | |
max_sessions | - | enter |
Valors possibles per a SMS: 1 - (per defecte) Valors possibles per a altres tipus de suport: 0-100, 0 - il·limitat |
El nombre màxim d'alertes que poden processar-se en paral·lel. | |
attempts | - | enter |
1-10 (per defecte: 3) | El nombre màxim d'intents per enviar una alerta. | |
attempt_interval | - | cadena |
0-60s (per defecte: 10s) | L'interval entre els intents de reintent. Accepta segons i unitat de temps amb sufix. |
|
description | - | cadena |
Descripció del tipus de suport. | ||
message_templates | - | Element arrel per a plantilles de missatges de tipus multimèdia. | |||
event_source | x | cadena |
0 - ACTIVADORS 1 - DESCOBRIMENT 2 - AUTOREGISTRE 3 - INTERN 4 - SERVEI |
Font de l'esdeveniment. | |
operation_mode | x | cadena |
0 - PROBLEMA 1 - RECUPERACIÓ 2 - ACTUALITZACIÓ |
Mode de funcionament. | |
subject | - | cadena |
Assumpte del missatge. | ||
message | - | cadena |
Cos del missatge. | ||
S'empra només pel tipus de suport de correu electrònic | |||||
smtp_server | x | cadena |
Servidor SMTP. | ||
smtp_port | - | enter |
Per defecte: 25 | Port del servidor SMTP per connectar-se. | |
smtp_helo | x | cadena |
SMTP hola. | ||
smtp_email | x | cadena |
Adreça de correu electrònic des de la qual s'enviaran les notificacions. | ||
smtp_security | - | cadena |
0 - NINGÚ (per defecte) 1 - STARTTLS 2 - SSL_OR_TLS |
Nivell de seguretat de connexió SMTP a emprar. | |
smtp_verify_host | - | cadena |
0 - NO (per defecte) 1 - YES |
SSL verifica l'equip per a SMTP. Opcional si smtp_security és STARTTLS o SSL_OR_TLS. | |
smtp_verify_peer | - | cadena |
0 - NO (predeterminat) 1 - YES |
SSL verifica el parell per a SMTP. Opcional si smtp_security és STARTTLS o SSL_OR_TLS. | |
smtp_authentication | - | cadena |
0 - NINGÚ (per defecte) 1 - PASSWORD |
Mètode d'autenticació SMTP a emprar. | |
username | - | cadena |
Nom d'usuari. | ||
password | - | cadena |
Mot de pas d'autenticació. | ||
content_type | - | cadena |
0 - TEXT 1 - HTML (per defecte) |
Format del missatge. | |
Ús només pel tipus de suport SMS | |||||
gsm_modem | x | cadena |
Nom del dispositiu sèrie del mòdem GSM. | ||
Ús només pel tipus de suport d'script | |||||
script name | x | cadena |
Nom de l'script. | ||
parameters | - | Element arrel per als paràmetres de l'script. | |||
Ús només pel tipus de suport webhook | |||||
script | x | cadena |
Guió. | ||
timeout | - | cadena |
1-60s (per defecte: 30s) | Interval de temps d'espera de la petició HTTP de l'script de JavaScript. | |
process_tags | - | cadena |
0 - NO (per defecte) 1 - SÍ |
Si s'han de processar les etiquetes retornades. | |
show_event_menu | - | cadena |
0 - NO (predeterminat) 1 - SÍ |
Si {EVENT.TAGS.*} s'han resolt correctament als camps event_menu_url i event_menu_name; aquest camp indica la presència d'una entrada al menú d'esdeveniments. | |
event_menu_url | - | cadena |
URL de l'entrada del menú d'esdeveniments. Accepta la macro {EVENT.TAGS.*}. | ||
event_menu_name | - | cadena |
Nom de l'entrada del menú de l'esdeveniment. Accepta la macro {EVENT.TAGS.*}. | ||
paràmetres | - | Element arrel per als paràmetres del tipus de suport de webhook. | |||
name | x | cadena |
Nom del paràmetre webhook. | ||
value | - | cadena |
Valor del paràmetre Webhook. |
1 Per als valors de tipus de cadena de caràcters, només s'exportarà la cadena (per exemple, "EMAIL") sense la numeració emprada en aquesta taula. S'empren nombres per als valors d'interval (corresponents als valors de l'API) en aquesta matriu només a petició.