Организуем небольшой мониторинг для устройств MikroTik

Рейтинг
Оценка: 5Голосов: 4Комментарии: 4

Сам мониторинг заключается в следующем. Допустим у нас, есть три устройства Mikrotik RB951G-2HnD, Mikrotik CCR1036-12G-4S-EM и Mikrotik OmniTik UPA-5HnD с IP-адресами 172.16.15.2, 172.16.15.3, 172.16.15.4.

Скрипт будет проверять возможность подключения к устройствам по портам. В случае с MikroTik будем использовать API порт, если же вы будете мониторить другие устройства, например Ubiquiti, можно использовать 22 порт для подключения к SSH серверу.

Если скрипту не удастся подключиться к какому-то устройству, это будет означать, что устройство не доступно и скрипт должен уведомить администратора при помощи смс сообщения.

Рассылку смс будем осуществлять с помощью сервиса smsc.ru.

Рис.1. Скачиваем API

Рис.1. Скачиваем API

 

Скрипт будем писать на Python, поэтому на сайте сервиса смс рассылки переходим на вкладку API и скачиваем готовый класс для Python.

Рис.2. Файлы проекта

Рис.2. Файлы проекта

 

Наш небольшой проект будет состоять всего из трех файлов.

Smsc_api.ru – непосредственно готовый класс который мы скачали с сайта, сервиса смс рассылки и, с помощью которого, наши скрипты будут взаимодействовать с данным сервисом. В данный файл, необходимо добавить настройки, которые вы получите после регистрации в сервисе.

smsdistribution.ru – файл с функцией для отправки смс сообщения.

worked_servers.ru – файл, проверяющий доступность серверов.

Рис.3. Содержание файла

Рис.3. Содержание файла smsdistribution.ru

 

importsmsc_api – импорт готового класса для взаимодействия с сервером смс рассылки.

deff_send_sms(name_server): – создаем функцию, которая будет выполнять отправку смс. Данная функция в качестве аргумента принимает название неработающего сервера.

smsc = smsc_api.SMSC() – создаем экземпляр класса.

phones = “+380970321725″ – телефон администратора, которому должно прийти смс сообщение.

message = “Не доступен ” + name_server – в текстовом сообщении, которое будет приходить через смс, указываем что сервер не доступен и название сервера.

smsc.send_sms(phones, message, sender=”asp24.com.ua”) – вызов метода отправки смс сообщения, который в качестве аргументов, принимает номер телефона получателя, текст сообщения и название от кого было отправлено сообщение.  В данном случае мы указали asp24.com.ua, вы можете указать название своей организации.

Рис.4. Скрипт проверки работоспособности устройств MikroTik

Рис.4. Скрипт проверки работоспособности устройств MikroTik

 

importsocket – импортируем модуль для работы с сетевыми сокетами.

.

servers = [["172.16.15.2", 8728, "MikrotikRB951G-2HnD"], ["172.16.15.3", 8728, "MikrotikCCR1036-12G-4S-EM"]] – создаем список, в котором будут хранится IP-адрес, порт подключения и название устройств, которые необходимо мониторить.

.

forserverinservers: – в цикле перебираем список устройств MikroTik, которые необходимо мониторить.

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) – создаем сокет.

sock.settimeout(0.01) – задаем значение timeout, время которое будет ожидать скрипт, для получения ответа от устройства.

try:

sock.connect((server[0], server[1])) – выполняем соединение с устройством MikroTik передав в качестве аргумента IP-адрес и номер порта устройства MikroTik.

except:

В случае если устройство не доступно, выводим соответствующее сообщение на экран и отправляем смс администратору, указав название сервера.

print (“Сервер ” + server[2] + ” не доступен”)

importsmsdistribution

smsdistribution.f_send_sms(server[2])

.

else:

Если устройство MikroTik доступно, выводим соответствующее сообщение на экран, и не выполняем отправку сообщения.

print (“Сервер ” + server[2] + ” доступен”).

Вас может заинтересовать

 
28690 грн 1039.50 у.е.
Купить
 
2401 грн 87 у.е.
Купить
 
2042 грн 74 у.е.
Купить

Если Вы нашли ошибку в тексте, то выделите ее мышкой и нажмите Ctrl + Enter или нажмите здесь.

Сообщение об ошибке

Ошибка:

Ваш комментарий (не обязательно):

Да Отмена

Об авторе Evgenij_Rudchenko

Ник для комментариев: tx