02 51 76 0 34

Accès client :  mot de passe oublié   inscription

       (oubli)

Alertes SMS pour Zabbix (webhook 123-SMS)

Mis à jour le 17 septembre 2026

Zabbix sait déjà tout surveiller ; il lui manque parfois le canal qui réveille l'astreinte à 3 heures du matin. Un type de média Webhook suffit pour que chaque problème et chaque rétablissement partent par SMS, sans passerelle GSM ni script sur le serveur : le code JavaScript s'exécute dans Zabbix et appelle directement l'API 123-SMS.

1Créer le type de média

  1. Menu Alerts › Media types (Zabbix 6.0 : Administration › Media types) › Create media type.
  2. Nom : SMS 123-SMS ; type : Webhook.
  3. Déclarez les paramètres ci-dessous, puis collez le script de l'archive dans le champ Script.
  4. Onglet Message templates : ajoutez des modèles courts pour Problem et Problem recovery.
ParamètreValeur
identifiantvotre identifiant 123-SMS
cle_apivotre clé API
numero{ALERT.SENDTO}
sujet{ALERT.SUBJECT}
message{ALERT.MESSAGE}
expediteur(optionnel) Sender-ID déclaré
longueur300 — au-delà, le texte est coupé
test0 ; 1 pour un envoi à blanc
Identifiant et clé API : ils sont transmis par e-mail à l'inscription ; la clé se régénère dans l'espace client, rubrique API. Pour valider la configuration sans consommer de crédit, utilisez l'envoi à blanc : l'API répond 92 sans envoyer de SMS.

2Le cœur du script

    envoyer: function (p) {
        if (!p.identifiant || !p.cle_api) {
            throw 'Parametres identifiant et cle_api obligatoires';
        }
        var numero = SMS123.normaliser(p.numero || '');
        if (numero === '') {
            throw 'Numero destinataire vide : renseignez « Envoyer a » dans le media de l\'utilisateur';
        }
        var champs = {
            email: p.identifiant,
            pass: p.cle_api,
            numero: numero,
            message: SMS123.texte(p)
        };
        if (p.expediteur) {
            champs.sender = p.expediteur;
        }
        if (String(p.test) === '1') {
            champs.test = 'o';
        }
        var corps = [];
        for (var cle in champs) {
            if (champs.hasOwnProperty(cle)) {
                corps.push(encodeURIComponent(cle) + '=' + encodeURIComponent(champs[cle]));
            }
        }
        var req = new HttpRequest();
        req.addHeader('Content-Type: application/x-www-form-urlencoded');
        var reponse = req.post(SMS123.url, corps.join('&'));
        if (req.getStatus() !== 200) {
            throw 'HTTP ' + req.getStatus() + ' : ' + reponse;
        }
        var texte = String(reponse).trim();
        var code = /^10[0-2]/.test(texte) ? texte.substring(0, 3) : texte.substring(0, 2);
        if (code !== '80' && code !== '81' && code !== '92') {
            throw '123-SMS code ' + code + ' : ' + (SMS123.codes[code] || texte);
        }
        Zabbix.log(4, '[123-SMS] ' + numero + ' : code ' + code);
        return 'OK';
    }

Le script convertit le numéro (+ international en 00), assemble sujet et message, appelle l'API en HTTPS et lève une erreur lisible si l'envoi est refusé (crédit insuffisant, numéro invalide, liste noire…) : elle apparaît dans Reports › Action log, et Zabbix peut réessayer selon les réglages du média.

3Brancher l'astreinte

  1. Users › Users › utilisateur d'astreinte › onglet Media : type SMS 123-SMS, Send to 33601020304, plage horaire et sévérités voulues.
  2. Alerts › Actions › Trigger actions : conditions (sévérité ≥ High par exemple), opération « Send message » à l'utilisateur ou au groupe via SMS 123-SMS.
  3. Ajoutez une opération de rétablissement pour recevoir le SMS de retour à la normale.
  4. Testez avec le bouton Test du type de média, d'abord avec test = 1.

Numéros : 33601020304 ou 0601020304 pour la France ; pour l'étranger, l'indicatif précédé de 00 ou de + (converti en 00).

Gardez les modèles courts : « {EVENT.SEVERITY} {HOST.NAME} : {EVENT.NAME} » tient dans un SMS. Un message long est facturé en plusieurs SMS, et une tempête d'alertes peut vite consommer des crédits : réservez le SMS aux sévérités hautes.

Questions fréquentes

Avec quelles versions de Zabbix le webhook fonctionne-t-il ?

Avec Zabbix 6.0 et les versions suivantes (6.4, 7.0…), qui utilisent l'objet HttpRequest dans les scripts de webhook. Le menu se trouve dans Alerts > Media types, ou Administration > Media types en 6.0.

Où indiquer le numéro de téléphone ?

Dans le média de l'utilisateur (Users > Users > Media), champ Send to, au format 33601020304 ou 0601020304 ; pour l'étranger, avec l'indicatif précédé de 00 ou de +.

Comment tester sans consommer de crédit ?

Mettez le paramètre test à 1 et utilisez le bouton Test du type de média : l'API valide la requête et répond 92 sans envoyer de SMS.

Que se passe-t-il si le crédit est épuisé ?

Le script lève une erreur « crédit insuffisant » visible dans le journal des actions. Pensez à activer l'alerte de solde bas dans l'espace client.

Pourquoi le SMS pour l'astreinte ?

Parce qu'il réveille : il arrive en quelques secondes, sans application ni connexion Internet sur le téléphone de l'astreinte. Et chez 123-SMS, les crédits n'expirent jamais : une réserve d'alerte reste disponible tant qu'elle n'est pas consommée.

Combien coûte une alerte SMS ?

De 0,23 € à 0,075 € HT le SMS selon le volume de crédits, sans abonnement ; les crédits n'expirent jamais.

Testez avec votre propre besoin

5 SMS offerts pour votre essai, sur simple demande : expliquez-nous votre supervision Zabbix et nous créditons votre compte professionnel pour un premier envoi en conditions réelles. Offre réservée aux professionnels : entreprises, associations et collectivités.

Demander 5 SMS de test Inscription gratuite Contacter l'équipe

Téléchargement

123-sms_zabbix.zip

Zabbix 6.0, 6.4, 7.0 et plus.
Licence MIT — libre et gratuit.

🔗 Voir sur GitHub

L'essentiel 123-SMS

  • Sans abonnement ni frais d'installation.
  • Crédits SMS sans date d'expiration.
  • Prix dégressifs de 0,23 à 0,075 € HT le SMS.
  • API HTTP(S), envoi par e-mail ou depuis l'interface web.
  • Service français, opéré depuis 2002.