Comment être averti lorsque votre site tombe en panne à l'aide de l'API Geekflare ?

Publié: 2021-08-22

Les utilisateurs essaient d'accéder à votre site, vous savez ce qui s'est passé ? Il ne s'affiche pas. Il y a des erreurs que vous n'aviez pas identifiées auparavant. Les utilisateurs sont frustrés et quittent votre site. Donc, vous avez perdu des utilisateurs fidèles avec.

Comment résoudre ce problème? Comment faites-vous pour connaître le site avant que vos utilisateurs ne le trouvent ?

Il y a deux manières possibles :

Si cela ne vous dérange pas de dépenser quelques dollars, vous pouvez opter pour une solution de surveillance comme StatusCake ou d'autres mentionnées ici.

Cependant, si vous êtes un développeur ou que vous n'êtes pas prêt à dépenser mensuellement, vous pouvez profiter de l'API Geekflare - Is Site Up ?

Le site est-il opérationnel ? L'API vérifie si un site est actif ou inactif à partir de différents emplacements.

Laissez-moi vous montrer le code Python qui vous avertit immédiatement lorsque votre site tombe en panne via Gmail .

Commençons par explorer le site Is Site Up? API.

Le site est-il opérationnel ? API

Avant de vérifier l'API, nous devons installer un package appelé requests pour travailler avec les API en Python. Mais, il n'est pas nécessaire d'utiliser uniquement Python. Vous pouvez utiliser votre langue préférée. Mais assurez-vous de configurer les éléments requis pour effectuer une demande d'API.

Donc, pour ceux qui utilisent Python, installez le package requests à l'aide de la commande pip install requests

Terminez la configuration pour d'autres langages (si vous choisissez autre que Python) et passez aux étapes suivantes.

Maintenant, allez sur la page de l'API Geekflare.

Geekflare-API-page

Vous pouvez trouver différents types d'API, y compris Is Site Up ? API, qui nous intéresse pour cet article. Pour utiliser les API Geekflare, nous avons besoin d'une clé API que nous pouvons obtenir en vous inscrivant à l'API Geekflare.

Cliquez sur le bouton Inscription gratuite sur l'en-tête et créez un compte dans l'API Geeflare.

Créer un compte API Geekflare

Une fois votre compte créé, vous serez redirigé vers le tableau de bord de l'API Geekflare. Dans le tableau de bord, vous trouverez la clé API et d'autres détails comme votre e-mail, votre plan actif, etc.,

Tableau de bord de l'API Geekflare

Vous pouvez copier la clé API. Maintenant, vérifions la documentation de l'API Is Site Up . Cliquez sur l'icône de votre profil et sur la documentation.

Documentation de l'API Geekflare

Il vous redirigera vers la documentation de l'API Geeflare.

Vous trouverez la documentation de l'API sur l' état du site (le site est-il opérationnel ?) ici. Allez-y.

Vous obtiendrez l'utilisation de l'API sur le côté droit. Sélectionnez Python dans la section Extraits de code sur le côté droit. Choisissez votre langue préférée si vous n'utilisez pas Python.

Vous obtiendrez le code pour appeler le site Is Site Up? API. Modifions-le un peu, ce qui nous aide à ajouter plus de code plus tard facilement. Jetez un œil au code modifié en Python.

 import requests import json API_URL = "https://api.geekflare.com/up" def make_api_request(): headers = { 'x-api-key': 'YOUR-API-KEY', 'Content-Type': 'application/json' } payload = json.dumps({"url": "https://geekflare.com"}) response = requests.request("POST", API_URL, data=payload, headers=headers) return response.json() if __name__ == '__main__': data = make_api_request() print(data)

Remplacez YOUR-API-KEY par votre propre clé API à partir du tableau de bord de l'API Geekflare. Ce sera différent pour chaque utilisateur. Copiez la clé API du tableau de bord et ajoutez-la au code ci-dessus

Multi-emplacement

Le code ci-dessus vérifie si le site est opérationnel ou non à partir d'un seul emplacement (New York, États-Unis). Mais, nous pouvons le tester à partir d'un emplacement différent avec proxyCountry dans le corps de la requête.

Les autres emplacements disponibles sont l'Angleterre (Londres) et Singapour. Nous pouvons transmettre les données proxyCountry avec l'URL du site comme suit.

 { "proxyCountry": "uk", "url": "geekflare.com" }

Vous pouvez passer n'importe quel endroit que vous préférez parmi les emplacements disponibles ici.

Nous avons complété le code pour faire une requête API qui récupère les données indiquant si un site est opérationnel ou non. Maintenant, il est temps d'écrire un peu plus de code qui envoie du courrier lorsque le site est en panne. Allons-y.

Recevoir des e-mails lorsque le site est en panne

Vous pouvez trouver le tutoriel détaillé sur la façon d'envoyer des e-mails via Gmail en Python Ou utilisez le code suivant, qui utilise un package appelé yagmail spécialement conçu pour envoyer des e-mails depuis Gmail .

Avant d'envoyer un e-mail via votre compte Gmail, nous devons activer les options Autoriser les applications moins sécurisées . Vous pouvez l'activer ici.

Voyons le code.

 def send_mail(): gmail = yagmail.SMTP("gmail", "password") receiver = "[email protected]" subject = "Testing Subject" body = "This is a testing mail" gmail.send( to=receiver, subject=subject, contents=body, )

Vous pouvez trouver le tutoriel complet de yagmail ici.

Maintenant, nous avons du code pour les requêtes API et l'envoi de courrier. Notre prochaine étape consiste à invoquer le send_mail chaque fois que nous recevons un mauvais statut de la requête API.

Alors, comment savons-nous que notre site est en panne ou en marche ? Lorsque nous demandons le site Is Site Up? API, il répondra avec certaines données comme suit.

 { "timestamp": 1671545622213, "apiStatus": "success", "apiCode": 200, "message": "Site is up.", "meta": { "url": "https://geekflare.com", "proxyCountry": "United Kingdom", "followRedirect": false, "test": { "id": "riah3dvi04ngaa1jw1b75smiibrus2a7" } }, "data": { "statusCode": 200, "reasonPhrase": "OK" } }

Vous y trouverez une clé appelée message . La valeur du message clé nous indique si le site est actif ou inactif. Ainsi, il peut y avoir deux types de messages comme suit.

  • Le site est en place.
  • Le site est en panne

Je pense que tu l'as maintenant. Ainsi, nous enverrons le courrier lorsque nous recevrons le message "Le site est en panne". Le code final ressemblera à ceci.

 import requests import json import yagmail API_URL = "https://api.geekflare.com/up" def make_api_request(): headers = { 'x-api-key': 'YOUR-API-KEY', 'Content-Type': 'application/json' } payload = json.dumps({ "url": "https://geekflare.com", "followRedirect": True, "proxyCountry": "uk" }) response = requests.request("POST", API_URL, data=payload, headers=headers) return response.json() def send_mail(content): gmail = yagmail.SMTP("gmail", "password") receiver = "[email protected]" subject = "Your Site is Down" gmail.send( to=receiver, subject=subject, contents=content, ) if __name__ == '__main__': data = make_api_request() message = data['message'] ## seding the mail if message == 'Site is down': ## extracting the location and error location = data['meta']['proxyCountry'] mail_content = "Your site is down due to unexpected error. See the useful data to resolve errors below.nn" if location: mail_content += f"{location}" mail_content += f"{data['data']['reasonPhrase']}nn" mail_content += "Check the error and resolve it as soon as possible." send_mail(mail_content)

Vous pouvez mettre à jour le contenu de l'e-mail selon vos préférences. Nous avons terminé l'envoi de courrier chaque fois que notre site est en panne.

Mais il y a toujours un problème.

Nous devons exécuter notre code pour vérifier si notre site est actif ou non. À quelle fréquence l'exécutons-nous ? Oui, cela dépend de votre préférence. Disons que nous devons le vérifier toutes les heures.

Nous pouvons ouvrir un terminal ou une ligne de commande et exécuter notre code toutes les heures. Mais c'est un processus répétitif et ennuyeux. Et parfois on peut oublier de le vérifier. Nous devons donc exécuter le code automatiquement toutes les heures.

Ici, nous pouvons utiliser le cron pour exécuter notre code toutes les heures automatiquement. Voyons comment le configurer.

Configuration Cron

Voyons les étapes pour configurer le cron sur un système d'exploitation basé sur UNIX.

  • Borne ouverte.
  • Exécutez la commande crontab -e qui ouvre le fichier crontab dans le terminal.
  • Appuyez sur la touche i pour entrer dans le mode INSERT.
  • Maintenant, ajoutez le modèle cron, le répertoire Python et notre répertoire de fichiers de code. Vous voyez l'exemple ci-dessous.

0 * * * * /usr/bin/python3 /home/sample.py

Cron
Cron

Nous avons défini le modèle pour exécuter le code toutes les heures. Mais vous devrez peut-être le régler à chaque minute en fonction des besoins. Ainsi, vous pouvez utiliser le Crontab Guru ou d'autres outils cron pour générer le modèle cron pour la planification.

C'est ça. Nous avons terminé la configuration pour être averti lorsque le site est en panne.

Conclusion

Utilisez le cron pour planifier l'exécution périodique du script sur votre serveur cloud qui fonctionne 24h/24 et 7j/7 pour être averti par e-mail lorsque le site est en panne. L'automatisation nous fait gagner beaucoup de temps et travaille pour nous. Alors, utilisez-le comme nous l'avons fait dans cet article.

Bonne surveillance