Как получить уведомление, когда ваш сайт выйдет из строя с помощью Geekflare API?
Опубликовано: 2021-08-22Пользователи пытаются получить доступ к вашему сайту, вы знаете, что произошло? Он не появляется. Есть некоторые ошибки, которые вы не поняли раньше. Пользователи разочаровываются и покидают ваш сайт. Таким образом, вы потеряли несколько лояльных пользователей.
Как решить эту проблему? Как узнать о закрытом сайте до того, как его найдут пользователи?
Есть два возможных пути:
Если вы не возражаете потратить несколько долларов, вы можете выбрать решение для мониторинга, такое как StatusCake или другое, упомянутое здесь.
Однако, если вы разработчик или не готовы тратить ежемесячно, вы можете воспользоваться Geekflare API — Is Site Up?
Сайт работает? API проверяет, работает ли сайт из разных мест.
Позвольте мне показать вам код Python, который немедленно уведомляет вас, когда ваш сайт отключается через Gmail .
Давайте начнем с изучения Is Site Up? API.
Сайт работает? API
Перед проверкой API нам нужно установить пакет под названием запросы для работы с API в Python. Но не обязательно использовать только Python. Вы можете использовать предпочитаемый язык. Но убедитесь, что вы настроили все необходимое для выполнения запроса API.
Итак, для тех, кто использует Python, установите пакет запросов с помощью команды pip install requests
Завершите настройку для других языков (если вы выберете любой, кроме Python) и перейдите к следующим шагам.
Теперь перейдите на страницу API Geekflare.

Вы можете найти различные типы API, в том числе Is Site Up? API, который нас интересует для этой статьи. Чтобы использовать API Geekflare, нам нужен ключ API, который мы можем получить, подписавшись на API Geekflare.
Нажмите кнопку « Зарегистрироваться бесплатно » в заголовке и создайте учетную запись в Geeflare API.

После создания учетной записи вы будете перенаправлены на панель инструментов Geekflare API. На панели инструментов вы найдете ключ API и другие данные, такие как адрес электронной почты, активный план и т. д..

Вы можете скопировать ключ API. Теперь давайте проверим документацию Is Site Up API. Нажмите на значок своего профиля и документацию.

Он перенаправит вас к документации Geeflare API.
Вы найдете документацию 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 своим собственным ключом API из панели управления Geekflare API. Для каждого пользователя он будет разным. Скопируйте ключ API с панели управления и добавьте его в приведенный выше код.
Мультилокация
Приведенный выше код проверяет, работает ли сайт из одного места (Нью-Йорк, США). Но мы можем протестировать его из другого места с помощью proxyCountry в теле запроса.
Другими доступными местами являются Англия (Лондон) и Сингапур. Мы можем передать данные proxyCountry вместе с URL-адресом сайта следующим образом.
{ "proxyCountry": "uk", "url": "geekflare.com" }
Вы можете пройти любое место, которое вы предпочитаете, из доступных мест здесь.
Мы завершили код, чтобы сделать запрос API, который извлекает данные о том, работает сайт или нет. Теперь пришло время написать еще немного кода, который отправляет почту, когда сайт не работает. Пошли.
Получение электронной почты, когда сайт не работает
Вы можете найти подробное руководство о том, как отправлять электронные письма через Gmail в Python . Или используйте следующий код, в котором используется пакет под названием yagmail, специально разработанный для отправки электронных писем из Gmail .

Перед отправкой почты через вашу учетную запись 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 и отправки почты. Наш следующий шаг — вызывать send_mail всякий раз, когда мы получаем плохой статус из запроса API.
Итак, как мы узнаем, что наш сайт не работает или работает? Когда мы запрашиваем Is Site Up? 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" } }
В нем вы найдете ключ под названием message . Значение ключевого сообщения говорит нам, работает сайт или нет. Таким образом, может быть два типа сообщений следующим образом.
- Сайт работает.
- Сайт не работает
Думаю, теперь ты понял. Итак, мы отправим письмо, когда получим сообщение « Сайт не работает». Окончательный код будет выглядеть следующим образом.
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)
Вы можете обновить содержимое письма по своему усмотрению. Мы завершили отправку почты всякий раз, когда наш сайт не работает.
Но есть проблема.
Мы должны выполнить наш код, чтобы проверить, работает ли наш сайт или нет. Как часто мы его запускаем? Да, это зависит от ваших предпочтений. Допустим, мы должны проверять это каждый час.
Мы можем открыть терминал или командную строку и выполнять наш код каждый час. Но это повторяющийся процесс и скучный. И иногда мы можем забыть проверить это. Итак, нам нужно выполнять код автоматически каждый час.
Здесь мы можем использовать cron для автоматического выполнения нашего кода каждый час. Давайте посмотрим, как это настроить.
Настройка крона
Давайте посмотрим, как настроить cron в операционной системе на базе UNIX.
- Открытый терминал.
- Запустите команду
crontab -e
, которая откроет файл crontab в терминале. - Нажмите клавишу
i
, чтобы войти в режим INSERT. - Теперь добавьте шаблон cron, каталог Python и каталог файла нашего кода. Вы видите пример ниже.
0 * * * * /usr/bin/python3 /home/sample.py

Мы установили шаблон для выполнения кода каждый час. Но вам может потребоваться установить его каждую минуту в зависимости от требований. Таким образом, вы можете использовать Crontab Guru или другие инструменты cron для создания шаблона cron для расписания.
Вот и все. Мы завершили настройку, чтобы получать уведомления, когда сайт недоступен.
Заключение
Используйте cron, чтобы запланировать периодическое выполнение скрипта на вашем облачном сервере, который работает круглосуточно и без выходных, чтобы получать уведомления по электронной почте, когда сайт не работает. Автоматизация экономит много времени и работает на нас. Итак, используйте его, как мы сделали в этой статье.
Счастливый мониторинг