¿Cómo recibir una notificación cuando su sitio se cae usando la API de Geekflare?
Publicado: 2021-08-22Los usuarios intentan acceder a tu sitio, ¿sabes lo que pasó? No aparece. Hay algunos errores que no te diste cuenta antes. Los usuarios se frustran y abandonan su sitio. Entonces, perdiste algunos usuarios leales con él.
¿Cómo resolver este problema? ¿Cómo llega a conocer el sitio caído antes de que sus usuarios lo encuentren?
Hay dos formas posibles:
Si no le importa gastar unos pocos dólares, puede optar por una solución de monitoreo como StatusCake u otras mencionadas aquí.
Sin embargo, si es un desarrollador o no está listo para gastar mensualmente, puede aprovechar la API de Geekflare: ¿está activo el sitio?
¿Está activo el sitio? La API comprueba si un sitio está activo o inactivo desde diferentes ubicaciones.
Permítame mostrarle el código de Python que le notifica inmediatamente cuando su sitio deja de funcionar a través de Gmail .
Comencemos con la exploración de Is Site Up? API.
¿Está activo el sitio? API
Antes de verificar la API, debemos instalar un paquete llamado solicitudes para trabajar con API en Python. Pero, no es necesario usar solo Python. Puede utilizar su idioma preferido. Pero asegúrese de configurar los elementos necesarios para realizar una solicitud de API.
Entonces, para aquellos que usan Python, instalen el paquete de solicitudes usando el comando pip install requests
Complete la configuración para otros idiomas (si elige otro que no sea Python) y continúe con los siguientes pasos.
Ahora, vaya a la página de la API de Geekflare.
Puede encontrar diferentes tipos de API, incluido Is Site Up? API, que nos interesa para este artículo. Para usar las API de Geekflare, necesitamos una clave de API que podemos obtener registrándonos en la API de Geekflare.
Haga clic en el botón Registrarse gratis en el encabezado y cree una cuenta en Geeflare API.
Una vez que cree su cuenta, será redirigido al tablero de la API de Geekflare. En el tablero, encontrará la clave API y otros detalles como su correo electrónico, plan activo, etc.
Puede copiar la clave API. Ahora, revisemos la documentación de Is Site Up API. Haga clic en el icono de su perfil y la documentación.
Lo redirigirá a la documentación de la API de Geeflare.
Encontrará la documentación de la API Estado del sitio (¿Está activo el sitio?) aquí. Ve hacia eso.
Obtendrá el uso de API en el lado derecho. Seleccione Python en la sección Fragmentos de código en el lado derecho. Elija su idioma preferido si no está utilizando Python.
Obtendrá el código para llamar a Is Site Up? API. Modifiquémoslo un poco, lo que nos ayuda a agregar más código fácilmente más adelante. Eche un vistazo al código modificado en 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)
Reemplace YOUR-API-KEY con su propia clave de API del panel de API de Geekflare. Será diferente para cada usuario. Copie la clave API del tablero y agréguela al código anterior
Múltiples ubicaciones
El código anterior verifica si el sitio está activo o no desde una sola ubicación (Nueva York, EE. UU.). Pero podemos probarlo desde una ubicación diferente con proxyCountry en el cuerpo de la solicitud.
Otras ubicaciones disponibles son Inglaterra (Londres) y Singapur. Podemos pasar los datos de proxyCountry junto con la URL del sitio de la siguiente manera.
{ "proxyCountry": "uk", "url": "geekflare.com" }
Puede pasar cualquier ubicación que prefiera de las ubicaciones disponibles aquí.
Hemos completado el código para realizar una solicitud API que obtiene los datos sobre si un sitio está activo o no. Ahora, es hora de escribir más código que envíe correos cuando el sitio no funcione. Vamos.
Recibir correo electrónico cuando el sitio está inactivo
Puede encontrar el tutorial detallado sobre cómo enviar correos electrónicos a través de Gmail en Python o usar el siguiente código, que utiliza un paquete llamado yagmail especialmente diseñado para enviar correos electrónicos desde Gmail .
Antes de enviar un correo a través de su cuenta de Gmail, tenemos que activar las opciones Permitir aplicaciones menos seguras . Puedes activarlo aquí.
Veamos el código.
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, )
Puedes encontrar el tutorial completo de yagmail aquí.
Ahora, tenemos código para solicitudes de API y envío de correo. Nuestro siguiente paso es invocar send_mail siempre que recibamos un estado incorrecto de la solicitud de la API.
Entonces, ¿cómo sabemos que nuestro sitio está inactivo o activo? Cuando solicitamos el sitio ¿Está activo? API, responderá con algunos datos de la siguiente manera.
{ "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" } }
Encontrarás una clave llamada mensaje en él. El valor del mensaje clave nos dice si el sitio está activo o inactivo. Por lo tanto, puede haber dos tipos de mensajes de la siguiente manera.
- El sitio está activo.
- El sitio está caído
Creo que lo tienes ahora. Entonces, enviaremos el correo cuando recibamos el mensaje "El sitio está caído". El código final se verá de la siguiente manera.
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)
Puede actualizar el contenido del correo como prefiera. Hemos completado el envío de correo cada vez que nuestro sitio está caído.
Pero todavía hay un problema.
Tenemos que ejecutar nuestro código para verificar si nuestro sitio está activo o inactivo. ¿Con qué frecuencia lo ejecutamos? Sí, depende de tu preferencia. Digamos que tenemos que revisarlo cada hora.
Podemos abrir una terminal o línea de comando y ejecutar nuestro código cada hora. Pero es un proceso repetitivo y aburrido. Y a veces podemos olvidarnos de comprobarlo. Entonces, necesitamos ejecutar el código automáticamente cada hora.
Aquí podemos usar el cron para ejecutar nuestro código cada hora automáticamente. Veamos cómo configurarlo.
Configuración de cron
Veamos los pasos para configurar el cron en un sistema operativo basado en UNIX.
- Terminal abierta.
- Ejecute el comando
crontab -e
que abre el archivo crontab en la terminal. - Pulse la tecla
i
para entrar en el modo INSERTAR. - Ahora, agregue el patrón cron, el directorio de Python y nuestro directorio de archivos de código. Usted ve el ejemplo a continuación.
0 * * * * /usr/bin/python3 /home/sample.py
Hemos establecido el patrón para ejecutar el código cada hora. Pero es posible que deba configurarlo en cada minuto según el requisito. Por lo tanto, puede usar Crontab Guru u otras herramientas cron para generar el patrón cron para la programación.
Eso es. Hemos completado la configuración para recibir una notificación cuando el sitio esté inactivo.
Conclusión
Use el cron para programar la secuencia de comandos para que se ejecute periódicamente en su servidor en la nube que funciona las 24 horas del día, los 7 días de la semana para recibir una notificación por correo electrónico cuando el sitio esté inactivo. La automatización ahorra mucho tiempo y funciona para nosotros. Entonces, utilícelo como lo hicimos en este artículo.
Supervisión feliz