Автоматизация 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 не будет опубликован.