Benutzer versuchen, auf Ihre Website zuzugreifen, und wissen Sie, was passiert ist? Sie wird nicht angezeigt. Es gibt einige Fehler, die Sie vorher nicht herausgefunden haben. Die Benutzer sind frustriert und verlassen Ihre Website. Damit haben Sie also einige treue Benutzer verloren.

Wie lässt sich dieses Problem lösen? Wie erfahren Sie von dem Ausfall der Website, bevor Ihre Benutzer ihn finden?

Es gibt zwei mögliche Wege:

Wenn es Ihnen nichts ausmacht, ein paar Dollar auszugeben, können Sie sich für eine Überwachungslösung wie StatusCake oder andere hier erwähnte Lösungen entscheiden.

Wenn Sie jedoch ein Entwickler sind oder nicht bereit sind, monatlich Geld auszugeben, können Sie die Vorteile der Geekflare API – Is Site Up?

Ist die Website verfügbar? Die API prüft von verschiedenen Standorten aus, ob eine Website verfügbar ist oder nicht.

Ich zeige Ihnen einen Python-Code, der Sie sofort benachrichtigt, wenn Ihre Website über Gmail ausgefallen ist.

Beginnen wir mit der Erkundung der Is Site Up? API.

Ist die Website verfügbar? API

Bevor wir die API überprüfen, müssen wir ein Paket namens requests installieren, um mit APIs in Python zu arbeiten. Aber es ist nicht notwendig, nur Python zu verwenden. Sie können Ihre bevorzugte Sprache verwenden. Stellen Sie aber sicher, dass Sie die erforderlichen Dinge einrichten, um eine API-Anfrage zu stellen.

Wenn Sie also Python verwenden, installieren Sie das Paket requests mit dem Befehl pip install requests

Vervollständigen Sie die Einrichtung für andere Sprachen (wenn Sie eine andere Sprache als Python wählen) und fahren Sie mit den nächsten Schritten fort.

Gehen Sie nun auf die Geekflare API-Seite.

Geekflare-API-page

Dort finden Sie verschiedene Arten von APIs, darunter Is Site Up? API, die uns in diesem Artikel interessiert. Um die Geekflare APIs zu nutzen, benötigen wir einen API-Schlüssel, den wir erhalten, wenn wir uns für die Geekflare API anmelden.

Klicken Sie auf die Schaltfläche Sign Up Free in der Kopfzeile und erstellen Sie ein Konto bei Geeflare API.

Create Geekflare API Account

Sobald Sie Ihr Konto erstellt haben, werden Sie zum Dashboard von Geekflare API weitergeleitet. Auf dem Dashboard finden Sie den API-Schlüssel und andere Details wie Ihre E-Mail, Ihren aktiven Plan usw.,

Geekflare API Dashboard

Sie können den API-Schlüssel kopieren. Sehen wir uns nun die Dokumentation von Is Site Up API an. Klicken Sie auf Ihr Profilsymbol und auf Dokumentation.

Geekflare API Documentation

Sie werden dann zur Geeflare API-Dokumentation weitergeleitet.

Hier finden Sie die API-Dokumentation zum Site-Status (Is Site Up?). Besuchen Sie sie.

Auf der rechten Seite sehen Sie die Verwendung der API. Wählen Sie Python aus dem Abschnitt Code Snippets auf der rechten Seite. Wählen Sie Ihre bevorzugte Sprache, wenn Sie nicht Python verwenden.

Sie erhalten den Code für den Aufruf der Is Site Up? API AUFZURUFEN. Lassen Sie uns diesen ein wenig abändern, damit wir später leicht weiteren Code hinzufügen können. Werfen Sie einen Blick auf den geänderten Code in Python.

importieren Sie Anfragen
importieren json

API_URL = "https://api.geekflare.com/de/up" 

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

Ersetzen Sie den YOUR-API-KEY durch Ihren eigenen API-Schlüssel aus dem Geekflare API Dashboard. Er wird für jeden Benutzer anders sein. Kopieren Sie den API-Schlüssel aus dem Dashboard und fügen Sie ihn dem obigen Code hinzu

Mehrere Standorte

Der obige Code prüft von einem einzigen Standort aus (New York, USA), ob die Website verfügbar ist oder nicht. Mit proxyCountry im Abfragetext können wir jedoch auch von einem anderen Standort aus testen.

Andere verfügbare Standorte sind England (London) und Singapur. Wir können die proxyCountry-Daten zusammen mit der URL der Website wie folgt übergeben.

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

Sie können hier jeden beliebigen Standort aus den verfügbaren Standorten angeben.

Wir haben den Code für eine API-Anfrage fertiggestellt, die die Daten darüber abruft, ob eine Website verfügbar ist oder nicht. Jetzt ist es an der Zeit, einen weiteren Code zu schreiben, der eine E-Mail sendet, wenn die Website nicht erreichbar ist. Los geht’s.

E-Mail-Empfang, wenn die Website nicht erreichbar ist

Sie finden eine ausführliche Anleitung zum Versenden von E-Mails über Gmail in Python. Oder verwenden Sie den folgenden Code, der ein Paket namens yagmail verwendet, das speziell für den Versand von E-Mails über Gmail entwickelt wurde.

Bevor Sie eine E-Mail über Ihr Gmail-Konto versenden, müssen Sie die Option Weniger sichere Anwendungen zulassen aktivieren. Sie können sie hier einschalten.

Schauen wir uns den Code an.

def send_mail():
    gmail = yagmail.SMTP("gmail", "passwort")

    receiver = "receiver@domain.com"
    subject = "Test Betreff"
    body = "Dies ist eine Testmail"

    gmail.send(
        to=receiver,
        subject=subject,
        content=body,
    )

Die vollständige Anleitung für yagmail finden Sie hier.

Jetzt haben wir den Code für API-Anfragen und den Versand von E-Mails. Unser nächster Schritt besteht darin, send_mail immer dann aufzurufen, wenn wir einen schlechten Status von der API-Anfrage erhalten.

Woher wissen wir also, ob unsere Website verfügbar oder nicht verfügbar ist? Wenn wir eine Anfrage an die Is Site Up? API anfordern, antwortet sie mit einigen Daten wie folgt.

{
  "Zeitstempel": 1671545622213,
  "apiStatus": "Erfolg",
  "apiCode": 200,
  "message": "Die Website ist online.",
  "meta": {
    "url": "https://geekflare.com/de",
    "proxyCountry": "Vereinigtes Königreich",
    "followRedirect": false,
    "test": {
      "id": "riah3dvi04ngaa1jw1b75smiibrus2a7"
    }
  },
  "Daten": {
    "statusCode": 200,
    "reasonPhrase": "OK"
  }
}

Darin finden Sie einen Schlüssel namens message . Der Wert des Schlüssels message sagt uns, ob die Website verfügbar ist oder nicht. Es kann also zwei Arten von Meldungen geben.

  • Website ist verfügbar.
  • Website ist nicht erreichbar

Ich denke, Sie haben es jetzt verstanden. Wir werden also eine E-Mail senden, wenn wir die Nachricht“Die Website ist nicht erreichbar” erhalten. Der endgültige Code wird wie folgt aussehen.

importieren Sie Anfragen
importieren json
importieren yagmail

API_URL = "https://api.geekflare.com/de/up"


def make_api_request():
    headers = {
        'x-api-key': 'IHR-API-SCHLÜSSEL',
        'Content-Type': 'application/json'
    }
    payload = json.dumps({
        "url": "https://geekflare.com/de",
        "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", "passwort")
    receiver = "email@domain.com"
    subject = "Ihre Website ist nicht erreichbar"
    gmail.send(
        to=Empfänger,
        subject=betreff,
        content=Inhalt,
    )


if __name__ == '__main__':
    data = make_api_request()
    message = data['message']

    ## Versenden der Mail
    if message == 'Website ist nicht erreichbar':
        ## Extrahieren des Standorts und des Fehlers
        location = data['meta']['proxyCountry']
        mail_content = "Ihre Website ist aufgrund eines unerwarteten Fehlers ausgefallen. Siehe die nützlichen Daten zur Fehlerbehebung unten.nn"
        if Standort:
            mail_content = f"{Ort}"
        mail_content = f"{data['data']['reasonPhrase']}nn"
        mail_content = "Überprüfen Sie den Fehler und beheben Sie ihn so schnell wie möglich."
        send_mail(mail_content)

Sie können den Inhalt der Mail nach Belieben aktualisieren. Wir haben den Versand von E-Mails abgeschlossen, wenn unsere Website nicht erreichbar ist.

Aber es gibt immer noch ein Problem.

Wir müssen unseren Code ausführen, um zu prüfen, ob unsere Website online oder offline ist. Wie oft müssen wir ihn ausführen? Ja, das hängt von Ihren Wünschen ab. Sagen wir, wir müssen es jede Stunde überprüfen.

Wir können ein Terminal oder eine Befehlszeile öffnen und unseren Code jede Stunde ausführen. Aber das ist ein sich wiederholender und langweiliger Prozess. Und manchmal können wir vergessen, ihn zu überprüfen. Also müssen wir den Code automatisch jede Stunde ausführen lassen.

Hier können wir cron verwenden, um unseren Code jede Stunde automatisch auszuführen. Schauen wir uns an, wie wir ihn einrichten.

Cron-Einrichtung

Sehen wir uns die Schritte zur Einrichtung von cron auf einem UNIX-basierten Betriebssystem an.

  • Öffnen Sie ein Terminal.
  • Führen Sie den Befehl crontab -e aus, der die Datei crontab im Terminal öffnet.
  • Drücken Sie die Taste i, um den INSERT-Modus aufzurufen.
  • Fügen Sie nun das Cron-Muster, das Python-Verzeichnis und das Verzeichnis unserer Codedatei hinzu. Sie sehen das folgende Beispiel.

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

Cron
Cron

Wir haben das Muster so eingestellt, dass der Code jede Stunde ausgeführt wird. Je nach Bedarf können Sie es aber auch 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 erstellen.

Das war’s schon. Wir haben die Einrichtung abgeschlossen, um benachrichtigt zu werden, wenn die Website nicht erreichbar ist.

Fazit

Verwenden Sie Cron, um das Skript für die regelmäßige Ausführung auf Ihrem Cloud-Server zu planen, der rund um die Uhr läuft, damit Sie per E-Mail benachrichtigt werden, wenn die Website nicht erreichbar ist. Automatisierung spart eine Menge Zeit und funktioniert bei uns. Machen Sie also davon Gebrauch, wie wir es in diesem Artikel getan haben.

Viel Spaß bei der Überwachung 🙂