Мониторинг по SNMP
На устройствах с поддержкой SNMP есть агент SNMP, коорый собирает информацию с устройства и хранит её в специальной базе MIB. MIB — это структурированный текстовый файл или несколько файлов, которые содержат информацию о всех объектах устройства. Объектом может быть какая-нибудь настройка или параметры системы. У каждого объекта есть свой набор полей, таких как тип данных, доступность (чтение, запись), статус (обязательный, необязательный), текстовое название настройки.
MIB (База управленческой информации) это место, где хранятся SNMP данные, чтобы к ним можно было обращаться каждый раз, когда менеджер SNMP опрашивает агента SNMP. Когда SNMP Manager запрашивает SNMP-агента, данные берутся из MIB и отправляются в SNMP Manager, где их можно просматривать с помощью инструмента сетевого мониторинга.
Каждый объект в MIB имеет свой уникальный цифровой адрес OID и имя Object Name. SNMP менеджер, используя OID, способен считывать или устанавливать значение объекта. Например, адрес объекта (OID) содержащего наименование системы: 1.3.6.1.2.1.1.5, а его имя (object name): sysName.
Типы запросов SNMP
- SNMP (Simple Network Management Protocol — простой протокол сетевого управления) — стандартный интернет-протокол для управления устройствами в IP-сетях на основе архитектур TCP/UDP.
- MIB (Managment Information Base) — это структурированный текстовый файл или несколько файлов, которые содержат информацию о всех объектах устройства. Объектом может быть какая-нибудь настройка или параметры системы. У каждого объекта есть свой набор полей, таких как тип данных, доступность (чтение, запись), статус (обязательный, необязательный), текстовое название настройки. Также объект может содержать другие объекты.
- OID — Object IDentificator - числовой идентификатор объекта в дереве MIB.
- Object Name — имя объекта, уникальная константа для всего MIB, однозначно соответствующая определённому OID.
Feature | Version 1 | Version 2C | Version3 |
---|---|---|---|
GET request | |||
GET-NEXT request | |||
SET request | |||
GET-BULK request | |||
TRAP notification | |||
INFORM notification | |||
Community based security | |||
User based security | |||
Message Authentication | |||
Message Encryption (privacy) |
Типы данных SNMP
Тип | Описание | Пример | Дополнительно |
---|---|---|---|
Integer32 | Целое со знаком (32-бита) | .1.3.6.1.2.1.1.7.0 = INTEGER: 2 | от -2147483648 до 2147483647 |
Counter32 | Целое без знака (32-бита) | .1.3.6.1.2.1.1.7.1 = Counter32: 1 | от 0 до 4294967295, не доступно на запись, при переполнении сбрасывается в 0 |
Counter64 | Целое без знака (64-бита) | .1.3.6.1.2.1.31.1.1.1.8.6 = Counter64: 103 | не доступно на запись, после переполнения сбрасывается в ноль |
Gauge32 | Целое без знака (32-бита) | .1.3.6.1.2.1.2.2.1.5.49 = Gauge32: 100000000 | от 0 до 4294967295 |
TimeTicks | Целое без знака | .1.3.6.1.2.1.1.3.0 = Timeticks: (1299250300) 150 days, 9:01:43.00 | 1/100 секунд, не уменьшаемое |
OctetString | Строка/Массив байт | .1.3.6.1.2.1.1.9.1.3.1 = STRING: "RS capabilities" | Обычно до 255 байт |
Object Identifier | OID | .1.3.6.1.2.1.1.2.0 = OID: .1.3.6.1.4.1.3955.6.9.224.1 | |
IpAddress | IP адрес | .1.3.6.1.2.1.4.20.1.1.192.168.136.18 = IpAddress: 192.168.0.18 | |
HexString | Шестнадцатеричная строка | .1.3.6.1.2.1.2.2.1.6.1 = Hex-STRING: 3C DF 1E EA A7 65 | |
Null | Нет значения или пустое | .1.3.6.1.2.1.31.1.1.1.18.1 = "" |
При работе с удалённой системой по SNMP протоколу все запросы происходят через OID, отражающий положение объекта в дереве объектов MIB. Все OID системы можно получить просканировав устройство, например командой snmpwalk:
snmpwalk -Cc -c public -v2c -On 192.168.0.1
или более быстрый вариант:
snmpbulkwalk -Cc -c public -v2c -On 192.168.0.1
где
- -Cc - Отключает проверу увеличения OID (предотвращает ошибку Error: OID not increasing)
- -c public - обращение к сообществу (comminity) public, на многих устройствах оно существует по умолчанию и в режиме только для чтения;
- -v2c - использовать вторую версию протокола SNMP;
- -O n - выводить OID'ы числовыми значениями
- 192.168.0.1 - IP адрес устройства.