- •Засоби аналізу та управління мережами методичні вказівки
- •1.1Основи роботи з PySnmp
- •1.2Керування архітектурою snmp
- •1.2.1PySnmp архітектура
- •1.3Стандартні snmp додатки (Синхронні додатки)
- •1.3.1Генератор синхронних команд
- •1.3.2Синхронний оригінатор повідомлень
- •1.4Стандартні snmp додатки (Асинхронні додатки)
- •1.4.1Асинхронний генератор команд
- •1.4.2Асинхронний оригінатор повідомлення
- •1.4.3Конфігурація безпеки
- •1.4.4Конфігурація транспортування
- •1.5.1Managed Objects імена і значення
- •1.5.2Managed Objects значення
- •1.6.1Модель даних для керованих об'єктів
- •1.7Приклад PySnmp скриптів
- •1.8NativeApi для стандартних додатків snmPv3
- •1.9Низький рівень api для операцій протоколу snmPv1/v2c
- •1.10Подальший розвиток
- •2.1Встановлення
- •2.2Використання
- •2.3Структура
- •3.1Основні особливості модуля:
- •3.2Елементи модуля
- •3.3Переваги і недоліки
- •4.1Особливості
- •4.2Опис “NetSnmp” модуля
- •4.3Використання Net-snmp і iPython
- •4.3.1Встановлення та налаштування Net-snmp
- •4.3.2Написання коду
- •4.4Переваги і недоліки
- •Засоби аналізу та управління мережами методичні вказівки
1.7Приклад PySnmp скриптів
Застосовується до PySNMP 4.2.3 і вище.
SNMP насправді непростий (PySNMP реалізації займає 15K рядків коду на Python), але PySNMP намагається ізолювати складності і дозволяє виконувати типові операції SNMP швидко та інтуїтивно зрозумілим способом. Такщо вам слід приступити до вирішення вашої проблеми з SNMP на найвищому рівніAPI, який називається "Oneliner" в PySNMP.
Перед тим, як вирізати і вставити в код у ваш Python перекладача, не забудьте встановити pysnmp, виконайте:
# Easy_install pysnmp
Також переконайтеся, або налаштуйте місцеве SNMPD і / або snmptrapd або використовуйте адресу і SNMP облікові дані вашого SNMP-агента в прикладах, щоб дозволити їм працювати.
Якщо в PySNMP додатку виникає непрогнозована помилка, спробуйте включити вбудоване PySNMP налагодження, додавши наступний фрагмент коду на початок вашої програми:
from pysnmp import debug
debug.setLogger(debug.Debug('all'))
Запустіть програму і подивіться STDERR. Debug ініціалізатор дозволяє налагодження конкретної PySNMP підсистеми, 'all ' дозволяє всім з них. Інші корисні значення: 'io', 'msgproc', 'secmod', 'mibbuild'
API високого рівня для стандартних додатків SNMPv3
Наступний код виконує SNMP GET операції:
використанням APIOneliner
з протоколом версії 2c
з 'public' ім'ям
IPv4/UDP
прослуховування агента на локальній машині (UDP порт 161)
from pysnmp.entity.rfc3413.oneliner import cmdgen
cmdGen = cmdgen.CommandGenerator()
errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
cmdgen.CommunityData('public'),
cmdgen.UdpTransportTarget(('localhost', 161)),
cmdgen.MibVariable('SNMPv2-MIB', 'sysName', 0)
)
# Check for errors and print out results
if errorIndication:
print(errorIndication)
else:
if errorStatus:
print('%s at %s' % (
errorStatus.prettyPrint(),
errorIndex and varBinds[int(errorIndex)-1] or '?'
)
)
else:
for name, val in varBinds:
print('%s = %s' % (name.prettyPrint(), val.prettyPrint()))
Більше прикладів на Oneliner API використовуться з SNMP такими застосуваннями:
Команда GET генератор (snmpget)
Команда SET генератор (snmpset)
GETNEXT команда генератор (snmpwalk)
GetBulk команда генератор (snmpbulkwalk)
Наступний код відправляє SNMP TRAP повідомлення:
Використання SNMP v2c
З 'public' ім'я
IPv4/UDP
Відправка повідомлення TRAP
“coldStart” TRAP ID зазначено як символ MIB
Включає керований об'єкт даних, вказаних в якості символу MIB
from pysnmp.entity.rfc3413.oneliner import ntforg
ntfOrg = ntforg.NotificationOriginator()
errorIndication = ntfOrg.sendNotification(
ntforg.CommunityData('public'),
ntforg.UdpTransportTarget(('localhost', 162)),
'trap',
ntforg.MibVariable('SNMPv2-MIB', 'coldStart'),
(ntforg.MibVariable('SNMPv2-MIB', 'sysName', 0), 'new name')
)
if errorIndication:
print('Notification not sent: %s' % errorIndication)
1.8NativeApi для стандартних додатків snmPv3
Якщо ви опинитеся не в змозі використовувати певні функції SNMP з "Oneliner" API, ваш наступний крок буде використовуватипослуги SNMPv3 двигуна через один зі стандартних додатків SNMP (зазначений RFC3413).
Оскільки всі ці приклади побудовані на загальних PySNMP компонентах, таких як SNMP двигун, I / O диспетчера, конфігурація сховища даних, ви завжди можете комбінувати частини з прикладів для отримання нової версії SNMP додатка найбільш підходящого до вашим потреб.
SNMPv3 додаток генератора команд:
Команда GET генератор (snmpget)
Команда SET генератор (snmpset)
GETNEXT команда генератор (snmpwalk)
GetBulk команда генератор (snmpbulkwalk)
SNMPv3 додаток команди відповідача:
GET / SET / GETNEXT / GetBulk команда відповідача (SNMP Agent)
SNMPv3 додаток оригінатор повідомлення:
TRAP повідомлення ініціатора (SNMPTRAP)
ІNFORM повідомлення ініціатора (snmpinform)
SNMPv3 додаток повідомлення приймач:
Повідомлення приймач (ресивер SNMP TRAP)
