Мониторинг сетевой инфраструктуры — это основа стабильной работы ИТ-экосистемы. С помощью 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