Como ser notificado quando seu site cair usando a API Geekflare?

Publicados: 2021-08-22

Os usuários tentam acessar seu site, sabe o que aconteceu? Não aparece. Existem alguns erros que você não descobriu antes. Os usuários ficam frustrados e saem do seu site. Então, você perdeu alguns usuários leais com isso.

Como resolver este problema? Como você fica sabendo sobre o site antes que seus usuários o encontrem?

Existem duas maneiras possíveis:

Se você não se importa em gastar alguns $, pode optar por uma solução de monitoramento como StatusCake ou outras mencionadas aqui.

No entanto, se você é um desenvolvedor ou não está disposto a gastar mensalmente, pode aproveitar Geekflare API – Site Up?

O site está no ar? A API verifica se um site está ativo ou inativo em diferentes locais.

Deixe-me mostrar o código Python que o notifica imediatamente quando seu site sai do ar por meio do Gmail .

Vamos começar explorando o site Is Up? API.

O site está no ar? API

Antes de verificar a API, precisamos instalar um pacote chamado request para trabalhar com APIs em Python. Mas, não é necessário usar apenas Python. Você pode usar o idioma de sua preferência. Mas certifique-se de configurar as coisas necessárias para fazer uma solicitação de API.

Então, para quem está usando Python instale o pacote request usando o comando pip install requests requests

Conclua a configuração para outros idiomas (se você escolher outro que não seja Python) e continue nas próximas etapas.

Agora, vá para a página da API Geekflare.

Geekflare-API-page

Você pode encontrar diferentes tipos de APIs, incluindo Is Site Up? API, na qual estamos interessados ​​neste artigo. Para usar as APIs do Geekflare, precisamos de uma chave de API que podemos obter inscrevendo-nos na API do Geekflare.

Clique no botão Sign Up Free no cabeçalho e crie uma conta na Geeflare API.

Criar conta da API Geekflare

Depois de criar sua conta, você será redirecionado para o painel da Geekflare API. No painel, você encontrará a chave API e outros detalhes como seu e-mail, plano ativo, etc.,

Painel da API Geekflare

Você pode copiar a chave de API. Agora, vamos verificar a documentação da API Is Site Up . Clique no ícone do seu perfil e na documentação.

Documentação da API Geekflare

Ele irá redirecioná-lo para a documentação da API Geeflare.

Você encontrará a documentação da API de status do site (o site está ativo?) aqui. Vá.

Você obterá o uso da API no lado direito. Selecione Python na seção Code Snippets no lado direito. Escolha seu idioma preferido se não estiver usando Python.

Você receberá o código para chamar o site Is Up? API. Vamos modificá-lo um pouco, o que nos ajuda a adicionar mais código mais tarde facilmente. Dê uma olhada no código modificado em 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)

Substitua a YOUR-API-KEY por sua própria chave de API no painel Geekflare API. Será diferente para cada usuário. Copie a chave API do painel e adicione-a ao código acima

Vários locais

O código acima verifica se o site está no ar ou não a partir de um único local (Nova York, EUA). Mas podemos testá-lo de um local diferente com proxyCountry no corpo da solicitação.

Outros locais disponíveis são Inglaterra (Londres) e Cingapura. Podemos passar os dados proxyCountry junto com a URL do site da seguinte maneira.

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

Você pode passar por qualquer local de sua preferência entre os locais disponíveis aqui.

Concluímos o código para fazer uma solicitação de API que busca os dados sobre se um site está ativo ou não. Agora, é hora de escrever mais algum código que envie e-mails quando o site estiver fora do ar. Vamos.

Receber e-mail quando o site está fora do ar

Você pode encontrar o tutorial detalhado sobre como enviar e-mails pelo Gmail em Python Ou usar o seguinte código, que usa um pacote chamado yagmail especialmente desenvolvido para enviar e-mails do Gmail .

Antes de enviar um e-mail através de sua conta do Gmail, devemos ativar as opções Permitir aplicativos menos seguros . Você pode ativá-lo aqui.

Vamos ver o 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, )

Você pode encontrar o tutorial completo do yagmail aqui.

Agora, temos código para solicitações de API e envio de e-mail. Nossa próxima etapa é invocar o send_mail sempre que recebermos um status ruim da solicitação da API.

Então, como sabemos se nosso site está inativo ou ativo? Quando solicitamos o site está no ar? API, ele responderá com alguns dados da seguinte forma.

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

Você encontrará uma chave chamada mensagem nela. O valor da mensagem -chave nos diz se o site está ativo ou inativo. Então, podem ser dois tipos de mensagens como segue.

  • O site está no ar.
  • O site está fora do ar

Acho que agora você entendeu. Assim, enviaremos o e-mail quando recebermos a mensagem “O site está fora do ar.”. O código final ficará da seguinte forma.

 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)

Você pode atualizar o conteúdo do e-mail como preferir. Concluímos o envio de e-mails sempre que nosso site está fora do ar.

Mas ainda há um problema.

Temos que executar nosso código para verificar se nosso site está ativo ou inativo. Com que frequência o executamos? Sim, depende da sua preferência. Digamos que temos que verificar a cada hora.

Podemos abrir um terminal ou linha de comando e executar nosso código a cada hora. Mas é um processo repetitivo e chato. E às vezes podemos esquecer de verificá-lo. Portanto, precisamos executar o código automaticamente a cada hora.

Aqui podemos usar o cron para executar nosso código a cada hora automaticamente. Vamos ver como configurá-lo.

Configuração do Cron

Vamos ver as etapas para configurar o cron em um sistema operacional baseado em UNIX.

  • Terminal aberto.
  • Execute o comando crontab -e que abre o arquivo crontab no terminal.
  • Pressione a tecla i para entrar no modo INSERT.
  • Agora, adicione o padrão cron, o diretório Python e nosso diretório de arquivo de código. Você vê o exemplo abaixo.

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

cron
cron

Definimos o padrão para executar o código a cada hora. Mas pode ser necessário defini-lo para cada minuto com base no requisito. Portanto, você pode usar o Crontab Guru ou outras ferramentas cron para gerar o padrão cron para o agendamento.

É isso. Concluímos a configuração para ser notificado quando o site estiver fora do ar.

Conclusão

Use o cron para agendar o script para ser executado periodicamente em seu servidor de nuvem que funciona 24 horas por dia, 7 dias por semana, para ser notificado por e-mail quando o site estiver fora do ar. A automação economiza muito tempo e funciona para nós. Então, faça uso dele como fizemos neste artigo.

Feliz Monitoramento