Wie werden Sie mit der Geekflare-API benachrichtigt, wenn Ihre Website ausfällt?
Veröffentlicht: 2021-08-22Benutzer versuchen, auf Ihre Website zuzugreifen. Wissen Sie, was passiert ist? Es wird nicht angezeigt. Es gibt einige Fehler, die Sie vorher nicht erkannt haben. Benutzer sind frustriert und verlassen Ihre Website. Sie haben damit also einige treue Benutzer verloren.
Wie kann man dieses Problem lösen? Wie erfahren Sie von der Site Down, bevor Ihre Benutzer sie finden?
Es gibt zwei Möglichkeiten:
Wenn es Ihnen nichts ausmacht, ein paar Dollar auszugeben, können Sie sich für eine Überwachungslösung wie StatusCake oder andere hier genannte Lösungen entscheiden. Wenn Sie jedoch Entwickler sind oder nicht bereit sind, monatlich auszugeben, können Sie die Geekflare-API – Ist Site Up?
Ist Site Up? API überprüft, ob eine Site von verschiedenen Standorten aus aktiv ist oder nicht.
Lassen Sie mich Ihnen Python-Code zeigen, der Sie sofort benachrichtigt, wenn Ihre Website über Gmail ausfällt .
Beginnen wir mit der Erkundung der Is Site Up? API.
Ist Site Up? API
Bevor wir die API überprüfen, müssen wir ein Paket namens Requests installieren, um mit APIs in Python zu arbeiten. Es ist jedoch nicht erforderlich, das einzige Python zu verwenden. Sie können Ihre bevorzugte Sprache verwenden. Stellen Sie jedoch sicher, dass Sie die erforderlichen Dinge einrichten, um eine API-Anfrage zu stellen.
Also, für diejenigen, die Python verwenden, installieren Sie das Request- Paket mit dem Befehl pip install requests
Schließen Sie die Einrichtung für andere Sprachen ab (wenn Sie eine andere Sprache als Python wählen) und fahren Sie mit den nächsten Schritten fort.
Gehen Sie nun zur Geekflare-API-Seite.

Sie können verschiedene Arten von APIs finden, einschließlich Is Site Up? API, die uns für diesen Artikel interessiert. Um die Geekflare-APIs zu verwenden, benötigen wir einen API-Schlüssel, den wir über RapidAPI erhalten können.
Klicken Sie auf die Schaltfläche GET API KEY , um zur RapidAPI zu gelangen.

RapidAPI wird wie folgt in einem neuen Tab geöffnet.

Wir müssen ein Konto erstellen, um den API-Schlüssel zu erhalten. Erstellen Sie ein Konto in RapidAPI, wenn Sie noch keins haben. Melden Sie sich bei Ihrem Konto an, nachdem Sie ein Konto erstellt haben.

Sie finden die Seite Ist Site Up? API an der Spitze aller Geekflare-APIs, die wir suchen. Wenn es nicht aktiv ist, suchen Sie es mit der verfügbaren Suche und klicken Sie darauf.
Die API-Nutzung finden Sie auf der rechten Seite. Wählen Sie im Abschnitt Codeausschnitte auf der rechten Seite Python mit Anforderungen aus.

Wählen Sie Ihre bevorzugte Sprache mit dem jeweiligen Paket, wenn Sie kein Python verwenden.
Sie erhalten den Code zum Aufrufen der Is Site Up? API. Lassen Sie uns es ein wenig modifizieren, damit wir später problemlos weiteren Code hinzufügen können. Sehen Sie sich den modifizierten Code in Python an.
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)Ersetzen Sie den API_KEY durch Ihren eigenen API-Schlüssel aus der RapidAPI im obigen Code. Es wird für jeden Benutzer anders sein. Sie finden es in der RapidAPI unter dem Abschnitt Headers Parameters wie folgt.

Im Beispielcode finden Sie denselben API-Schlüssel wie unten gezeigt.

Kopieren Sie den Schlüssel und fügen Sie ihn dem obigen Code hinzu
Mehrere Standorte
Der obige Code überprüft, ob die Site von einem einzelnen Standort (New York, USA) aus aktiv ist oder nicht. Wir können es jedoch von verschiedenen Standorten aus mit Standorten im Anforderungstext testen.
Andere verfügbare Standorte sind England (London) und Singapur. Wir können die Standortdaten zusammen mit der Site-URL wie folgt übergeben.
{ "locations": [ "uk", "us", "sg" ], "url": "geekflare.com" }Sie können die von Ihnen bevorzugten Orte aus der Liste übergeben.
Wir haben den Code vervollständigt, um eine API-Anfrage zu stellen, die die Daten abruft, unabhängig davon, ob eine Site aktiv ist oder nicht. Jetzt ist es an der Zeit, etwas mehr Code zu schreiben, der eine E-Mail sendet, wenn die Site nicht verfügbar ist. Lass uns gehen.

Empfangen von E-Mails, wenn die Website nicht verfügbar ist
Sie können das detaillierte Tutorial zum Senden von E-Mails über Gmail in Python finden. Oder verwenden Sie den folgenden Code, der ein Paket namens yagmail verwendet, das speziell zum Senden von E-Mails aus Gmail entwickelt wurde .
Bevor wir eine E-Mail über Ihr Gmail-Konto senden, müssen wir die Optionen Weniger sichere Apps zulassen aktivieren. Sie können es hier einschalten.
Sehen wir uns den Code an.
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, )Das komplette Tutorial von yagmail finden Sie hier.
Jetzt haben wir Code für API-Anfragen und das Senden von E-Mails. Unser nächster Schritt besteht darin, send_mail aufzurufen, wenn wir einen schlechten Status von der API-Anfrage erhalten.
Woher wissen wir also, ob unsere Site down oder up ist? Wenn wir die Frage Is Site Up? API, antwortet es mit einigen Daten wie folgt.
{'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'}]}Darin finden Sie einen Schlüssel namens Nachricht . Der Wert der Schlüsselnachricht sagt uns , ob die Website nach oben oder nach unten. So können zwei Arten von Nachrichten wie folgt sein.
- Website ist online.
- Website ist ausgefallen.
Ich glaube, du hast es jetzt verstanden. Daher senden wir die E-Mail, wenn wir die Nachricht „ Site is down“ erhalten. Der endgültige Code sieht wie folgt aus.
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)Sie können den Inhalt der E-Mail nach Belieben aktualisieren. Wir haben den Versand von E-Mails abgeschlossen, wenn unsere Website nicht verfügbar ist. Sehen Sie sich die Beispiel-E-Mail an, die über den obigen Code empfangen wurde.

Aber es gibt immer noch ein Problem.
Wir müssen unseren Code ausführen, um zu überprüfen, ob unsere Site in Betrieb oder inaktiv ist. Wie oft führen wir es aus? Ja, es hängt von Ihren Vorlieben ab. Nehmen wir an, wir müssen es jede Stunde überprüfen.
Wir können ein Terminal oder eine Befehlszeile öffnen und unseren Code stündlich ausführen. Aber es ist ein sich wiederholender Prozess und langweilig. Und manchmal können wir vergessen, es zu überprüfen. Wir müssen den Code also jede Stunde automatisch ausführen.
Hier können wir den Cron verwenden, um unseren Code stündlich automatisch auszuführen. Mal sehen, wie man es einrichtet.
Cron-Setup
Sehen wir uns die Schritte zum Einrichten des Crons auf einem UNIX-basierten Betriebssystem an.
- Terminal öffnen.
- Führen Sie den Befehl
crontab -eder die crontab-Datei im Terminal öffnet. - Drücken Sie die Taste
i, um in den EINFÜGEN-Modus zu gelangen. - Fügen Sie nun das Cron-Muster, das Python-Verzeichnis und unser Codedateiverzeichnis hinzu. Sie sehen das Beispiel unten.
0 * * * * /usr/bin/python3 /home/sample.py

Wir haben das Muster so eingestellt, dass der Code stündlich ausgeführt wird. Möglicherweise müssen Sie ihn jedoch je nach Anforderung auf jede Minute einstellen. Sie können also den Crontab Guru oder andere Cron-Tools verwenden, um das Cron-Muster für den Zeitplan zu generieren.
Das ist es. Wir haben die Einrichtung abgeschlossen, um benachrichtigt zu werden, wenn die Website nicht verfügbar ist.
Fazit
Verwenden Sie den Cron, um zu planen, dass das Skript regelmäßig auf Ihrem Cloud-Server ausgeführt wird, der rund um die Uhr läuft, um per E-Mail benachrichtigt zu werden, wenn die Site ausfällt. Automatisierung spart viel Zeit und funktioniert für uns. Nutzen Sie es also wie in diesem Artikel.
Viel Spaß beim Überwachen
