Как получить уведомление о выходе из строя вашего сайта с помощью 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 Geekflare
Страница API Geekflare

Вы можете найти различные типы API, в том числе Is Site Up? API, который нас интересует в этой статье. Чтобы использовать API Geekflare, нам нужен ключ API, который мы можем получить через RapidAPI.

Нажмите кнопку ПОЛУЧИТЬ КЛЮЧ API , чтобы перейти к RapidAPI.

Кнопка GET API KEY
Кнопка GET API KEY

RapidAPI откроется в новой вкладке следующим образом.

RapidAPI
RapidAPI

Нам нужно создать учетную запись, чтобы получить ключ API. Создайте учетную запись в RapidAPI, если у вас ее нет. Войдите в свою учетную запись после создания учетной записи.

RapidAPI вошел в систему
RapidAPI вошел в систему

Вы найдете сообщение Is Site Up? API в верхней части всех API Geekflare, которые мы ищем. Если он не активен, найдите его с помощью доступного поиска и щелкните по нему.

Вы получите использование API с правой стороны. Выберите Python с запросами в разделе « Фрагменты кода » справа.

Языки программирования
Языки программирования

Выберите предпочтительный язык с соответствующим пакетом, если вы не используете Python.

Вы получите код для вызова Is Site Up? API. Давайте немного изменим его, что поможет нам легко добавить код позже. Взгляните на измененный код на 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)

Замените API_KEY своим собственным ключом API из RapidAPI в приведенном выше коде. Для каждого пользователя он будет разным. Вы найдете его в RapidAPI в разделе « Параметры заголовков » следующим образом.

Ключ API
Ключ API

Вы можете найти тот же ключ API в примере кода, как показано ниже.

Ключ API
Ключ API

Скопируйте ключ и добавьте его в приведенный выше код

Мульти-локация

Приведенный выше код проверяет, запущен ли сайт из одного места (Нью-Йорк, США). Но мы можем протестировать его из разных мест в теле запроса.

Другие доступные местоположения - Англия (Лондон) и Сингапур. Мы можем передать данные о местоположении вместе с URL-адресом сайта следующим образом.

 { "locations": [ "uk", "us", "sg" ], "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.

Итак, как мы узнаем, что наш сайт не работает или работает? Когда мы запрашиваем " Работает ли сайт?" API, он ответит некоторыми данными следующим образом.

 {'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'}]}

В нем вы найдете ключ под названием « сообщение» . Значение ключевого сообщения говорит нам, работает сайт или нет. Итак, может быть два типа сообщений следующим образом.

  • Сайт открыт.
  • Сайт не работает.

Думаю, теперь ты понял. Итак, мы отправим письмо, когда получим сообщение « Сайт не работает». Окончательный код будет выглядеть следующим образом.

 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)

Вы можете обновить содержание письма по своему усмотрению. Мы завершили отправку писем всякий раз, когда наш сайт не работает. См. Образец письма, полученного с помощью приведенного выше кода.

Site Down Mail
Site Down Mail

Но проблема все еще существует.

Мы должны выполнить наш код, чтобы проверить, работает ли наш сайт или нет. Как часто мы его запускаем? Да, это зависит от ваших предпочтений. Допустим, мы должны проверять его каждый час.

Мы можем открыть терминал или командную строку и выполнять наш код каждый час. Но это повторяющийся и утомительный процесс. И иногда мы можем забыть это проверить. Итак, нам нужно автоматически выполнять код каждый час.

Здесь мы можем использовать cron для автоматического выполнения нашего кода каждый час. Посмотрим, как это настроить.

Настройка Cron

Давайте посмотрим, как настроить cron в операционной системе на базе UNIX.

  • Открыть терминал.
  • Выполните команду crontab -e которая открывает файл crontab в терминале.
  • Нажмите кнопку i чтобы войти в режим ВСТАВКИ.
  • Теперь добавьте шаблон cron, каталог Python и каталог с нашим файлом кода. Вы видите пример ниже.

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

Cron
Cron

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

Вот и все. Мы завершили настройку, чтобы получать уведомления, когда сайт не работает.

Вывод

Используйте cron, чтобы запланировать периодический запуск сценария на вашем облачном сервере, который работает круглосуточно и без выходных, чтобы получать уведомления по электронной почте, когда сайт не работает. Автоматизация экономит много времени и работает на нас. Итак, используйте его, как мы сделали в этой статье.

Счастливый мониторинг