TGViewer
DevOps Portal | Linux DevOps Portal | Linux @loose_code · 13.1K subscribers
Post #755 3.89K
Мониторинг сети с помощью Python: Начни с SNMP и PySNMP

Мониторинг сетевой инфраструктуры — это основа стабильной работы ИТ-экосистемы. С помощью Python и библиотеки PySNMP можно собрать данные о состоянии устройств и использовать их для анализа или визуализации. Сегодня рассмотрим пример простого скрипта для сбора информации через SNMP.

Что такое SNMP?

SNMP (Simple Network Management Protocol) — это стандартный протокол управления сетями. Он используется для:

🔹Сбора метрик с устройств (CPU, память, трафик интерфейсов).
🔹Отправки уведомлений о событиях.
🔹Управления конфигурацией.

Установка PySNMP

Для работы установим библиотеку PySNMP:
pip install pysnmp


Пример скрипта: Сбор метрик интерфейса

Вот пример кода, который получает статистику интерфейса по OID:
from pysnmp.hlapi import *

# Укажите параметры устройства
snmp_target = '192.168.1.1'
community = 'public'
oid = '1.3.6.1.2.1.2.2.1.10.1' # OID для входящего трафика интерфейса

# Запрос SNMP
def get_snmp_data(target, community, oid):
iterator = getCmd(
SnmpEngine(),
CommunityData(community, mpModel=0),
UdpTransportTarget((target, 161)),
ContextData(),
ObjectType(ObjectIdentity(oid))
)
error_indication, error_status, error_index, var_binds = next(iterator)

if error_indication:
print(f"Error: {error_indication}")
elif error_status:
print(f"Error: {error_status.prettyPrint()}")
else:
for var_bind in var_binds:
print(f"{var_bind[0]} = {var_bind[1]}")

# Выполнение запроса
get_snmp_data(snmp_target, community, oid)


Как это работает:
1. getCmd выполняет запрос на устройство по указанному OID.
2. CommunityData указывает тип доступа (public — стандартное имя сообщества для чтения).
3. Результат содержит текущую метрику (например, объем входящего трафика на интерфейсе).

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

Что дальше?

Для визуализации собранных данных можно использовать библиотеки, такие как Matplotlib или Pygal. Это позволяет легко строить графики, показывающие состояние сети.

👉 DevOps Portal
  • 👍 15
  • ❤ 1
More from @loose_code
  1. Oct 6, 2026Как работает Kubernetes Cluster Autoscaler? Базовый флоу выглядит так Pending Pod → Cluste…
  2. Oct 6, 2026Что будет, если убрать репликацию с диска?☁️ В K2 Cloud проверили и запустили сетевые нере…
  3. Oct 1, 2026Обработка миллионов файлов – это та точка, где большинство распределённых систем хранения…
  4. Oct 1, 2026Планы на 3 октября — прийти на RWB Infra x Security Meetup Мы направим прожекторы на инфра…
  5. Oct 1, 2026Docker 101: Как достучаться до контейнера без проброса порта Знали, что IP-адрес контейнер…
  6. Sep 30, 2026В этой статье разбирается, как спроектировать production-ready MCP-сервер для платформенны…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →