6 Types de média
Vue d'ensemble
Les types de média sont exportés avec tous les objets associés et les relations entre objets.
Exportation
Pour exporter des types de média, procédez comme suit :
- Accédez à Alertes → Types de média.
- Cochez les cases des types de média à exporter.
- Cliquez sur Exporter sous la liste.

Selon le format sélectionné, les types de média sont exportés vers un fichier local portant un nom par défaut :
zabbix_export_mediatypes.yaml- pour l’exportation YAML (option par défaut pour l’exportation) ;zabbix_export_mediatypes.xml- pour l’exportation XML ;zabbix_export_mediatypes.json- pour l’exportation JSON.
Importation
Pour importer des types de média, procédez comme suit :
- Accédez à Alertes → Types de média.
- Cliquez sur Importer dans le coin supérieur droit.
- Sélectionnez le fichier d’importation.
- Cochez les options requises dans les règles d’importation.
- Cliquez sur Importer dans le coin inférieur droit du formulaire de configuration.

Règles d’importation :
| Règle | Description |
|---|---|
| Mettre à jour l’existant | Les éléments existants seront mis à jour à l’aide des données du fichier d’importation. Sinon, ils ne seront pas mis à jour. |
| Créer de nouveaux éléments | De nouveaux éléments seront créés à l’aide des données du fichier d’importation. Sinon, ils ne seront pas créés. |
Un message indiquant le succès ou l’échec de l’importation sera affiché dans l’interface web.
Format d'exportation
Exporter au format 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: '<JETON PUSHOVER ICI>'
- 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 'Paramètre "event_source" incorrect fourni : "' + params.event_source + '".\nDoit être 0-3.';
}
if (params.event_value !== '0' && params.event_value !== '1'
&& (params.event_source === '0' || params.event_source === '3')) {
throw 'Paramètre "event_value" incorrect fourni : ' + params.event_value + '\nDoit être 0 ou 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" doit être compris entre -2 et 2';
}
if (params.event_source === '0' && isNaN(params.triggerid)) {
throw 'le champ "triggerid" n’est pas un nombre';
}
if (isNaN(params.eventid)) {
throw 'le champ "eventid" n’est pas un nombre';
}
if (typeof params.message !== 'string' || params.message.trim() === '') {
throw 'le champ "message" ne peut pas être vide';
}
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 'le champ "retry" doit être un nombre d’au moins 30 si "priority" est défini sur 2';
}
if (isNaN(params.expire) || params.expire > 10800) {
throw 'le champ "expire" doit être un nombre d’au plus 10800 si "priority" est défini sur 2';
}
data.retry = params.retry;
data.expire = params.expire;
}
data = JSON.stringify(data);
Zabbix.log(4, '[ Pushover Webhook ] Envoi de la requête : ' + params.endpoint + '\n' + data);
request.addHeader('Content-Type: application/json');
response = request.post(params.endpoint, data);
Zabbix.log(4, '[ Pushover Webhook ] Réponse reçue avec le code d’état ' + request.getStatus() + '\n' + response);
if (response !== null) {
try {
response = JSON.parse(response);
}
catch (error) {
Zabbix.log(4, '[ Pushover Webhook ] Échec de l’analyse de la réponse reçue de 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 'Erreur inconnue. Consultez le journal de débogage pour plus d’informations.';
}
}
return 'OK';
}
catch (error) {
Zabbix.log(4, '[ Pushover Webhook ] Échec de la notification Pushover : ' + error);
throw 'Échec de la notification Pushover : ' + error;
}
description: |
Veuillez consulter le guide de configuration ici : https://git.zabbix.com/projects/ZBX/repos/zabbix/browse/templates/media/pushover
Définissez le paramètre token avec votre clé d’application Pushover.
Lors de l’attribution du média Pushover à l’utilisateur Zabbix, ajoutez la clé utilisateur dans le champ send to.
message_templates:
- event_source: TRIGGERS
operation_mode: PROBLEM
subject: 'Problème : {EVENT.NAME}'
message: |
Le problème a commencé à {EVENT.TIME} le {EVENT.DATE}
Nom du problème : {EVENT.NAME}
Hôte : {HOST.NAME}
Gravité : {EVENT.SEVERITY}
Données opérationnelles : {EVENT.OPDATA}
ID du problème d’origine : {EVENT.ID}
{TRIGGER.URL}
- event_source: TRIGGERS
operation_mode: RECOVERY
subject: 'Résolu en {EVENT.DURATION} : {EVENT.NAME}'
message: |
Le problème a été résolu à {EVENT.RECOVERY.TIME} le {EVENT.RECOVERY.DATE}
Nom du problème : {EVENT.NAME}
Durée du problème : {EVENT.DURATION}
Hôte : {HOST.NAME}
Gravité : {EVENT.SEVERITY}
ID du problème d’origine : {EVENT.ID}
{TRIGGER.URL}
- event_source: TRIGGERS
operation_mode: UPDATE
subject: 'Problème mis à jour en {EVENT.AGE} : {EVENT.NAME}'
message: |
{USER.FULLNAME} a {EVENT.UPDATE.ACTION} le problème le {EVENT.UPDATE.DATE} à {EVENT.UPDATE.TIME}.
{EVENT.UPDATE.MESSAGE}
L’état actuel du problème est {EVENT.STATUS}, son ancienneté est de {EVENT.AGE}, acquitté : {EVENT.ACK.STATUS}.
- event_source: DISCOVERY
operation_mode: PROBLEM
subject: 'Découverte : {DISCOVERY.DEVICE.STATUS} {DISCOVERY.DEVICE.IPADDRESS}'
message: |
Règle de découverte : {DISCOVERY.RULE.NAME}
IP du périphérique : {DISCOVERY.DEVICE.IPADDRESS}
DNS du périphérique : {DISCOVERY.DEVICE.DNS}
État du périphérique : {DISCOVERY.DEVICE.STATUS}
Temps de fonctionnement du périphérique : {DISCOVERY.DEVICE.UPTIME}
Nom du service du périphérique : {DISCOVERY.SERVICE.NAME}
Port du service du périphérique : {DISCOVERY.SERVICE.PORT}
État du service du périphérique : {DISCOVERY.SERVICE.STATUS}
Temps de fonctionnement du service du périphérique : {DISCOVERY.SERVICE.UPTIME}
- event_source: AUTOREGISTRATION
operation_mode: PROBLEM
subject: 'Enregistrement automatique : {HOST.HOST}'
message: |
Nom de l’hôte : {HOST.HOST}
IP de l’hôte : {HOST.IP}
Port de l’agent : {HOST.PORT}
Éléments exportés
Les éléments exportés sont expliqués dans le tableau ci-dessous.
| Élément | Type | Description | |
|---|---|---|---|
| name | string | (obligatoire) Nom du type de média. | |
| type | string | (obligatoire) Transport utilisé par le type de média. Valeurs possibles :1 EMAIL (0), SMS (1), SCRIPT (2), WEBHOOK (4). |
|
| status | string | Indique si le type de média est activé. Valeurs possibles :1 ENABLED (0, par défaut), DISABLED (1) |
|
| max_sessions | integer | Le nombre maximal d’alertes pouvant être traitées en parallèle. Valeurs possibles pour SMS :1 1 (par défaut). Valeurs possibles pour les autres types de média :1 0-100 (où 0 = illimité). |
|
| attempts | integer | Le nombre maximal de tentatives d’envoi d’une alerte. Valeurs possibles :1 1-10 (par défaut : 3). |
|
| attempt_interval | string | L’intervalle (en utilisant des secondes ou un suffixe temporel) entre les tentatives de nouvel essai. Valeurs possibles :1 0-60s (par défaut : 10s). |
|
| description | string | Description du type de média. | |
| message_templates | Élément racine pour les modèles de message du type de média. | ||
| event_source | string | (obligatoire) Source de l’événement. Valeurs possibles :1 TRIGGERS (0), DISCOVERY (1), AUTOREGISTRATION (2), INTERNAL (3), SERVICE (4). |
|
| operation_mode | string | Mode de fonctionnement. Valeurs possibles :1 PROBLEM (0), RECOVERY (1), UPDATE (2). |
|
| subject | string | Sujet du message. | |
| message | string | Corps du message. | |
Voir aussi : Media type object (reportez-vous à la propriété correspondante portant le même nom).
Les éléments supplémentaires suivants sont exportés uniquement pour le type de média E-mail.
| Élément | Type | Description | |
|---|---|---|---|
| provider | string | Fournisseur de messagerie. | |
| smtp_server | string | Serveur SMTP. | |
| smtp_port | integer | Port du serveur SMTP auquel se connecter. Par défaut : 25. |
|
| smtp_helo | string | HELO SMTP. | |
| smtp_email | string | Adresse e-mail à partir de laquelle les notifications seront envoyées. | |
| smtp_security | string | Niveau de sécurité de la connexion SMTP à utiliser. Valeurs possibles :1 NONE (0, par défaut), STARTTLS (1), SSL_OR_TLS (2). |
|
| smtp_verify_host | string | Vérification de l’hôte SSL pour SMTP. Valeurs possibles :1 NO (0, par défaut), YES (1). |
|
| smtp_verify_peer | string | Vérification du pair SSL pour SMTP. Valeurs possibles :1 NO (0, par défaut), YES (1). |
|
| smtp_authentication | string | Méthode d’authentification SMTP à utiliser. Valeurs possibles :1 NONE (0, par défaut), PASSWORD (1), OAUTH (2). |
|
| username | string | Nom d’utilisateur. | |
| password | string | Mot de passe d’authentification. | |
| redirection_url | string | URL du frontend Zabbix vers laquelle rediriger après l’autorisation OAuth. | |
| client_id | string | Identifiant du client enregistré sur le serveur d’autorisation OAuth. | |
| authorization_url | string | URL OAuth, avec paramètres, pour obtenir les jetons d’accès et d’actualisation. | |
| token_url | string | URL OAuth pour échanger le jeton d’autorisation contre des jetons d’accès et d’actualisation. | |
| message_format | string | Format du message. Valeurs possibles :1 TEXT (0), HTML (1, par défaut). |
|
Voir aussi : Media type object (reportez-vous à la propriété correspondante portant le même nom).
SMS
Les éléments supplémentaires suivants sont exportés uniquement pour le type de média SMS.
| Élément | Type | Description | |
|---|---|---|---|
| gsm_modem | string | (obligatoire) Nom du périphérique série du modem GSM. | |
Voir aussi : Objet de type de média (reportez-vous à la propriété correspondante portant le même nom).
Script
Les éléments supplémentaires suivants sont exportés uniquement pour le type de média Script.
| Élément | Type | Description | |
|---|---|---|---|
| nom du script | string | (obligatoire) Nom du script. | |
| parameters | Élément racine pour les paramètres du script. | ||
| sortorder | string | (obligatoire) Ordre des paramètres du script passés au script comme arguments de ligne de commande. | |
| value | string | Valeur du paramètre du script. | |
Voir aussi : Objet de type de média (reportez-vous à la propriété correspondante portant le même nom).
Webhook
Les éléments supplémentaires suivants sont exportés uniquement pour le type de média Webhook.
| Élément | Type | Description | |
|---|---|---|---|
| script | string | Script. | |
| timeout | string | Intervalle de délai d’expiration des requêtes HTTP du script Javascript. Valeurs possibles :1 1-60s (par défaut : 30s). |
|
| process_tags | string | Indique s’il faut traiter les tags renvoyés. Valeurs possibles :1 NO (0, par défaut), YES (1). |
|
| show_event_menu | string | Indique la présence d’une entrée dans le menu des événements si la macro {EVENT.TAGS.*} a été résolue avec succès dans les champs event_menu_url et event_menu_name.Valeurs possibles :1 NO (0, par défaut), YES (1). |
|
| event_menu_url | string | URL de l’entrée du menu des événements. Prend en charge la macro {EVENT.TAGS.*}. | |
| event_menu_name | string | Nom de l’entrée du menu des événements. Prend en charge la macro {EVENT.TAGS.*}. | |
| parameters | Élément racine pour les paramètres du type de média webhook. | ||
| name | string | (obligatoire) Nom du paramètre webhook. | |
| value | string | Valeur du paramètre webhook. | |
Voir aussi : Media type object (reportez-vous à la propriété correspondante portant le même nom).
Notes de bas de page
1 Les valeurs entières de l’API entre parenthèses, par exemple ENABLED (0), sont mentionnées uniquement à titre de référence. Pour plus d’informations, consultez la page de l’objet API liée dans l’entrée du tableau ou à la fin de chaque section.