Generic selectors
Exact matches only
Search in title
Search in content
Post Type Selectors

Monitoramento de Websites com Python: Mantenha seus Sites Online!

Olá, leitores do nosso blog!

No artigo de hoje, vamos explorar uma solução em Python para monitorar websites e garantir que eles estejam sempre funcionando corretamente. Afinal, manter um site online e disponível é fundamental para o sucesso de qualquer negócio ou projeto.

👨🏻‍💻 Sobre o Projeto

O projeto em questão consiste em um monitor de websites que verifica se eles estão funcionando adequadamente. Ele utiliza um mecanismo de não-cache, adicionando um parâmetro ?v=timestamp ao final da URL, e, caso o código de resposta HTTP seja diferente de 200 envia um alerta pelo Telegram.

⚙️ Instalação

Antes de começarmos, certifique-se de ter o Python instalado (recomendamos a versão 3 ou superior). Em seguida, siga os passos abaixo:

  1. Instale as seguintes bibliotecas:
    • python-dotenv
    • requests
  2. Altere as variáveis de ambiente no arquivo .env, conforme necessário.
  3. Execute o seguinte comando para iniciar a aplicação:
python app.py

O arquivo .env contém as seguintes configurações:

TELEGRAM_TOKEN=""
TELEGRAM_CHAT_ID=""
ALERT_MESSAGE="[SITE] %SITE% FORA DO AR..."
SLEEP_TIME_SECONDS=5
ERRORS_TO_ALERT=5
URLS=["https://www.example.com/"]

💻 Código em Python

Aqui está o código completo em Python para realizar o monitoramento dos websites:

from datetime import datetime
import random
import json
import requests
import time
import os
from dotenv import load_dotenv

load_dotenv()

urls = os.getenv("URLS")
urls = urls.replace("'", '"')
urls = json.loads(urls)

max_erros = int(os.getenv("ERRORS_TO_ALERT"))
erros = 0

while True:
    now = datetime.now()
    timestamp = datetime.timestamp(now)
    posicao = random.randint(0, len(urls) - 1)
    url = urls[posicao] + "?v=" + str(int(timestamp))

    try:
        response = requests.get(url)

        if response.status_code != 200:
            erros += 1
            if erros == max_erros:
                TOKEN = os.getenv("TELEGRAM_TOKEN")
                CHAT_ID = os.getenv("TELEGRAM_CHAT_ID")
                URL = "https://api.telegram.org/bot" + TOKEN + "/sendMessage"
                msg = os.getenv("ALERT_MESSAGE").replace("%SITE%", urls[posicao])
                obj = {
                    "text": msg,
                    "chat_id": CHAT_ID
                }
                x = requests.post(URL, data=obj)
                erros = 0
            else:
                print("Total de Erros: ", erros)
        else:
            erros = 0
            print("Everything is OK :)")
    except:
        erros += 1
        if erros == max_erros:
            TOKEN = os.getenv("TELEGRAM_TOKEN")
            CHAT_ID = os.getenv("TELEGRAM_CHAT_ID")
            URL = "https://api.telegram.org/bot" + TOKEN + "/sendMessage"
            msg = os.getenv("ALERT_MESSAGE")
            obj = {
                "text": msg,
                "chat_id": CHAT_ID
            }
            x = requests.post(URL, data=obj)

            erros = 0
        else:
            print("Total de Erros: ", erros)
    time.sleep(int(os.getenv("SLEEP_TIME_SECONDS")))

Pronto! Agora você tem uma solução simples e eficiente para monitorar seus websites utilizando Python. Mantenha seus sites online e evite problemas de indisponibilidade que podem prejudicar seus usuários e sua reputação online.

Esperamos que este artigo tenha sido útil para você. Caso tenha alguma dúvida ou sugestão, deixe um comentário abaixo. Até a próxima! 😊

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Rolar para cima