
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:
- Instale as seguintes bibliotecas:
- python-dotenv
- requests
- Altere as variáveis de ambiente no arquivo
.env
, conforme necessário. - 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! 😊