Войти в IT
Иногда может возникнуть необходимость мониторить веб-сервис или сайт в краткосрочной перспективе, разворачивать для этого готовое решение может быть нецелесообразно или вовсе не быть подходящей виртуалки и т.д.
Столкнувшись с этим решил написать простой скрипт на python, для кого-то он может показаться топорным, но задачу свою выполняет. Принцип следующий – после запуска скрипт каждые 10 минут опрашивает сайт на ошибки и его доступность, если возвращаемый код 200 (сайт доступен и с ним все хорошо), то в командной строке генерируется запись об этом с указанием времени опроса, если сайт недоступен (по умолчанию 5 сек), либо возвращаемая ошибка 502 Bad Gateway или же другие ошибки – скрипт отсылает указанному пользователю аларм об этом
from requests.exceptions import Timeout, ConnectionError
import telebot
import datetime
import schedule
print = (‘Скрипт запущен’)
bot = telebot.TeleBot(“Сюда вписать token бота – кавычки оставить“, parse_mode=None)
i = 1
idtg = ??? #Вместо вопросов вписать id telegram получателя
url = ‘сюда вписать домен или айпи сайта, кавычки оставить, например, https://imaxis.ru или http://192.168.1.2‘
def func(name):
global i
dt = datetime.datetime.today()
try:
r = requests.get(url, timeout=5) #timeout = можно изменить время таймаута в секундах
if r.status_code != 200:
bot.send_message(idtg, r.status+code + ‘Service is DOWN‘ + dt)
else:
print(‘Service UP‘)
print(dt)
except Timeout:
bot.send_message(idtg, ‘Service time-out‘)
except ConnectionError:
bot.send_message(idtg, ‘Service error connection‘)
except:
bot.send_message(idtg, ‘Error unknown‘)
schedule.every(600).seconds.do(func, name=’schedule’) #время опроса в секундах
while True:
schedule.run_pending()
Запустить скрипт можно и на windows и на linux с установленным python3 и доустановленными библиотеками
pip install requests
pip install schedule
pip install telebot
При желании можно скомпилировать в exe для винды
Скачать скрипт