Nikovit <Путешествия и разработка>

Пишем ping бота для Telegram на Python

  2018-04-19.jpg


Для простого мониторинга доступности ресурса нет смысла подымать Zabbix или Nagios, сегодня мы напишем простого бота который пингует ресурс/сайт и если ресурс не доступен то отправляет сообщение в Telegram.



Регистрируем бота, получаем токен, создаем канал как это описано в начале статьи

Также нам понадобиться библиотека для Python pyTelegramBotAPI

Устанавливаем библиотеку:
pip install pyTelegramBotAPI


Бот достаточно простой и незамысловатый, если у вас возникнут сложности то напишите в комментарии статьи, я обязательно отвечу.

import os
import telebot

hostname = "google.com"
channel = '@test'
token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

response = os.system('ping ' + hostname)
bot = telebot.TeleBot(token)


if response == 0:
  print(hostname + ' is up!')
else:
  print(hostname + ' is down!')
  bot.send_message(channel, hostname + ' is down!')

Запускаем по Cron в linux или Диспетчеру заданий в windows.

Github


0
Андрей
12.06.2018 07:25:39
А как дописать что бы можно было пинговать несколько машин???
Ответить Ссылка 0
0
16.08.2018 14:51:14
Обернуть в цикл for, а список доменов в словарь, должно получиться как то так:
import os
import telebot

hostname = ["google.com", yandex.ru]
channel = '@test'
token = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'

response = os.system('ping ' + hostname)
bot = telebot.TeleBot(token)

for domain in hostname:
    if response == 0:
      print(hostname + ' is up!')
    else:
      print(hostname + ' is down!')
      bot.send_message(channel, hostname + ' is down!')
Ответить Родитель Ссылка 0