サイトがダウンしたときに Geekflare API を使用して通知を受け取るには?

公開: 2021-08-22

ユーザーがあなたのサイトにアクセスしようとすると、何が起こったか知っていますか? 表示されません。 以前はわからなかったエラーがいくつかあります。 ユーザーは不満を感じ、サイトを離れます。 それで、あなたはそれで何人かの忠実なユーザーを失いました.

この問題を解決するには? ユーザーがサイトを見つける前に、サイトがダウンしていることをどのように知ることができますか?

次の 2 つの方法があります。

数ドルを費やすことを気にしない場合は、StatusCake などの監視ソリューションや、ここで言及されている他のソリューションを利用できます。

ただし、開発者であるか、毎月支払う準備ができていない場合は、Geekflare API – Is Site Up? を利用できます。

サイトは稼働していますか? API は、さまざまな場所からサイトが稼働しているか停止しているかを確認します。

サイトがダウンしたときにすぐにGmail経由で通知する Python コードをお見せしましょう。

Is Site Up?の調査から始めましょう。 API。

サイトは稼働していますか? API

API を確認する前に、Python で API を操作するための requests というパッケージをインストールする必要があります。 ただし、Python だけを使用する必要はありません。 お好みの言語を使用できます。 ただし、API リクエストを行うために必要なものを設定してください。

そのため、Python を使用している場合は、コマンドpip install requestsを使用してrequestsパッケージをインストールします。

他の言語のセットアップを完了し (Python 以外を選択した場合)、次の手順に進みます。

次に、Geekflare API ページに移動します。

Geekflare-API ページ

Is Site Up? など、さまざまな種類の API を見つけることができます。 この記事で関心のある API。 Geekflare API を使用するには、Geekflare API にサインアップして取得できる API キーが必要です。

ヘッダーのSign Up Freeボタンをクリックし、Geeflare API でアカウントを作成します。

Geekflare API アカウントを作成する

アカウントを作成すると、Geekflare API のダッシュボードにリダイレクトされます。 ダッシュボードには、API キーと、メール、有効なプランなどのその他の詳細が表示されます。

Geekflare API ダッシュボード

API キーをコピーできます。 では、 Is Site Up API のドキュメントを確認してみましょう。 プロフィール アイコンとドキュメントをクリックします。

Geekflare API ドキュメント

Geeflare API ドキュメントにリダイレクトされます。

サイト ステータス (Is Site Up?) API ドキュメントはこちらにあります。 それに行きます。

右側に API の使用法が表示されます。 右側の [コード スニペット]セクションから [Python] を選択します。 Python を使用していない場合は、希望する言語を選択してください。

Is Site Up?を呼び出すコードを取得します。 API。 後で簡単にコードを追加できるように、少し変更してみましょう。 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)

YOUR-API-KEYを Geekflare API ダッシュボードの独自の API キーに置き換えます。 ユーザーごとに異なります。 ダッシュボードから API キーをコピーし、上記のコードに追加します。

マルチロケーション

上記のコードは、サイトが 1 つの場所 (米国ニューヨーク) から稼働しているかどうかを確認します。 ただし、リクエスト本文にproxyCountryを使用して、別の場所からテストできます。

他の利用可能な場所は、イングランド (ロンドン) とシンガポールです。 次のように、 proxyCountryデータをサイト URL と共に渡すことができます。

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

ここで利用可能な場所から好きな場所を渡すことができます。

サイトが稼働しているかどうかに関するデータをフェッチする API 要求を行うコードが完成しました。 ここで、サイトがダウンしたときにメールを送信するコードをさらに作成します。 行こう。

サイトダウン時のメール受信

Python で Gmail を介してメールを送信する方法に関する詳細なチュートリアルを見つけるか、 Gmailからメールを送信するために特別に設計されたyagmailと呼ばれるパッケージを使用する次のコードを使用します。

Gmail アカウントからメールを送信する前に、 [安全性の低いアプリを許可する] オプションをオンにする必要があります。 ここでオンにできます。

コードを見てみましょう。

 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, )

ここで yagmail の完全なチュートリアルを見つけることができます。

これで、API リクエストとメール送信のコードができました。 次のステップは、API リクエストから悪いステータスを受け取るたびにsend_mailを呼び出すことです。

では、サイトがダウンしているかアップしているかをどのように知るのでしょうか? サイトは稼働していますか? API を使用すると、次のようなデータが返されます。

 { "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" } }

その中にメッセージというキーがあります。 キーメッセージの値は、サイトが稼働しているか停止しているかを示します。 そのため、次の 2 種類のメッセージが考えられます。

  • サイトアップしました。
  • サイトがダウンしています

あなたは今それを手に入れたと思います。 そのため、「サイトがダウンしています。」というメッセージを受け取った時点でメールを送信します。 最終的なコードは次のようになります。

 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)

必要に応じて、メールの内容を更新できます。 サイトダウン時のメール送信を完了しました。

しかし、まだ問題があります。

コードを実行して、サイトが稼働しているか停止しているかを確認する必要があります。 どのくらいの頻度で実行しますか? ええ、それはあなたの好み次第です。 1時間ごとにチェックする必要があるとしましょう。

ターミナルまたはコマンド ラインを開いて、1 時間ごとにコードを実行できます。 しかし、それは反復的なプロセスであり、退屈なものです。 また、チェックを忘れてしまうこともあります。 そのため、コードを 1 時間ごとに自動的に実行する必要があります。

ここでは、cron を使用してコードを 1 時間ごとに自動的に実行できます。 設定方法を見てみましょう。

クローン設定

UNIX ベースのオペレーティング システムで cron を設定する手順を見てみましょう。

  • ターミナルを開きます。
  • ターミナルで crontab ファイルを開くコマンドcrontab -eを実行します。
  • キーiを押して INSERT モードに入ります。
  • ここで、cron パターン、Python ディレクトリ、およびコード ファイル ディレクトリを追加します。 以下に例を示します。

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

クロン
クロン

コードを 1 時間ごとに実行するパターンを設定しました。 ただし、要件に基づいて毎分に設定する必要がある場合があります。 したがって、Crontab Guru またはその他の cron ツールを使用して、スケジュールの cron パターンを生成できます。

それでおしまい。 サイトがダウンしたときに通知を受け取る設定が完了しました。

結論

cron を使用して、24 時間 365 日稼働しているクラウド サーバーでスクリプトを定期的に実行し、サイトがダウンしたときに電子メールで通知を受け取るようにスケジュールします。 自動化は多くの時間を節約し、私たちのために働いています。 したがって、この記事で行ったようにそれを利用してください。

ハッピーモニタリング