[IT-инфраструктура, Open source, Python] Как я делал Telegram-бота для работы с сетью
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Добрый день!
Я поделюсь с Вами интересным опытом по созданию мобильного инструмента для работы с сетью.
Предисловие
Я отработал несколько лет в провайдерах, начиная с маленького — до федерального. Придя в «Федерала» я столкнулся с большим количеством рутины, и появилось желание автоматизировать тот самый рутинный процесс.
2013 год. У меня есть товарищ, который так же работал в одном из «федералов», подключая клиентов и была история, когда он мне дал в руки телефон и полез на чердак что-то там делать с коммутатором. Я снизу стоял с телефоном на котором была открыта веб страничка с разными интересными скриптами. Скрипты эти выполняли проверку порта на коммутаторе, чистку ошибок и прочего.
То есть, инженер придя на адрес не беспокоил администратора по глупостям, т.к. у него самого был инструмент для работы с сетью.
На дворе июнь 2018 года, и я мучался с мыслями о том что «А почему бы не написать бота который бы проверял оборудование разного уровня(ядро, агрегация, доступ)?». Проблема была в том что избавится от рутины хотел только я один, остальные жили сегодняшним днём.
Выбор языка программирования и платформы
Ребят, ну конечно же Python. На момент задумок я уже имел кое-какие навыки и небольшой опыт написания скриптов. Платформа была выбрана дружелюбная — Telegram т.к. все IT-шники там и обитают.
Выбор библиотек для написания бота
1. Библиотека для работы с Telegram. pyTelegramBotAPI угасал, тем более во времена блокировок хотелось быстро дружиться с прокси и прочими вещами. Я выбрал python-telegram-bot, и за основу взял Conversation.
2. Библиотека для работы с оборудованием. Из-за простоты работы, мой выбор пал на — python3-netsnmp.
Основа положена, пришло время писать.
Погнали
Сеть была зоопарком железа и пришлось брать отдельно вендора определенного и работать с ним. Так же важное условие было, наличие MIB-ов для выполнения задач.
Одна из задач была проверка длины кабеля и состояние пар, проверка состояния портов и наличия ошибок на портах.
Сейчас многие напишут мол — «Ну а что без SNMP обойтись было нельзя?». Отвечу, что — «Да, нельзя, если вы хотите снимать данные нормальным человеческим образом — то только SNMP.»
Сейчас кого-то уже подгорает пукан и он пишет что только NETCONF.
Пройдя оборудование доступа и реализовав с ним работу в боте, я столкнулся с тем что иногда действительно для специфичных задач, который протокол SNMP не решит, придётся заходить на оборудование.
На помощь мне пришла библиотека netmiko — и я по-прежнему остаюсь ей доволен. Она решила очень много задач даже не связанных с ботом. Количество поддерживаемого оборудования просто огонь.
Так же для проверки IP-адресов мне очень пригодилась библиотека ipaddress
В целом, при программировании я учел много нюансов начиная от авторизации пользователя в боте до выдачи ему разных прав.
Функционал рос
Да, функционал действительно рос, а с ним и росла поддержка определенного оборудования. Я добавлял оборудование радио доступа, оптические приемники КТВ.
Как-то ко мне пришли люди и говорят вот мы будем ставить домофоны. Я головой своей понимаю что настройка так же ляжет на мои плечи и плечи коллег.
Я начал щупать, смотреть. Читал API, которое благо там было. Выбрал самую простую библиотеку для работы с HTTP и HTTPS — requests.
Накрутив уже работу с домофонами появились потребности в базе, но как обычно ленивой *опе сильно напрягаться не хотелось. Поэтому выбор пал на sqlite3. Библиотека так же была выбрана максимально простая — это dataset.
Тучи сгущаются
В какой-то момент работы становилось безумно много и моё детище по факту жило самостоятельно. Работы много, денег мало — ну вы думаю улавливаете нотку. Я решил покинуть это заведение. Отработав несколько лет в федерале — я неплохо прокачал skill по работе с языком программирования. Остался очень этим доволен.
Эпилог
Пожалуй, это толи большая, толи не очень история подошла к завершению. Сетевик на мой взгляд без программирования никуда, особенно с зоопарком железа. В итоге парк поддерживаемого оборудования был такой:
— 23 модели коммутаторов доступа
— 3 модели оптических приемников КТВ
— 4 модели шассийных коммутаторов
— 1 модель шассийного маршрутизатора
— 3 модели оборудования радио доступа
===========
Источник:
habr.com
===========
Похожие новости:
- [Системное администрирование, IT-инфраструктура, Исследования и прогнозы в IT, DevOps] Первое исследование состояния DevOps в России
- [Системное администрирование, Сетевые технологии] Миграция с Zimbra OSE 8.8.15 на Zimbra 9 Open Source от Zextras
- [Системы обмена сообщениями, Сетевые технологии, Софт] Дуров объявил о введении инструментов по борьбе с цензурой в Telegram в Беларуси
- [Open source, Системное администрирование, IT-инфраструктура, Конференции] Онлайн митап Zabbix об информационной безопасности | 28 августа
- [Системное администрирование, IT-инфраструктура, Визуализация данных, DevOps] Язык запросов для TSDB. Улучшаем PromQL (Александр Валялкин, VictoriaMetrics)
- [IT-инфраструктура] Почтовая марка: от бумаги к QR-коду
- [MySQL, Облачные вычисления, MongoDB, Kubernetes] Как собрать гибридное облако с помощью Kubernetes, которое может заменить DBaaS
- [Open source, Python, Алгоритмы] Алгоритм ранжирования сегментов речной сети с использованием графов для геоинформационного анализа
- [Информационная безопасность, IT-инфраструктура, Сетевые технологии, Визуализация данных, Сетевое оборудование] Решения визуализации сети для повышения эффективности архитектуры сетевой безопасности и мониторинга
- [Разработка веб-сайтов, PHP, Программирование, Будущее здесь] Как будет выглядеть программирование в 2025 году? (перевод)
Теги для поиска: #_itinfrastruktura (IT-инфраструктура), #_open_source, #_python, #_python, #_netsnmp, #_telegram, #_pythontelegrambot, #_network_programming, #_itinfrastruktura (
IT-инфраструктура
), #_open_source, #_python
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:03
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Добрый день! Я поделюсь с Вами интересным опытом по созданию мобильного инструмента для работы с сетью. Предисловие Я отработал несколько лет в провайдерах, начиная с маленького — до федерального. Придя в «Федерала» я столкнулся с большим количеством рутины, и появилось желание автоматизировать тот самый рутинный процесс. 2013 год. У меня есть товарищ, который так же работал в одном из «федералов», подключая клиентов и была история, когда он мне дал в руки телефон и полез на чердак что-то там делать с коммутатором. Я снизу стоял с телефоном на котором была открыта веб страничка с разными интересными скриптами. Скрипты эти выполняли проверку порта на коммутаторе, чистку ошибок и прочего. То есть, инженер придя на адрес не беспокоил администратора по глупостям, т.к. у него самого был инструмент для работы с сетью. На дворе июнь 2018 года, и я мучался с мыслями о том что «А почему бы не написать бота который бы проверял оборудование разного уровня(ядро, агрегация, доступ)?». Проблема была в том что избавится от рутины хотел только я один, остальные жили сегодняшним днём. Выбор языка программирования и платформы Ребят, ну конечно же Python. На момент задумок я уже имел кое-какие навыки и небольшой опыт написания скриптов. Платформа была выбрана дружелюбная — Telegram т.к. все IT-шники там и обитают. Выбор библиотек для написания бота 1. Библиотека для работы с Telegram. pyTelegramBotAPI угасал, тем более во времена блокировок хотелось быстро дружиться с прокси и прочими вещами. Я выбрал python-telegram-bot, и за основу взял Conversation. 2. Библиотека для работы с оборудованием. Из-за простоты работы, мой выбор пал на — python3-netsnmp. Основа положена, пришло время писать. Погнали Сеть была зоопарком железа и пришлось брать отдельно вендора определенного и работать с ним. Так же важное условие было, наличие MIB-ов для выполнения задач. Одна из задач была проверка длины кабеля и состояние пар, проверка состояния портов и наличия ошибок на портах. Сейчас многие напишут мол — «Ну а что без SNMP обойтись было нельзя?». Отвечу, что — «Да, нельзя, если вы хотите снимать данные нормальным человеческим образом — то только SNMP.» Сейчас кого-то уже подгорает пукан и он пишет что только NETCONF. Пройдя оборудование доступа и реализовав с ним работу в боте, я столкнулся с тем что иногда действительно для специфичных задач, который протокол SNMP не решит, придётся заходить на оборудование. На помощь мне пришла библиотека netmiko — и я по-прежнему остаюсь ей доволен. Она решила очень много задач даже не связанных с ботом. Количество поддерживаемого оборудования просто огонь. Так же для проверки IP-адресов мне очень пригодилась библиотека ipaddress В целом, при программировании я учел много нюансов начиная от авторизации пользователя в боте до выдачи ему разных прав. Функционал рос Да, функционал действительно рос, а с ним и росла поддержка определенного оборудования. Я добавлял оборудование радио доступа, оптические приемники КТВ. Как-то ко мне пришли люди и говорят вот мы будем ставить домофоны. Я головой своей понимаю что настройка так же ляжет на мои плечи и плечи коллег. Я начал щупать, смотреть. Читал API, которое благо там было. Выбрал самую простую библиотеку для работы с HTTP и HTTPS — requests. Накрутив уже работу с домофонами появились потребности в базе, но как обычно ленивой *опе сильно напрягаться не хотелось. Поэтому выбор пал на sqlite3. Библиотека так же была выбрана максимально простая — это dataset. Тучи сгущаются В какой-то момент работы становилось безумно много и моё детище по факту жило самостоятельно. Работы много, денег мало — ну вы думаю улавливаете нотку. Я решил покинуть это заведение. Отработав несколько лет в федерале — я неплохо прокачал skill по работе с языком программирования. Остался очень этим доволен. Эпилог Пожалуй, это толи большая, толи не очень история подошла к завершению. Сетевик на мой взгляд без программирования никуда, особенно с зоопарком железа. В итоге парк поддерживаемого оборудования был такой: — 23 модели коммутаторов доступа — 3 модели оптических приемников КТВ — 4 модели шассийных коммутаторов — 1 модель шассийного маршрутизатора — 3 модели оборудования радио доступа =========== Источник: habr.com =========== Похожие новости:
IT-инфраструктура ), #_open_source, #_python |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 22-Ноя 20:03
Часовой пояс: UTC + 5