
- •Засоби аналізу та управління мережами методичні вказівки
- •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Переваги і недоліки
- •Засоби аналізу та управління мережами методичні вказівки
2.1Встановлення
TwistedSNMP поширюється у вигляді пакетів Python Distutils. Ви можете встановити розпакувавши дистрибутив і запустити:
setup.py install
Вам знадобиться і Twisted і PySNMP 3.x або встановлений PySNMP-SE. PySNMP-SE пакет дозволяє більш швидке сканування, але повертає кортеж на основі ідентифікаторів. PySNMP-SE рекомендується для використання для всіх нових TwistedSNMP розробок.
2.2Використання
TwistedSNMP призначений для забезпечення інтерфейсу API для роботи з віддаленим SNMP агентами в припущенні, що код буде використовуватися на стороні менеджера додатків. На даний момент, він не підтримує Trap обігу.
Для операцій на стороні менеджера, ми можемо використовувати функції порту в модулі snmpprotocol для створення нового об'єкта порту з прикріпленим об'єктом SNMPProtocol.При цьому, ми можемо створити будь-яку кількість об'єктів AgentProxy, які забезпечують API,що ми використовуємо для запитів SNMP-агентів.
port = snmpprotocol.port() proxy = agentproxy.AgentProxy( ipAddress, 161, community = sys.argv[2], snmpVersion = 'v2', protocol = port.protocol, allowCache = True,
Як тільки ми отримаємо AgentProxy, у нас є три основні точки входу. Перша "get", яка витягає окремі значення OID. Ви можете побачити повний приклад використання в simpleget.py :
df = proxy.get( oids, timeout=.25, retryCount=5)
відкладений об'єкт, що повертається методом Get буде спрацьовувати зі словником відображення {OID: значення} для кожного OID в ідентифікаторі. Ідентифікатори, які не були присутні на агенті не повернуть None. Якщо Агент не вертає значення або повертає помилку, то буде спрацьовувати відкладений errback ланцюг з поверненням помилки.
Друга точка входу є "GetTable", яка витягує всі суб-ідентифікатори для кожного OID в списку
приклад використання в simplegettable.py :
df = proxy.getTable(oids, timeout=.25, retryCount=5)
відкладений об'єкт, що повертається методом GetTable буде спрацьовувати зі словником відображення {rootOID: {OID: значення}} для кожного rootOID в ідентифікаторах rootOIDs, які не були присутні на агенті. Якщо Агент не вертає значення або повертає помилку, то буде спрацьовувати відкладений errback ланцюг з поверненням помилки.
Третя точка входу "set", яка має вигляд пари {OID: значення} і додавання значень до агента. Приклад використання в simpleset.py :
df = proxy.set(oidSet, timeout=.25, retryCount=5)
На даний момент значення, що повертається для відкладеного об'єкта є лише SNMP повідомлення, повернутого з агента.
2.3Структура
__init__ – TwistedSNMP: SNMP протокол для реалізації TwistedMatrix
agent – логіка для SNMP агента (Server) на стороні реалізації
agentprotocol – протокол реалізації API на стороні агента / менеджера
agentproxy – для запиту агента через SNMP Protocol настороні клієнта / менеджера
bisectoidstore – у пам'яті OIDStore базується на стандартному модулі
bsdoidstore –BSDDBBTree на основі OID зберігання
errors – помилки, характерні для TwistedSNMP
logs – можливість журналізування TwistedSNMP
massretriever – утиліта-механізм вилучення OIDs / таблиці з великого числа агентів
netsnmpagentproxy oidstore – абстрактний інтерфейс для зберігання об'єктів OID
oidstub – модуль для збільшення швидкості реалізації кортежу OID
pysnmpproto – створення одного робочого місця для імпорту v2c таv1 протоколів
setup – налаштування twistedsnmp з використанням Distutils
snmpprotocol –протокол SNMP для Twisted
tableretriever – допоміжний об'єкт для об'єкта AgentProxy
test (пакет) – тестовий набір для TwistedSNMP проекту
twinetables – перетворення індексованих множин в табличний
utilities (пакет) – утиліта-скрипт для twistedsnmp
2.3.1twistedsnmp.agent
Логіка для SNMP на стороні агента (Server) реалізацій
Модулі
twistedsnmp.datatypes twisted.internet.defer
pysnmp.proto.error twistedsnmp.errors
pysnmp.asn1.oid pysnmp.proto.v1
pysnmp.proto.v2c weakref
Класи
Клас TrapHandler(object)
Реєстрація даної пастка для даного менеджера
Методи:
__init__ (self, managerIP, community='public', version='v2c', genericType=None, specificType=None)
Ініціалізація реєстрації при заданих параметрах
managerIP – (IP, порт), адреса, за якою відправляти повідомлення
community – спільноти, використовувані для повідомлень
GenericType – основні специфікації типу для погодження повідомлень
specificType – незначні специфікації типу для погодження повідомлень
send(self, agent, genericType=6, specificType=0, pdus=None)
Враховуючи агента, відправити повідомлення для наших станцій управління
Дані та інші атрибути:
__dict__ = <dictproxy Object>словник для змінних екземпляра (якщо вони визначені)
__weakref__ = <attribute'__weakref__' із'TrapHandler' objects>
список слабких посилань на об'єкт (якщо вони визначені)
Клас Agent( object )
Реалізація логіки для SNMP агента реалізації.
Цей базовий клас призначений для взаємодії з об'єктами забезпечення OID інтерфейсу. Його основною метою є реалізація механізмів управління ітераціям і для запитів цього інтерфейсу.
Методи:
__init__ (self, dataStore, protocol=None)
Ініціалізація MockAgent зісписком OID
deregisterTrap (self, managerIP, genericType=None, specificType=None)
Скасувати реєстрацію даного managerIP з даної пастки
GenericType – якщо немає, дереєстрація з усіх універсальних типів
specificType – якщо немає, дереєстрація від всіх конкретних типів
findTrapHandlers(self, genericType=None, specificType=None)
Задання шляхів для обробників для заданих типів
get(self, request, address, implementation)
Отримати OID для запиту і повернути відповідь
request – аналізується (тобто об'єкт-форма) GET запит
address – (IP, порт) інтернет адреса, з якої було отримано запит.
Implementation – впровадження модуля для запиту,тобто v2c або v1 модуль посилає відповідь клієнту
GetNext getNext(self, request, address, implementation)
Відповідь отримати наступний запит
Request – аналізується (тобто об'єкт -форма) GETNEX запит
Address – (IP, порт) Інтернет-адреса, з якої було отримано запит.
Implementation – впровадження модуля для запиту, тобто v2c або v1 модуль посилає відповідь клієнту.
getNextOIDs(self, oids)
Отримати наступний даний набір OID, елементи ідентифікатори - послідовності OID, з якого витягується наступний OID, повертає список OID
getOIDs (self, OID)
Отримати даний набір ідентифікаторів OID – послідовність ідентифікаторів для отримання значення пар списоку OID
getSysObjectId (self)
Отримати у нашій системі ідентифікатор об'єкта пастки
GetTable (self, request, address, implementation)
Відповісти на всі(V2) отримані запити
Request – оброблений (тобто об'єкт -форма) GETBULK запит
Address – (IP адреса, порт) Інтернет адресу, з якої був отриманий запит
implementation – впровадження модуля для запиту ,тобто v1 v2c або модуль посилає відповідь клієнту, як побічний ефект повертає відправлену відповідь Get запиту, яка складається з двох елементів, набір неповторюваних Get-Next ідентифікаторів (зазвичай 0), і набір повторюваних ідентифікаторів. До зазначеної кількості впорядкованих елементів, починаючи з заданого ідентифікатора повертаються на кожний з основних елементів, з урізанням всього комплексу відбуваються якщо всі таблиці вичерпані (досягають кінця таблиці OID), в іншому випадку буде включати наступні значення таблиці.
getTableOIDs (self, nonRepeating=(), repeating=(), maxRepetitions=255)
Отримати неповторювані і повторювані OID значення
nonrepeating – послідовність OIDs для неповторюваного пошуку
repeating – послідовність OIDs для повторення пошуку
maxRepetitions – кількість повторень
registerTrap (Self, trapHandler)
Реєстрація даного менеджера для прив’язки до даної пастки
ключ (GenericType, specificType) використовуватиметься для відправки пастки повідомлення для тих керівників, які зареєстровані тут
sendTrap(self, genericType=6, specificType=0, pdus=None)
Надіслати дану пастку для всіх зареєстрованих спостерігачів
set(self, request, address, implementation)
Встановити OIDs як задано за запитом
Request – оброблений (тобто об'єкт -форма) SETзапиту
Address – (IP адреса, порт) інтернет адреса, з якоїбуло отримано запит.
Implementation – впровадження модуля для запиту,тобто для v1 або v2c модуля
setOIDs (Self, variables)
Встановлює OID значення змінних в нашому сховищі даних
setProtocol (Self, protocol)
Встановлює протокол для агента об'єкта
Дані та інші атрибути:
__dict__ = <dictproxy Object>
Словник для змінних екземпляра (якщо вони визначені)
__weakref__ = <attribute'__weakref__' із'Agent' objects>
Список слабких посилань на об'єкт (якщо вони визначені)
Дані
badValue = 3 generators = _Feature((2, 2, 0, 'alpha', 1), (2, 3, 0, 'final', 0), 4096) noError = 0 noSuchName = 2 reactor = <twisted.internet.selectreactor.SelectReactor instance> tooBig = 1
2.3.2twistedsnmp.agentprotocol
Реалізація протоколу для агента / менеджера на стороні API Модулі
pysnmp.asn1.error twisted.internet.defer
pysnmp.proto.error twisted.internet.protocol
pysnmp.error pysnmp.proto.v1
pysnmp.proto.v2c
Класи
Клас AgentProtocol ( ConnectedDatagramProtocol )
Базовий клас для SNMP протоколу дейтаграм об'єкта AgentProtocol, який відповідає за обробку вхідних датаграм (рядки) та їх перетворення в PySNMP повідомлення.Він також відповідає за відправку повідомлень від агента назад через мережу. Крім того, він надає кілька методів.
Методи:
__init__(self, interface=None, port=161, community='public', snmpVersion='v2', agent=None)
Ініціалізація об'єкту SNMPProtocol
Interface – інтерфейс (IP), по якому зв'язуються
Port – порт для підключення
Community – метод доступу, який використовується для SNMP
snmpVersion – '1 'або '2', вказує на підтримувану версію
datagramReceived(self, datagram, address)
Процес для отримання дейтаграм
Перетворює повідомлення в pysnmp запит об'єкта, а потім відправляє його у відповідний обробник (і) на основі запитуваного OID, збирає результати і повертає їх у об'єкт відповіді
requestType(self, request)
Отримати запит типу із запиту
send(self, response, address)
Відправити запит (рядки) до мережі
setAgent(self, agent)
Встановити агент реалізації цього протоколу
verifyIdentity(self, request, address)
Перевірка, що адреса і повідомлення-спільноти дійсні
Дані:
agent = None
Методи, успадковані від ConnectedDatagramProtocol:
connectionFailed(self, failure)
Викликається при невдалому підключенні. Зазвичай це відбувається через помилку пошуку DNS.
Методи, успадковані від DatagramProtocol:
ConnectionRefused (self)
Викликається через помилки запису в режимі з'єднанні.
Методи, успадкованівід AbstractDatagramProtocol:
__getstate__ (self)
doStart (self)
Перевіряє чи startProtocol був викликаний.
doStop (self)
Перевіряє чи stopProtocol був викликаний.
makeConnection(self, transport)
Встановлює з'єднання з транспортом і сервером. Встановлює атрибут 'транспортний' для DatagramProtocol і викликає doStart ().
startProtocol (self)
Викликається, коли транспорт підключений до даного протоколу, буде викликатися тільки один раз, навіть якщо кілька портів підключені.
stopProtocol (self)
Викликається, коли транспортний відключений, буде викликатися тільки один раз, після того, як всі порти відключені.
Дані та інші атрибути успадкувані від AbstractDatagramProtocol:
noisy = True
numPorts = 0
transport = None
Дані
reactor = <twisted.internet.selectreactor.SelectReactor instance>
2.3.3twistedsnmp.bisectoidstore
У пам'яті OIDStore існує на основі стандартного модуля
Модулі
twistedsnmp.agent bisect
pysnmp.proto.error twistedsnmp.errors
pysnmp.asn1.oid twistedsnmp.oidstore
pysnmp.proto.v1 pysnmp.proto.v2c
Класи
Клас BisectOIDStore ( OIDStore )
У пам'яті OIDStore існує на основі стандартного модуля OID. Цей магазин призначений для використання в першу чергу в ситуаціях тестування, де невеликий набір OID повинен бути завантажений і протестований.
Методи:
__init__ (Self, OIDs = None )
Ініціалізація зберігання з відповідними OIDs
firstOID (Self)
Заносить перший OID, пару значень, для зберігання
Викликається OIDNameError якщо немає доступних пар
getExactOID(self, base)
Отримати даний OID, (пара значень) для даної бази. Цей метод відповідає за реалізацію GET запиту.
nextOID (Self, base)
Отримати наступний OID, (пара значень)після даної базової OID. Цей метод відповідає за реалізацію GETNEXT, і GETBULK запитів.
returnValue(self, value, oid)
Значення, що повертається, або value.calculateOIDValue (OID, самостійно)
SetValue (Self, OID value)
Встановлює даний OID, пару значень, повертаючи старе значення
Методи, успадковані від OIDStore:
__iter__ (Self)
Створити об'єкт-ітератор для цього OIDStore
close(self)
Закриває OIDStore
update(self, valueSet)
Враховуючи ValueSet, завантажує дані значення в сховище
ValueSet - набірOID: значення відображень в цих формах { rootOID : { oid : value }}
validateSetValue(self, oid, value, request, address, implementation)
Підтвердити, що, враховуючи OID і значення може бути встановлено
повертає 0 у випадку успіху і ErrorID у разі виникнення помилки
Ця реалізація просто повертає 0 у всіх випадках
Дані та інші атрибути успадкували від OIDStore:
__dict__ = <dictproxy Object>
словник для змінних екземпляра (якщо вони визначені)
__weakref__ = <attribute'__weakref__' із'OIDStore' objects>
список слабких посилань наоб'єкт (якщо вони визначені)
Дані
generators = _Feature((2, 2, 0, 'alpha', 1), (2, 3, 0, 'final', 0), 4096)
2.3.4twistedsnmp . bsdoidstore
BSDDB BTree на основі OID полиць для зберігання
Модулі
bsddb twistedsnmp.errors twistedsnmp.oidstore
twistedsnmp.pysnmpproto shelve struct
sys traceback weakref
bsddb twistedsnmp.errors twistedsnmp.oidstore
twistedsnmp.pysnmpproto weakref
Класи
Клас BSDOIDStore ( OIDStore )
OIDStore реалізований з використанням BSDDB файлів
Цей застосунок OID підходить для середніх OID таблиць, які вимагають збереження на Python сесій.
Методи:
__init__(self, filename, OIDs=None)
Ініціалізація сховища з відповідними OIDs
firstOID (self)
Отримати перший OID, значення пари для зберігання
Викликає OIDNameError, якщо пари значень недоступні
getExactOID(self, base)
Отримати даний OID, пару значень,для даної бази. Цей метод несе відповідальність за виконання GET запиту
nextOID(self, base)
Отримати наступний OID, значення пари після даної базової OID. Цей метод відповідає за реалізацію GETNEXT, і GetBulk запитів.
setValue(self, oid, value)
Встановлює даний OID, пару значень, повертаючи старі значення. Цей метод відповідає за реалізацію SET запит.
Класи і методи:
open(self, filename, mode='c') from type
Відкриття данного блоку, як BSDDBВТКЕЕ
Методи, успадкованівід OIDStore:
__iter__ (self)
Створення ітератора об'єкта для цього OIDStore
Close (self)
Закриває OIDStore
update (self, ValueSet)
Враховуючи ValueSet, завантажитиданізначеннявсховище
ValueSet - набір OID: значення відображення в цих формах { rootOID : { oid : value }}
OIDStore інстанція – ітеруєме як (ключ, значення) виробляє послідовність [(OID, значення )]
# значення також може бути словник або OIDStore (як показано вище)
[словник, OIDStore , ... ] # Тобто просто послідовність словників або сховищ
validateSetValue(self, oid, value, request, address, implementation)
Перевіряє, що даний OID і значення може бути встановлено
повертає 0 у випадку успіху, повертається errorID в разі невдачі
Ця реалізація просто повертає 0 у всіх випадках
Дані та інші атрибути успадкували від OIDStore:
__dict__ = <dictproxy object>
словник для змінних екземпляра (якщо вони визначені)
__weakref__ = <attribute'__weakref__' із'OIDStore' objects>
Список слабкі посилання на об'єкт (якщо вони визначені)
Клас Closer ( object)
Закриває OIDStore Цей об'єкт дозволяє уникнути метод __ del__, визначена на OIDStore об'єкті, що дозволяє уникнути потенційних витоків пам'яті.
Методи:
__call__ (self)
Закриває і очищує, щоб запобігти кількох викликів
__del__ (self)
Ручне видалення подібних об'єктів
__init__ (self, client)
Ініціалізація подібних об'єктів
Дані та інші атрибути:
__dict__ = <dictproxy object>
словник для змінних екземпляра (якщо вони визначені)
__weakref__ = <attribute'__weakref__' із'Closer' objects>
Список слабкі посилання на об'єкт (якщо вони визначені)
Функції
oidToSortable (OID)
Перетворення у точковий формат OID для сортування рядків
set_location (self, key)
Виправленаверсія _DBWithCursor.set_location для Python 2.3.x
sortableToOID (sortable)
Перетворення сортованого представлення у точково-строкове представлення
2.3.5twistedsnmp .datatype
Модулі
pysnmp.proto.rfc1902
pysnmp.proto.v1
pysnmp.proto.v2c
Класи
Клас SimpleConverter
Простий об'єкт, який просто виконує (value.get ())
Методи:
__call__ (self, value)
__init__ (self, target)
Функції
ipConvert (value)
Конвертор, який повертає v2c.IpAddress (value.get ())
nullMapping (value)
Конвертор, який просто повертає значення без змін
typeCoerce (value, implementation)
Coerce значення для реалізації версії
Value – Python або PySNMP значення, яке буде представлено в якості значення
implementation – v1 або v2c модулів з PySNMP
2.3.6twistedsnmp.errors
Помилки, характерні для TwistedSNMP
Класи
Клас OIDNameError ( NameError )
OID був оголошений, який не визначений у просторі імен
Методи:
__init__(self, oid, errorIndex=-1, errorCode=2, message='')
Ініціалізацію OIDNameError
__repr__ (Self)
Представляти OIDNameError у вигляді рядка
Методи, успадковані від винятків:
__getitem__ (...)
Дані
badValue = 3 NoError = 0 noSuchName = 2 tooBig = 1
2.3.7twistedsnmp.logs
Можливість журналювання TwistedSNMP Модулі
cStringIO
logging
traceback
Функції
GetException (error)
Отримати відформатований виняток
Дані
agentprotocol_log = <logging.Logger instance> agentproxy_log = <logging.Logger instance> massretriever_log = <logging.Logger instance> protocol_log = <logging.Logger instance> tableretriever_log = <logging.Logger instance>
agentprotocol_log = <logging.Logger instance> agentproxy_log = <logging.Logger instance> massretriever_log = <logging.Logger instance> protocol_log = <logging.Logger instance> tableretriever_log = <logging.Logger instance>
2.3.8twistedsnmp .massretriever
Утиліта – механізм для вилучення ідентифікаторів / таблиці з великого числа агентів
Модулі
twistedsnmp.agentproxy twisted.internet.defer
twisted.internet.error twisted.python.failure
pysnmp.asn1.oid
Класи
MassRetriever
Клас MassRetriever (object)
Таблиця для отримання безлічі значень з декількох агентів
Методи:
__call__(self, oids=(), tables=(), iterDelay=0.0050000000000000001, *arguments, **named)
oids – індивідуальні (отримати) ідентифікатори для кожного агента
tables – багатозначні (GetTable) ідентифікатори для кожного агента
** named – передається в проксі-об'єкт, добувається GetTable методом
__init__(self, proxies)
Ініціалізація ретривера з клієнтом AgentProxies
proxies – послідовність властивостей запиту в партіях
handleSingleError(self, err, oids, proxy)
err – повний вихід з ладу одного проксі-сервера
oids – OID, запитуваний проксі
proxy – проксі який буде використовуватись для повернення значення
integrateSingleResult(self, value, proxy)
Інтеграція одного результату запиту агента в мега-результат
Value – значення словника, як повернувся з отримаємо get/getTable
Proxy – об'єкт проксі, який був використаний для отримання значення
printStats (само)
Роздрукувати евристичну статистику для ретривера
returnFinal(self, dataList)
Коли всі проксі-сервери були завершені (успішно чи ні), то ми отримаєм зворотний виклик
singleProxy(self, proxy, oids, tables)
Додати налаштування зворотного виклику для даного проксі-агента
Proxy – проксі, щоб будуть запитані
Oids – єдині ідентифікатори, які будуть опитані (get)
Tables – багатозначні ідентифікатори, які будуть опитані (GetTable)
smallBatch(self, oids, tables, index=0, iterDelay=0.01)
Виконати на єдиному проксі ітеративно партіями
Дані та інші атрибути:
__dict__ = <dictproxy object>
словник для змінних екземпляра (якщо вони визначені)
__weakref__ = <attribute'__weakref__' із'MassRetriever' objects>
Список слабких посиланьна об'єкт (якщо вони визначені)
errorCount = 0
successCount = 0
Функції
proxies(protocol, addresses, proxyClass=<class 'twistedsnmp.v3.agentproxy.AgentProxy'>)
Враховуючи протокол і набір адрес, побудувати AgentProxies
Protocol – тип SNMPProtocol
Addresses – набори (ip,port,[community,[version]]) , які будуть передані в AgentProxy конструктор.
proxyClass – проксі-клас для використання в пошуку Дані
generators = _Feature((2, 2, 0, 'alpha', 1), (2, 3, 0, 'final', 0), 4096) nested_scopes = _Feature((2, 1, 0, 'beta', 1), (2, 2, 0, 'alpha', 0), 16) reactor = <twisted.internet.selectreactor.SelectReactor instance>
2.3.9twistedsnmp.oidstore
Абстрактний інтерфейс для зберігання об'єктів OID
Модулі
twistedsnmp.errors
Класи
Клас OIDStore (object)
Інтерфейс для механізму зберігання OID
Роль цього механізму для зберігання та вилучення OID: значення пар. Так як більшість поширених запитів включають пошук, а не конкретного OID, а наступний OID після даного OID, це необхідно для OID, щоб використовувати упорядкований формат зберігання з швидкими характеристиками пошуку, такі як ділення навпіл списку, або BSDDBBTree бази даних.
Методи:
__iter__ (self)
Створення ітератора об'єкта для цього OIDStore
close (само)
Закриття OIDStore
firstOID (self)
Отримати перший OID, значення пари для зберігання
Викликає OIDNameError, якщо немає доступної пари
getExactOID (self, base)
Отримати даний OID, пара значень для даної бази. Цей метод несе відповідальність за виконання GET запиту
nextOID (self, base)
Отримати наступний OID, значення пари після даної базової OID. Цей метод відповідає за реалізацію GETNEXT, і GetBulk запитів.
SetValue (self, OID value)
Встановлює даний OID, пара значень, повертаючи старі значення. Цей метод відповідає за реалізацію SET запиту.
update (self, ValueSet)
Враховуючи ValueSet, завантажити дані значення в сховище ValueSet - набір OID: значення відображені в цих формах {rootOID: {OID: значення}}
validateSetValue(self, oid, value, request, address, implementation)
Переконатися, що даний OID і значення може бути встановлено
повертає 0 у випадку успіху, повертається errorID в разі невдачі
Ця реалізація просто повертає 0 у всіх випадках
Дані та інші атрибути:
__dict__ = <dictproxy object>
словник для змінних екземпляра (якщо вони визначені)
__weakref__ = <attribute'__weakref__' із'OIDStore' objects>
Список слабких посиланьна об'єкт (якщо вони визначені)
Функції
dumbPrefix(key, oid)
Ця функція використовується для суб-класів, щоб зробити просту перевірку на OID спадкування.
Дані
generators = _Feature((2, 2, 0, 'alpha', 1), (2, 3, 0, 'final', 0), 4096)
2.3.10twistedsnmp . tableretriever
Помічник об'єкта для AgentProxy об'єкта
Модулі
twisted.internet.defer pysnmp.proto.error twisted.python.failure
pysnmp.asn1.oid twisted.internet.protocol socket
traceback pysnmp.proto.v1 pysnmp.proto.v2c
weakref
Класи
Клас TableRetriever ( object)
Об'єкт для отримання всієї таблиці від SNMP агента. Він також включає в себе код для SNMPBulkWalk, який є узагальненням SNMPWalk коду.
Методи:
__call__ (self, recordCallback=None, startOIDs=None)
Збір результатів, викликає recordCallback для кожного запису
recordCallback – викликається для кожного виявленого нового запису
startOIDs – додаткові маркери OID будуть використовуватися в якості відправної точки
_init__(self, proxy, roots, includeStart=0, retryCount=4, timeout=2.0, maxRepetitions=128)
Ініціалізація ретривера
proxy–AgentProxy, який ми хочемо використовувати для витягання даних
roots – коріння OID
includeStart – чи потрібно включати починаючи OID в наборі результатів, за замовчуванням, повертає OID *after* після кореневоїOID
RetryCount – число повторних спроб
Timeout – початковий тайм-аут
maxRepetitions – максимум записів запиту з одного запиту
areWeDone(self, response, roots, request, recordCallback=None)
Callback який перевіряє чи виконалась спроба
getTable(self, oids=None, roots=None, includeStart=0, retryCount=None, delay=None, firstCall=False)
Отримати всі суб-ідентифікатори від цих коренів
recordCallback – викликається для кожного OID: пара значень отриманних recordCallback( root, oid, value )
includeStart – на даний момент, реалізована тільки для v1 протоколів, ігноруються v2c.
FirstCall – перший виклик, дозволяє кешування
integrateNewRecord (self, oidValues, rootOIDs)
Інтеграція набору записів в таблицю
Цей метод є досить спрощеним у своєму підході, він просто перевіряє для кожного значення в oidValues якщо це суб або корінь в rootOIDs, і якщо це так, додає його в результуючий набір для цього кореня.
scheduleIntegrate(self, oidValues, rootOIDs)
Розклад інтеграції oidValuesв результатах цієї таблиці.Розбиває процес, так що ми можемо обробляти інші події , перш ніж робити (важкі) роботи
tableTimeout(self, df, key, oids, roots, includeStart, retryCount, delay)
Таблиця тайм-аут реалізації запитів
Дані та інші атрибути:
__dict__ = <dictproxy object>
Словник для змінних екземпляра (якщо вони визначені)
__weakref__ = <attribute'__weakref__' із'TableRetriever' objects>
Список слабких посиланьна об'єкт (якщо вони визначені)
bulk = 1
finished = 0
Дані
USE_STRING_OIDS = False reactor = <twisted.internet.selectreactor.SelectReactor instance>
2.3.11twistedsnmp.twinetables
Перетворення індексованих множин в табличний зручний формат за замовчуванням getTable( [roots] ) повертає структуру словника так:
rootOID: {fullOID: значення}
Функції
woiterTwine (oidTable, OID)
Подвійний набір як набір словників з OID, як ключі
twineTables (oidTable, OID)
Враховуючи oidTable з коренем OIDs, дати кожній версії елемента
oidTable - вихідні дані, отримані від GetTable запиту
2.3.12twistedsnmp.utilities
Модулі
__init__ - скріпти для twistedsnmp mirroragent – відображає керучого агента для локального файлу
2.3.13twistedsnmp.utilities.mirroragent
Відображає керучого агента для локального файлу
Модулі
twistedsnmp.agentproxy
twistedsnmp.bsdoidstore
twistedsnmp.snmpprotocol
Функції
main(proxy, oidStore, OIDs=('.1.3',))
Виконує getTable на проксі для OIDs і зберігає в oidStore
openStore(oidStore)
Дані
reactor = <twisted.internet.selectreactor.SelectReactor instance>
2.3.14twistedsnmp.utilities.synchronous
Модулі
twisted.internet.defer
Класи
Клас DoUntilFinished(object)
Виконувати дії над об’єктом, до його завершення
Методи:
OnFailure(self, errorMessage)
OnSuccess(self, result)
OnTimeout(self)
Викликає помилку після закінчення тайм-ауту
__call__(self, timeout=None)
__init__(self, *defers)
Ініціалізує DoUntilFinished
Дані і інші атрибути:
__dict__ = <dictproxy object>
__weakref__ = <attribute '__weakref__' of 'DoUntilFinished' objects>
finished = 0
result = None
success = 0
timeout = 0
Функції
doUntil(*defers)
Відкадений запуск
synchronous(timeout, callable, *arguments, **named)
Викликає викликані об’єкти
timeout – тайм-аут в секундах callable – визначає викликувані object returns (success, result/error)
Дані
reactor = <twisted.internet.selectreactor.SelectReactor instance>
3Yapsnmp
Yapsnmp є Python SNMP модулем на основі Net-SNMP (раніше відома як UCD-SNMP) бібліотеки. Він складається з низькорівневого інтерфейсу до бібліотеки, створеною за допомогою SWIG, і більш високого рівня Python модуля видаляючи всі складності роботи з SNMP.