Комментарий пользователя
Сканирование по расписанию настроил, отчеты формируются. Проблема в том, что узнаю я об этом, только когда сам зайду в интерфейс, — а заходить каждый день незачем, сканирование идет несколько часов и не каждый раз укладывается в одно и то же время. Хочу получать сообщение в Telegram. Насколько это сложно прикрутить и не завалит ли оно меня уведомлениями?
Ответ специалиста
Здравствуйте, Сергей!
Настраивается подобная интеграция просто, а «заспамить» уведомлениями не должно. Но второй вопрос здесь важнее первого, так что начну с него. Telegram в нашей схеме работает как конечная точка конвейера. Сообщение уходит один раз, когда пройден весь цикл: отчеты сформированы, задачи выполнены и удалены, можно сканировать новую инфраструктуру. Не при каждом изменении состояния задачи или актива — именно поэтому утонуть в спаме не получится. Если уведомление пришло, значит, действительно есть что смотреть.
Технически все сводится к библиотеке telebot и двум значениям — токену бота и идентификатору чата, куда слать:
telegram_bot_token = ''
chat_id = ''
И к функции отправки, которая вызывается по окончании работы скрипта:
def send_telegram_message(message):
try:
bot.send_message(chat_id, message)
print(f"Сообщение отправлено в Telegram: {message}")
except Exception as e:
print(f"Ошибка при отправке сообщения в Telegram: {e}")
Обратите внимание на оборачивание в try / except: если у бота отзовут токен или пропадет сеть, вы получите сообщение об ошибке в лог, а не молча оборвавшийся скрипт.
Само сообщение держите коротким, а детали смотрите уже в отчете. Гнать в мессенджер список уязвимостей смысла нет: читать его там неудобно, а чат превращается в тот самый шум, которого вы опасаетесь.