Автоматизация MikroTik RouterOS + Telegram Bot

mikrotik + telegram bot

В этой статье рассмотрены возможности автоматизации корпоративной сети с помощью Telegram-бота.

Типы автоматизации сети

Автоматизация сети, как и многие типы автоматизации, определяется как набор средств для более быстрого выполнения рабочих операций. Повышение производительности работы — это прекрасно, но сокращение времени развертывания и внесения изменений в конфигурацию далеко не всегда является именно той задачей, которую необходимо решить многим ИТ-организациям.

Типы автоматизации сети:

  • Подготовка и настройка устройств — автоматизация создания файлов конфигурации устройств.
  • Сбор данных.
  • Переходы между платформами (сетевое оборудование разных вендоров).
  • Управление конфигурацией – развертывание, передача и управление состоянием конфигурации устройства. Это касается не только простейших операций, таких как подготовка к работе виртуальной локальной сети, но и более сложных многоэтапных рабочих процессов конфигурирования top-of-rack коммутаторов, сетевых экранов (firewalls) , балансировки нагрузки и развитой инфраструктуры защиты.
  • Совместимость – проверка совместимости конфигураций и валидация конфигурации.
  • Составление отчетов.
  • Устранение проблем — разработка процесса и методики устранения проблем и неисправностей (например, сначала выполняется проверка уровня 2 модели OSI до начала процесса устранения неисправностей на уровне 3) .

Для автоматизации сети системные администраторы используют разные инструменты, протоколы и интерфейсы. В сетевом оборудовании MikroTik под управлением RouterOS можно отправлять сообщения по e-mail и SMS (если в устройстве присутствует и настроен модуль LTE) .

На сегодняшний день альтернативой классическим сообщениям является использование различных ботов в мессенджерах (Whatsapp, Viber и Telegram). Вариант с отправкой Push-сообщений прямо на смартфон, планшет или даже ПК (Windows, Debian, CentOS, MacOS, Linux и т. д.). Все это бесплатно, без использования платных сервисов-посредников и минимальных затрат времени.

Именно мессенджер Telegram лучше всего использовать для автоматизации, поскольку много информации есть на официальной странице относительно написания ботов, их конфигурации и функционала.

Итак, отправку Push-сообщений реализуем с помощью сервиса Telegram, у которого есть удобный API для управления ботами.

Начинаем работу с Telegram

Прежде всего, загружаем официальное мобильное приложение Telegram, или если для ПК, то загружаем приложение в зависимости от используемой операционной системы.

С помощью поиска необходимо найти контакт @BotFather  – это главный бот, с помощью которого можно создавать новые боты и управлять уже существующими.

При желании, боту можно будет сменить имя, информацию о нем, а также скачать для него аватар. Дальнейшее общение с ботом будет проходить в виде текстовых команд. Для создания нового бота, выполните команду:

/newbot

После ввода и отправки команды, главный бот запросит имя, в нем допускаются пробелы и произвольный формат самого названия.

После того, как указали имя бота, бот запросит желаемый %username% . При выборе %username% обязательным условием является суффикс «bot» в конце имени (например, MikrotikBot или Mikrotik_bot) .

Если все прошло успешно, @BotFather ответит сообщением, содержащим специальный token для доступа к API. Сам токен состоит из 2 частей, разделенных двоеточием, например:

12558568:Hgsgf74tv7efcdfvhdvhfvcbn65imghmj

Следующим шагом рекомендуется проверить доступность API для вашего бота, делается это в браузере путем открытия специального URL:

https://api.telegram.org/bot<ваш_токен>/getMe

проверить доступность API бота

проверить доступность API бота

Система возвращает ответы в формате JSON, в коде ответа должен находиться параметр «ok: true», если он есть — API доступен.

Итак, бот почти готов, осталось только научить Mikrotik отправлять сообщения, используя API Telegram. Перед тем, как приступить к настройке RouterOS, необходимо узнать ID чата.

В приложении Telegram, с помощью поиска необходимо найти контакт нашего бота @MikrootBor  – это созданный нами бот.

Отправляем нашу боту команду:

/start

После чего в браузере открываем специальный URL:

https://api.telegram.org/bot<ваш_токен>/getUpdates

id

В ответе нас интересует параметр message=>chat=>id , в нем хранится уникальный идентификатор чата между вами и созданным ботом. По сути это ваш идентификатор как пользователя, он будет идентичен для всех ботов в рамках одного аккаунта.

Отправка тестового Telegram-сообщения

Теперь у нас есть все необходимое, чтобы отправлять сообщения с помощью API. Отправка сообщений осуществляется с помощью браузера, по специально сформированной ссылке, которая имеет следующий вид:

https://api.telegram.org/bot<ваш_токен>/sendMessage?chat_id=<id_чату>&text=<сообщение>

Параметры:

  • ваш_токен  – ваш уникальный токен для доступа к API, полученный ранее;
  • id_чата – уникальный идентификатор чата, в который нужно отправить сообщение;
  • сообщение  — текст сообщения.

Текст сообщения может быть на любом языке. Для сообщения на латинице, отступы следует заменять на «%20», точно так же, как это делается в обычных URL. Чтобы отправить сообщение кириллицей, предварительно текст необходимо конвертировать с помощью urlencode, это встроенная функция PHP. Наиболее простой вариант – воспользоваться любым онлайн сервисом, конвертацию выполняем в кодировку UTF-8 .

Отправляем сообщения из Mikrotik RouterOS

Отправить сообщение с RouterOS не составляет особого труда. Для этого можно воспользоваться следующим кодом:

https://api.telegram.org/bot<ваш_токен>/sendMessage?chat_id=<id_чату>&text=<сообщение>

В консоли RouterOS символ используется для вывода справки меню в консоли. Следующие последовательности могут быть использованы для добавления спецсимволов в строки:

  • — двойные кавычки
  • \ — обратный слэш
  • \N — символ конца строки
  • \R — return
  • \T — горизонтальная табуляция
  • $ — знак доллара
  • ? — вопросительный знак. спецназначение этого символа – выводить справку меню
  • \A — звуковой сигнал терминала BEL (0×07)
  • \B — бэкспейс
  • \F — form feed (0xFF)
  • \V — вертикальная табуляция
  • \Xx — шестнадцатеричный код символа

Для того чтобы отправить тестовое сообщение из консоли, используем sendMessage?chat_id:

/tool fetch url="https://api.telegram.org/bot<ваш_токен>/sendMessage?chat_id=<id_чата>&text=<сообщение>" keep-result=no

Для настройки вы можете воспользоваться стандартными возможностями System — Scripts . Вот собственно и все, остальное за вами.

Как вариант эту систему сообщений можно использовать при отключении основного интернет-канала, Mikrotik может отправить сообщение, используя резервный канал. При этом этот метод абсолютно бесплатен, в отличие от обычных SMS, за которые оператор взимает плату. Единственное ограничение – доступ к Интернет на самом Mikrotik и конечном устройстве с приложением Telegram (отправка и получение).

Пример использования Push-сообщений на Telegram-бота при пропадании связи с сервером

Лично я использую Push-сообщение от Telegram Bot при обнаружении критических ошибок в файле логирования и авторизации на сетевом оборудовании. В качестве простого примера можно использовать Telegram API в связке со встроенным инструментом Netwatch, он предельно прост в использовании и настройке.

mikrotik Netwatch

mikrotik Netwatch

Параметры Netwatch :

  • Host  — пингируемый узел.
  • Interval  – интервал в секундах между попытками проверки, по умолчанию 1 минута.
  • Timeout  – задержка чтения, по умолчанию 1000 мс.
  • Во вкладках  UP и  DOWN пишется код, который нужно выполнить, когда хост доступен либо недоступен. Команды (скрипт) выполняются только при изменении статуса с up на down или наоборот.
mikrotik Netwatch status up

mikrotik Netwatch status up

mikrotik Netwatch status down

mikrotik Netwatch status down

Пример отправленных Push-сообщений на Telegram-бота при пропадании и восстановлении связи с сервером:

telegram bot пример сообщений

telegram bot пример сообщений

Теперь вы знаете, как реализовать отправку Push-сообщений с сетевого оборудования MikroTik RouterOS на собственноручно созданный Telegram Bot. За Вами как за системным администратором остается выбор событий на оборудовании, которые будут запускать механизм отправки сообщений.

Вам может также понравиться...

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *


Срок проверки reCAPTCHA истек. Перезагрузите страницу.