Recevoir des notifications Slack en cas de site en panne avec le plugin WP Down Slack Alert

Lorsque l’on s’occupe de la maintenance d’un site WordPress, il est important de pouvoir être réactif le plus vite possible si un site est en panne.

Aujourd’hui nous vous présentons une extension WordPress développée par nos soins permettant d’obtenir des notifications lorsqu’un site ne fonctionne plus, directement sur votre espace de travail Slack.

Depuis la version 5.2, WordPress dispose d’un mode de récupération – recovery mode en anglais. Ce mode se déclenche automatiquement en cas d’erreur fatale PHP et va vous envoyer une notification e-mail afin de vous avertir que votre site est hors service. Vous pourrez alors vous connecter à votre back-office en mode de récupération. Similaire au mode sans échec du système d’exploitation de votre ordinateur, le recovery mode désactive les extensions ou thèmes WordPress responsables de l’erreur et vous permet d’accéder au site et à son administration.

Un plugin WordPress gratuit pour recevoir des notifications automatisées sur Slack

Dans le cadre de notre offre de maintenance, nous avons besoin d’être informés au plus vite en cas de site cassé ou hors service. Recevoir une notification e-mail n’est pas suffisant pour nous, d’autant plus que l’envoi e-mail peut très bien être bloqué ou être reçu par la mauvaise personne.

Pour répondre à ce besoin interne de notre pôle maintenance WordPress, nous avons créé une extension WordPress permettant d’établir une connexion avec notre Slack Whodunit et de poster un message de notification dans un channel dédié. Notre équipe technique peut ainsi être au courant de la panne dès l’instant où elle se produit.

Après avoir développé ce plugin, nous nous sommes aperçus que nous n’étions pas les seuls à avoir ce besoin.

Nous avons donc décidé de le proposer en téléchargement libre et gratuit sur le répertoire des extensions WordPress. Ainsi est née l’extension WP Down Slack Alert. Ce plugin vous permet de connecter vos sites WordPress à votre espace Slack très facilement.

L’extension a été développée à 4 mains par notre custom developer Samy Kantari et moi-même, Jb Audras, CTO de l’agence.

Nous avons rapidement décidé de la mettre à disposition en open-source et gratuitement, afin qu’elle puisse être utilisée par tous, que vous éditiez vous-même votre site web ou que vous soyez un confrère freelance ou agence 😊💙

Gestion des notifications Slack en back-office

Une fois l’extension installée et activée sur votre site WordPress, l’écran de configuration se trouve dans le menu Outils > Alerte Slack.

L’extension vous permet de personnaliser vos alertes Slack très facilement avec un ensemble de réglages :

  • Désactivation des notification email natives : par défaut, le mode de récupération de WordPress envoie une notification e-mail à l’administrateur du site. Pour désactiver ce comportement et vous contenter de la notification Slack, cochez cette case.
  • Fréquence des notifications Slack : toutes les 30 minutes ou toutes les 1, 2, 6 ou 24 heures, vous pouvez déterminer la fréquence à laquelle le site doit envoyer ses notifications s’il est en panne.
  • Channel Slack sur lequel envoyer la notification
  • Nom du bot Slack
  • Image d’avatar du bot
  • Titre de l’alerte
  • Message du pied de l’alerte
  • Activation ou désactivation de la « Green notification » : une notification envoyée lorsqu’un site auparavant en panne est de nouveau fonctionnel

Ci-dessous, un exemple d’alerte reçue sur Slack. L’ensemble du message est paramétrable.

Pour obtenir votre jeton API gratuitement et très facilement, un petit tutoriel rapide et efficace est prévu en back-office. Cette opération ne prend que quelques minutes !

Techniquement, cette extension fonctionne à l’aide d’un mu-plugin (pour must-use plugin, ou « extension indispensable » en français) créé automatiquement lors de l’activation de celle-ci. Ce mu-plugin contient tout le fonctionnement du système de notification.

Nous avons placé l’essentiel du code dans un mu-plugin car le mode de récupération désactive les extensions lorsqu’il est activé, à l’exception des mu-plugins qui continuent à fonctionner ! Ainsi, lorsque le site passe en recovery mode, le mu-plugin prend le relai et se charge d’envoyer une notification Slack. C’est simple, mais il fallait y penser 😉

Pré-paramétrer l’extension pour un déploiement sur de nombreuses installations WordPress

Cerise sur le gâteau : nous avons aussi pensé aux agences et aux développeuses et développeurs qui gèrent un grand nombre de sites !

Si vous gérez un grand nombre de sites, il peut être assez laborieux d’aller sur le back-office de chaque site pour paramétrer l’extension.

Comme c’est aussi notre cas, nous avons mis en place un mécanisme permettant de paramétrer l’extension sans forcément se rendre sur le site en question : des constantes PHP.

Les constantes PHP suivantes sont donc disponibles et permettent d’activer, désactiver ou paramétrer chaque réglage de l’extension. Voici la liste des constantes utilisables avec pour chacune d’entre elle un exemple d’utilisation.

/* Désactiver la page de réglage de l'extension si vous ne souhaitez pas qu'elle soit accessible en back-office (utiliser `false` pour désactiver) */
define( 'WPDSA_SETTINGS', true );
/* Définir le jeton API Slack (chaîne de caractères) */
define( 'WPDSA_NOTIFICATION_TOKEN', 'VOTRE_JETON_API_SLACK' );
/* Définir le channel qui recevra les notifications (chaîne de caractères, sans # et compatible URL) */
define( 'WPDSA_NOTIFICATION_CHANNEL', 'mon_channel_slack' );
/* Désactiver les notificatiosn email natives (utiliser `true` pour désactiver) */
define( 'WPDSA_NOTIFICATION_DISABLE_EMAIL', true );
/* Définir la fréquence des notifications Slack (chaîne de caractères avec l'une de ces valeurs : `0,5`, `1`, `2`, `6`, `24` ou `anytime`) */
define( 'WPDSA_NOTIFICATION_RECURRENCE', '2' );
// Définir le nom du bot Slack (chaîne de caractères compatible URL)
define( 'WPDSA_NOTIFICATION_BOTNAME', 'AlertBot' );
// Définir le titre des notifications (chaîne de caractères)
define( 'WPDSA_NOTIFICATION_MESSAGE_TITLE', 'Alerte : site HS !' );
// Définir le texte du pied des notifications (chaîne de caractères)
define( 'WPDSA_NOTIFICATION_MESSAGE_FOOTER', 'WP Down Slack Alert, par l’agence Whodunit' );
// Définir l'image d'avatar du bot Slack (chaîne de caractères - lien absolu vers une image en ligne)
define( 'WPDSA_NOTIFICATION_MESSAGE_IMAGE', 'https://assets.whodunit.fr/brand/logo_whodunit_petit.png' );
// Désactiver la "Green notification" (utiliser `true` pour désactiver)
define( 'WPDSA_NOTIFICATION_DISABLE_GREEN', true );

Vous pouvez placer ce code dans le fichier wp-config.php de votre installation WordPress ou encore dans votre propre mu-plugin. C’est cette dernière option que nous avons choisi d’utiliser pour le déployer automatiquement sur nos 150 sites en maintenance !

Vous pouvez aussi télécharger en suivant ce lien un exemple de plugin de définition des constantes PHP afin de l’adapter ensuite à vos besoins.

Pour l’utiliser, il vous suffit de le télécharger, de le dézipper, d’ouvrir le fichier template.php et de modifier les valeurs des constantes comme bon vous semble. Ensuite, il vous suffit de re-zipper le dossier de l’extension. Enfin, téléversez simplement l’extension sur votre installation WordPress. Ce plugin créera automatiquement le mu-plugin dédié à la définition de vos constantes PHP, et vos notifications Slack seront automatiquement paramétrées.

Pour télécharger l’extension WP Down Slack Alert, rendez-vous sur le répertoire officiel des plugins sur WordPress.org :

Vous avez aimé ? Partagez !

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *