Русский
Русский
English
Статистика
Реклама

Из песочницы Как я делал Telegram-бота для работы с сетью

Добрый день! image Я поделюсь с Вами интересным опытом по созданию мобильного инструмента для работы с сетью.

Предисловие

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

2013 год. У меня есть товарищ, который так же работал в одном из федералов, подключая клиентов и была история, когда он мне дал в руки телефон и полез на чердак что-то там делать с коммутатором. Я снизу стоял с телефоном на котором была открыта веб страничка с разными интересными скриптами. Скрипты эти выполняли проверку порта на коммутаторе, чистку ошибок и прочего.

То есть, инженер придя на адрес не беспокоил администратора по глупостям, т.к. у него самого был инструмент для работы с сетью.

На дворе июнь 2018 года, и я мучался с мыслями о том что А почему бы не написать бота который бы проверял оборудование разного уровня(ядро, агрегация, доступ)?. Проблема была в том что избавится от рутины хотел только я один, остальные жили сегодняшним днём.

Выбор языка программирования и платформы

Ребят, ну конечно же Python. На момент задумок я уже имел кое-какие навыки и небольшой опыт написания скриптов. Платформа была выбрана дружелюбная Telegram т.к. все IT-шники там и обитают.

Выбор библиотек для написания бота

1. Библиотека для работы с Telegram. pyTelegramBotAPI угасал, тем более во времена блокировок хотелось быстро дружиться с прокси и прочими вещами. Я выбрал python-telegram-bot, и за основу взял Conversation.

2. Библиотека для работы с оборудованием. Из-за простоты работы, мой выбор пал на python3-netsnmp.
Основа положена, пришло время писать.

Погнали

Сеть была зоопарком железа и пришлось брать отдельно вендора определенного и работать с ним. Так же важное условие было, наличие MIB-ов для выполнения задач.

Одна из задач была проверка длины кабеля и состояние пар, проверка состояния портов и наличия ошибок на портах.

Сейчас многие напишут мол Ну а что без SNMP обойтись было нельзя?. Отвечу, что Да, нельзя, если вы хотите снимать данные нормальным человеческим образом то только SNMP.
Сейчас кого-то уже подгорает пукан и он пишет что только NETCONF.

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

На помощь мне пришла библиотека netmiko и я по-прежнему остаюсь ей доволен. Она решила очень много задач даже не связанных с ботом. Количество поддерживаемого оборудования просто огонь.

Так же для проверки IP-адресов мне очень пригодилась библиотека ipaddress

image

image

image

В целом, при программировании я учел много нюансов начиная от авторизации пользователя в боте до выдачи ему разных прав.

Функционал рос

Да, функционал действительно рос, а с ним и росла поддержка определенного оборудования. Я добавлял оборудование радио доступа, оптические приемники КТВ.

Как-то ко мне пришли люди и говорят вот мы будем ставить домофоны. Я головой своей понимаю что настройка так же ляжет на мои плечи и плечи коллег.

Я начал щупать, смотреть. Читал API, которое благо там было. Выбрал самую простую библиотеку для работы с HTTP и HTTPS requests.
Накрутив уже работу с домофонами появились потребности в базе, но как обычно ленивой *опе сильно напрягаться не хотелось. Поэтому выбор пал на sqlite3. Библиотека так же была выбрана максимально простая это dataset.

Тучи сгущаются

В какой-то момент работы становилось безумно много и моё детище по факту жило самостоятельно. Работы много, денег мало ну вы думаю улавливаете нотку. Я решил покинуть это заведение. Отработав несколько лет в федерале я неплохо прокачал skill по работе с языком программирования. Остался очень этим доволен.

Эпилог

Пожалуй, это толи большая, толи не очень история подошла к завершению. Сетевик на мой взгляд без программирования никуда, особенно с зоопарком железа. В итоге парк поддерживаемого оборудования был такой:
23 модели коммутаторов доступа
3 модели оптических приемников КТВ
4 модели шассийных коммутаторов
1 модель шассийного маршрутизатора
3 модели оборудования радио доступа
Источник: habr.com
К списку статей
Опубликовано: 12.08.2020 06:16:44
0

Сейчас читают

Комментариев (0)
Имя
Электронная почта

It-инфраструктура

Open source

Python

Net-snmp

Telegram

Python-telegram-bot

Network programming

Категории

Последние комментарии

  • Имя: Макс
    24.08.2022 | 11:28
    Я разраб в IT компании, работаю на арбитражную команду. Мы работаем с приламы и сайтами, при работе замечаются постоянные баны и лаги. Пацаны посоветовали сервис по анализу исходного кода,https://app Подробнее..
  • Имя: 9055410337
    20.08.2022 | 17:41
    поможем пишите в телеграм Подробнее..
  • Имя: sabbat
    17.08.2022 | 20:42
    Охренеть.. это просто шикарная статья, феноменально круто. Большое спасибо за разбор! Надеюсь как-нибудь с тобой связаться для обсуждений чего-либо) Подробнее..
  • Имя: Мария
    09.08.2022 | 14:44
    Добрый день. Если обладаете такой информацией, то подскажите, пожалуйста, где можно найти много-много материала по Yggdrasil и его уязвимостях для написания диплома? Благодарю. Подробнее..
© 2006-2024, personeltest.ru