Comment être averti lorsque votre site tombe en panne à l'aide de l'API Geekflare ?
Publié: 2021-08-22Les 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 trouvé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 connaître le site down 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 actif ? L'API vérifie si un site est actif ou inactif à partir de différents emplacements.
Permettez-moi de vous montrer du code Python qui vous avertit immédiatement lorsque votre site tombe en panne via Gmail .
Commençons par explorer le site Is Up? API.
Le site est-il actif ? API
Avant de vérifier l'API, nous devons installer un package appelé demandes pour travailler avec les API en Python. Mais, il n'est pas nécessaire d'utiliser le seul 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 de requêtes à l'aide de la commande pip install requests
Terminez la configuration des autres langages (si vous choisissez un autre langage que Python) et passez aux étapes suivantes.
Maintenant, allez sur la page de l'API Geekflare.

Vous pouvez trouver différents types d'API, notamment 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 via RapidAPI.
Cliquez sur le bouton GET API KEY pour accéder à RapidAPI.

RapidAPI s'ouvrira dans un nouvel onglet comme suit.

Nous devons créer un compte pour obtenir la clé API. Créez un compte dans RapidAPI si vous n'en avez pas. Connectez-vous à votre compte après avoir créé un compte.

Vous trouverez le site Is Up? API au sommet de toutes les API Geekflare que nous recherchons. S'il n'est pas actif, recherchez-le en utilisant la recherche disponible et cliquez dessus.
Vous obtiendrez l'utilisation de l'API sur le côté droit. Sélectionnez Python avec requêtes dans la section Extraits de code sur le côté droit.

Choisissez votre langue préférée avec le package respectif si vous n'utilisez pas Python.
Vous obtiendrez le code pour appeler le site Is Up? API. Modifions-le un peu ce qui nous aide à ajouter facilement plus de code plus tard. Regardez le code modifié en Python.
import requests API_URL = "https://geekflare.p.rapidapi.com/up" def make_api_request(): headers = { 'content-type': "application/json", 'x-rapidapi-host': "geekflare.p.rapidapi.com", 'x-rapidapi-key': "YOUR_API_KEY" } payload = r'{"url": "https://www.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 API_KEY par votre propre clé API de RapidAPI dans le code ci-dessus. Ce sera différent pour chaque utilisateur. Vous le trouverez dans RapidAPI sous la section Paramètres des en-têtes comme suit.

Vous pouvez trouver la même clé API dans l'exemple de code, comme indiqué ci-dessous.

Copiez la clé et ajoutez-la au code ci-dessus
Multi-emplacement
Le code ci-dessus vérifie si le site est en place ou non à partir d'un seul endroit (New York, USA). Mais, nous pouvons le tester à partir de différents emplacements avec des emplacements dans le corps de la demande.
Les autres emplacements disponibles sont l'Angleterre (Londres) et Singapour. Nous pouvons transmettre les données de localisation avec l'URL du site comme suit.
{ "locations": [ "uk", "us", "sg" ], "url": "geekflare.com" }Vous pouvez passer les emplacements que vous préférez dans la liste.
Nous avons terminé le code pour faire une demande d'API qui récupère les données, qu'un site soit opérationnel ou non. Maintenant, il est temps d'écrire un peu plus de code qui envoie un e-mail lorsque le site est en panne. Allons-y.

Recevoir des e-mails lorsque le site est en panne
Vous pouvez trouver le didacticiel détaillé sur Comment 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 à partir de 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 send_mail chaque fois que nous recevons un mauvais état de la demande d'API.
Alors, comment savons-nous que notre site est en panne ou en hausse ? Quand nous demandons le site Is Up? API, il répondra avec certaines données comme suit.
{'timestamp': 1629556759685, 'apiStatus': 'success', 'apiCode': 201, 'message': 'Site is up.', 'meta': {'url': 'https://www.geekflare.com', 'followRedirect': False, 'test': {'id': 'eu0frmah05mids55elkjgevkzd8ur3vk'}}, 'data': [{'country': 'United States', 'city': 'New York', 'description': 'Site is up.', 'statusCode': 301, 'reasonPhrase': 'Moved Permanently'}]}Vous y trouverez une clé appelée message . La valeur du message clé nous indique si le site est en haut ou en bas. Ainsi, peut être 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 yagmail API_URL = "https://geekflare.p.rapidapi.com/up" def make_api_request(): headers = { 'content-type': "application/json", 'x-rapidapi-host': "geekflare.p.rapidapi.com", 'x-rapidapi-key': "API_KEY" } payload = r'{"url": "https://www.abcd.com"}' 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 errors from different locations locations_data = data['data'] mail_content = "Your site is down due to unexpected error. See the useful data to resolve errors below.\n\n" for location in locations_data: mail_content += f"{location['city']}, {location['country']} - {location['error']}\n" mail_content += "\nCheck the error and resolve them as soon as possible." send_mail(mail_content)Vous pouvez mettre à jour le contenu du courrier comme vous le souhaitez. Nous avons terminé d'envoyer du courrier chaque fois que notre site est en panne. Consultez l'exemple de courrier reçu via le code ci-dessus.

Mais, il y a toujours un problème.
Nous devons exécuter notre code pour vérifier si notre site est actif ou inactif. À 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, nous pouvons 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 automatiquement notre code toutes les heures. Voyons comment le configurer.
Configuration de Cron
Voyons les étapes pour configurer le cron sur un système d'exploitation basé sur UNIX.
- Borne ouverte.
- Exécutez la commande
crontab -equi ouvre le fichier crontab dans le terminal. - Appuyez sur la touche
ipour entrer dans le mode INSERTION. - 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

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 le calendrier.
C'est ça. Nous avons terminé la configuration pour être averti lorsque le site est en panne.
Conclusion
Utilisez le cron pour programmer 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 fait gagner beaucoup de temps et fonctionne pour nous. Alors, utilisez-le comme nous l'avons fait dans cet article.
Bonne surveillance
