4 min
How to find SNMP OIDs
If you want to find out how to find your SNMP OIDs for monitoring, this article is for you! Learn to find a device’s OIDs for SNMP monitoring using OID resources or a MIB Browser.
To start off, it’s worthwhile to explain a bit about what we do at Domotz. Domotz is a network device monitoring software that can help you manage your IT systems. We’ve also got unique features for device identification, remote network monitoring, and network topology diagrams.
Find SNMP OID for Monitoring
Object Identifiers, or OIDs, identify a device and the status of specific variables. If you want to monitor a device’s SNMP variables, you will need a device’s OIDs. Furthermore, you can get them through your software’s OID resources or a MIB Browser.
SNMP OIDs are obtained automatically through network monitoring software like Domotz via our pre-configured SNMP sensors. Furthermore, this lets you start monitoring SNMP variables immediately, without configuration. Ultimately, this route makes monitoring via SNMP much easier as you will not have to spend time finding the OID values. Alternatively, you can retrieve the MIB files and the specific OIDs you need for monitoring through a MIB Browser.
This article covers the following sections:
- SNMP Crash Course
- Check your Network Monitoring Software’s SNMP OID Resources
- Find SNMP OIDs with a MIB Browser to look them up
- How to find a specific SNMP OID using a MIB Browser
SNMP Crash Course
If you need a little refresher on SNMP, it’s very basically an application layer protocol for monitoring the network, detecting network faults, and sometimes even configuring devices remotely. Learn more about what is SNMP and how it works.
There are 3 different versions of the protocol:
- SNMPv1
The first implementation, operating within the structure management information specification, and described in RFC 1157. It uses community strings for authentication and UDP only. - SNMPv2c
As described in RFC 1901, this version improved efficiency and error-handling support. Furthermore, it’s more appropriately known as SNMP v2c. Moreover, it uses SNMP community strings for authentication, and leverages UDP but can also be configured to use TCP. - SNMPv3
This version of the protocol improves security and privacy by introducing RFC 341. Furthermore, it uses Hash-based MAC with MD5 or SHA for authentication and DES-56 for privacy. Moreover, this version uses TCP. Therefore, the higher the version of SNMP, the more secure it will be. Learn all about what is SNMP v3 and how it works.
Learn more about the differences between SNMP v2 vs v3.
Check your Network Monitoring Software’s SNMP OID Resources
To find your SNMP OIDs for monitoring, check if your network monitoring software has them. If you’re using network monitoring software, they may already have the OIDs and MIBs you need for monitoring.
For example, Domotz network monitoring software automatically discovers OIDs. It provides templates that include pre-configured OIDs (Domotz Pre-configured SNMP sensors) for many device types such as NAS, printers, and UPS. In these cases, no configuration will be required to start monitoring those devices through SNMP.
Additionally, our software automatically discovers a device’s MIBs. If those MIBs are present in the Domotz MIB database, you can browse them and add them to the system without requiring external MIB Browser software.
In addition, in the rare case we will not have a MIB and any associated OIDs, you can manually supply this information to the software.
Find SNMP OIDs with a MIB Browser to look them up.
Alternatively, sometimes you may need a specific OID that is not listed using the MIBs in the database of your network monitoring. In these cases, you can use MIB Browser software for specific OIDs. To explain further, a MIB browser allows you to load standard proprietary MIBs for monitoring via SNMP.
For example, the MIB Browser iReasoning navigate the OID tree to help you find a device’s OIDs and their related MIBs. Furthermore, using this tool for devices that support SNMP, you can navigate the OID tree to find the OID value of a sensor you want to monitor and then use it to define an SNMP sensor in Domotz. In summary, they are vital in helping with finding an OID.
External MIB browsers are a tool that analyzes SNMP sensors in the MIB tree. They get data from network devices and display it in a format that can be readable to you and other tools. They basically query SNMP versions, and data, filter out information from the MIB trees they are taking a look at, and are the stepping stones for creating SNMP traps.
MIB files are a virtual database whose records store information about the devices you’re monitoring on your network. Learn more about a Management Information Base and how they work.
How to find a specific SNMP OID using a MIB Browser:
Let’s assume that we have a Mobotix Camera and want to monitor its internal temperature.
The first thing to do is to load the specific MIB, which contains the SNMP OID tree for your specific device, in this case, mobotix-mib.mib.
After that we will need to browse the MIB tree and find the OID that we need:
In Domotz, we will manually define this OID (without the first dot – 1.3.6.1.4.1.21701.2.7.2.1.1.0) as follows:
To create the SNMP sensors and add them to the Domotz SNMP section, click the “Add” button.
The SNMP sensor displays as follows:
Furthermore, you could add more sensors in the same way, for example, the Outside Temperature:
By using the 1.3.6.1.4.1.21701.2.7.2.2.1.0 OID.
In conclusion, once you have found the required OIDs that your network monitoring software requires, you’re ready to start monitoring.
How SNMP works
You can also set up alerts for when the internal temperature goes above a certain threshold.
Learn more about how SNMP works, SNMP v2 vs v3, what is SNMP, and what is a network management tool.
Давайте рассмотрим другие интерфейсы. Иногда вам понадобится мониторить что-то, что не работает с агентом: принтер, маршрутизатор и т.д. В этом случае вам поможет протокол SNMP.
Сначала нужно найти OID (Object Identifier) переменной – числовой код, который поможет серверу запросить конкретные данные, для мониторинга. Его можно посмотреть в руководстве к устройству или найти с помощью утилиты snmpwalk или любого MIB-браузера (MIB , который вам нравится. В этой статье мы рассмотрим использование snmpwalk.
snmpwalk
Давайте рассмотрим, как получить OID с помощью snmpwalk.
Установите пакет SNMP. На системах на основе Debian вы можете установить его с помощью:
sudo apt-get install snmp
На системах на основе Red Hat можно использовать:
sudo yum install net-snmp
Для Windows вы можете использовать пакет Net-SNMP для Windows, который доступен на сайте Net-SNMP (https://www.net-snmp.org/download.html).
Узнайте IP-адрес или имя хоста устройства, которое вы хотите опросить, а также версию SNMP, поддерживаемую этим устройством (обычно SNMPv1 или SNMPv2c).
Также вам нужно будет узнать сообщество SNMP для устройства. Оно работает как пароль, который позволяет получить доступ к данным SNMP на этом устройстве. Скорее всего его можно найти в документации или конфигурации устройства, по умолчанию обычно используется “public”.
Если вы узнали OID, который вам нужен, из руководства, запустите команду snmpwalk, чтобы проверить, что все работает. Базовый синтаксис для snmpwalk такой же на Windows, как и на Linux или Unix:
snmpwalk -v [версия SNMP] -c [строка сообщества] [IP-адрес/имя хоста устройства] [OID или имя MIB]
Например:
snmpwalk -v2c -c public 192.168.1.1 .1.3.6.1.2.1.1.5.0
Здесь OID .1.3.6.1.2.1.1.5.0 указывает на имя устройства, и команда snmpwalk вернет имя MIB вместе с текущим значением и типом переменной. Чтобы найти OID с помощью snmpwalk, вы можете запустить его без указания OID или имени MIB, чтобы искать интересующий вас вручную.
После того как вы узнали название переменной, запустите ту же команду, добавив “-On”. Это даст нам нужный числовой OID.
Обратите внимание, что у некоторых переменных может быть более одного порта, последнее число в OID показывает этот порт.
Узел сети
Затем нам понадобится добавить Узел сети с настроенным интерфейсом SNMP и ввести IP-адрес, версию SNMP и SNMP-сообщество вашего устройства. Шаблоны SNMP могут быть полезны, но совместимость с конкретными устройством не гарантируется. В остальном это обычное создание узла сети.
Элемент данных
Осталось только создать элемент SNMP: перейдите в “настройки” -> “узлы сети” и нажмите на устройство, которое вы хотите отслеживать. Перейдите на вкладку “элементы данных” и нажмите кнопку “создать элемент данных”. Заполните необходимую информацию: имя элемента, тип (для нашего примера, агент SNMPv2), тип информации и OID. Заполните строку “Key” номером OID.
Нажмите “test”, чтобы убедиться, что все работает.
После того как все настроено, вы должны начать видеть настроенные данные с устройства в Zabbix. Вы можете использовать графики, триггеры и другие функции Zabbix для мониторинга устройства и получения предупреждений в случае возникновения проблем.
Заключение
Мы узнали, как получить необходимые OID и создать хосты и элементы SNMP для мониторинга их с помощью Zabbix.
191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700
300
ООО «ИТГЛОБАЛКОМ ЛАБС»
191028
Санкт-Петербург
Литейный пр., д. 26, Лит. А
+7 (812) 403-06-99
700
300
ООО «ИТГЛОБАЛКОМ ЛАБС»
Mark Silinio <silinio(at)mail.ru>
��������� ���������� 21/04/05
��������: silinio.webhost.ru
������ �������� ������������ ����� ������� Net-SNMP Tutorial — Commands ��������� Net-SNMP �������������� ��� ������ � ���������� SNMP �� ������ UNIX ��������, ������� Linux � *BSD.
� ����� �������� ���������� ��������� ������ � �������� ������.
���������� �� ��������:
��������� ������� ������������ � ������ ��� ��������:
-
OID – Object IDentificator – ������������� ������� -
MIB – Management Information Base – �������������� ���� ���������� -
TRAP – Trap – ����������� (����. “�������”) -
INFORM – Inform – ����������� � �������������� � �������� -
SMI – Structure of Management Information – ��������� ���������� ���������� -
PDU – protocol data units – ������������ ������� ������ -
community – Community name – ��� ����������
����������:
- snmptranslate: ������ OID’�� � MIB ��������
- snmpget: ��������� ���������� � ���̣����� �����
- snmpgetnext: ��������� ���������� ���������� OID’�
- snmpwalk: ����� snmpnext ������� �� ���
- snmptable: ����������� SNMP-�������
- snmpset: ��������� OID’��
-
snmptrap: ������� � �������� trap-��������, ������������ �� ���
- �������� � ��ɣ� SNMPv3 TRAP’�� � INFORM’��
- ����� ������
- ������������� ��������� MIB-������
- �����, ����������� ��� SNMPv3
- �����, �������� �� ������ ������
- ������
- ������
snmptranslate: ������ OID’�� � MIB ��������
������� snmptranslate ��������� � ��������� ������ ������� MIB-�������.
� ����� ������� ������, ��� ��������� � �������� ��������� OID � ������� ��� �������� ��������:
�������� ����� �������� ��������������, ��� ����� ���������� ������ �������� ����� -On
��������, ��� ��������, ������������ ���������, ����� ��������� OID � ����� ����, � ����� -On
������ ������ �� ����� (-O
, �� ����� Output):
������ ������ ������ �������� OID? ����������� ����� -Of:
�������� � �������������� �������� � ���, ��� ��� ���������� ������� ���� OID, ������� �� ������ ������������ � ���������.
������ ���������, ����������� ����� -IR
(-I
, �� ����� Input) ��� ������ �� ����� MIB-������:
� ������� ����� -Ib
�������� ����� �� MIB-������ � �������������� ���������� ���������:
����� �������� ���� ������ ��������� �� ����������� ��������� ��������, ����������� ����� -TB
:
�������� �������������� ���������� � MIB-����� ����� � -Td
(description) ������:
� �������, ���� �� ������ �������� ���������� ��������� ������ MIB-������, ����������� -Tp
�����:
�������� snmptranslate -Tp
��� �����-���� ����������, ����� �������� �ӣ MIB-������ �������.
snmpget: ��������� ���������� � ���̣����� �����
������� snmpget ������������ ��� ������ ���������� � ����������, ��������� �� ��� �����(host name), ������������������ ���������� � OID. ������:
� �����ģ���� ������� test.net-snmp.org – ��� ��� ����� � �������� �� �������� ������, ��������� SNMP ��������(community string) demopublic � ����������� �������� OID’� system.sysUpTime.0.
������ ������ ������ ucd-snmp ������������ �� ��������� SNMPv1 � community name ��������� �� ������ �����. ������� ������ net-snmp ���������� ��-��������� SNMPv3 � ������� ��� ����� ������, ��� � community string � ������ ���������� ������. SNMPv2, �� ���� ������� SNMPv1, �� � ���������� �������������, � ��� �� ���������� �������� community names � �������� ������� � ���� ��������� ������. ��������� �������, ������������ SNMPv2c, ����� �����������:
��� �������(����� snmptranslate) ��������� ������������ ���������� OID’�� � ���������� ����� �� ����� MIB ������, ��� ��� �� ������ ������� ������ ����� OID’�:
������ ������� �������� �������� ������� snmpget OID’� ��� �������. � �����ģ���� ������� �������� ������������� �� OID’� �������� ��������, � ������ ������� ������ ����� ‘0’(����). ���������� ���������� ‘.0’ � ����� OID’�, � ��������� ������ �������ģ� ������. ��������, ��� ��������� �� ������ ��������� �������� ��� SNMPv1 � SNMPv2c:
�������� ��������� �������� ���������� OID’�� ����� ��������:
snmpgetnext: ��������� ���������� ���������� OID’�
������� snmpgetnext ������ �� snmpget, � ��� ���� ���������, ��� ���������� OID � ��� ��������, ��������� � MIB-������ �� ���, ��� ������� � �������� ���������:
���, snmpgetnext ����� �������������� ��� ����������������� ��������� OID’�� ������ ��ԣ� �������� � ��������� ���������� ����������� OID’�:
���������� ������� snmpwalk, ��������������� ����, ������ �� �� ����� �� ���� ���!
� ������� �� snmpget, snmpgetnext ���������� �������� ��� OID’�, ����������� ��� �������(��. ��� snmpget ����). � ����� ������ � snmpgetnext �� ����� ��������� ������, �.�. �� ��������� �������� ��������� ���������� ���������� �� ����, ������ �� ������ ��� ���������� � ��������� �������:
snmpwalk: ����� snmpnext ������� �� ���
������� snmpwalk ������������� ��������� ����� snmpnext ������ ������ ��������� OID’�� ���������. � �������, ���� �� ������ �������� ��� ����������, ���������� � MIB ������ system, ����������� ��������� �������:
snmptable: ����������� SNMP-�������
������� snmptable ���������� SNMP ������� � �������� �� ������� ����. ���������� ������ sysORTable. � ������� �� ������� snmpwalk, ������������ ������ � ���� �������� ������, snmptable ����������� ����� � ������� ��� ������ ���� (������, ��� � ������� ����, ����� ����� ���� ������ �����):
�� �� ������ ������ ������ ��������� �������:
snmpset: ��������� OID’��
������� snmpset ������������ ��� ��������� ������ �� ���̣���� �����/����������. ��� ������ ����������, ��� ��� ���������� ��������, ���������� ������� OID, ��� ������ � ���� ��������.
�� ������ ������� �������������� ���� ������ � ����� ������ ������� snmpset, ���������� � ������ -h
:
��� ������� ��������, � ����� ������� �������� OID’�, ��������� snmpget � snmpset:
��� �� ����� ������, �� ������� �������� �������� OID’� ucdDemoPublicString.0.
��������, ��� � ������, ����� �� �� ������ ����� �� ���������(������) �������, ��������� �� ������ �������� ��� SNMPv1 � SNMPv2c:
� SNMPv1 ����������� �������� ������, �� ��� ���������� � SNMPv2c. ������ ������������� ������������ SNMPv2c ������ SNMPv1, �� �ݣ ����� ������ ��������� ����� SNMPv3 ��� � ����� ������������, ��� � � ����� ��������� �� �������,- SNMPv3 ����� ���������� ���� �����.
snmptrap: ������� � �������� TRAP’��, ������������ �� ���
TRAP’�(�������) ����� �������������� ��� ����������� ������� ���������� � �����-���� ����������.
����� �� ���������� ����������� TRAP’�� � MIB-������, �������� �� � ������� ������� snmptrap
, � ��ɣ� �������� snmptrapd
.
����������: ��� ��� ���� ��������, ������ OID’� ���������� ������� ���� ������::�������������, ��� ������������ � ���������ģ���� ��������, � ����� ������� snmptrapd
������������� ������������� ����� -OS.
����������� TRAP’��.
TRAP’� SNMPv1 � SNMPv2(INFORM’�) ���������� ��� ���������� ������ ���� �����������.
TRAP’� SNMPv1 ������������ � MIB ����� ��������� ���������������� TRAP-TYPE, ��� � ��������� �������:
TRAP-TEST-MIB DEFINITIONS ::= BEGIN IMPORTS ucdExperimental FROM UCD-SNMP-MIB; demotraps OBJECT IDENTIFIER ::= { ucdExperimental 990 } demo-trap TRAP-TYPE STATUS current ENTERPRISE demotraps VARIABLES { sysLocation } DESCRIPTION "This is just a demo" ::= 17 END
��� �� ���������� ���� enterprice-����������� TRAP, ������� ����� ���� ������� ��������� �������:
��� ţ ��������� snmptrapd
������� ����� ����� �� �����:
1999-11-12 23:26:07 localhost [127.0.0.1] TRAP-TEST-MIB::demotraps: Enterprise Specific Trap (demo-trap) Uptime: 1 day, 5:34:06 SNMPv2-MIB::sysLocation.0 = "Just here"
������ INFORM’�� SNMPv2 ������� �� ������� TRAP’�� SNMPv1 � �������� �������� �������:
NOTIFICATION-TEST-MIB DEFINITIONS ::= BEGIN IMPORTS ucdavis FROM UCD-SNMP-MIB; demonotifs OBJECT IDENTIFIER ::= { ucdavis 991 } demo-notif NOTIFICATION-TYPE STATUS current OBJECTS { sysLocation } DESCRIPTION "Just a test notification" ::= { demonotifs 17 } END
��� ����������� ���������� TRAP’� SNMPv1 ��� ������������� ����. ��� �������� ����� INFORM’� SNMPv2:
� ��� – ����� snmptrapd
��� ��������� INFORM’�:
1999-11-13 08:31:33 localhost [127.0.0.1]: SNMPv2-MIB::sysUpTime.0 = Timeticks: (13917129) 1 day, 14:39:31.29 SNMPv2-MIB::snmpTrapOID.0 = OID: NOTIFICATION-TEST-MIB::demo-notif SNMPv2-MIB::sysLocation.0 = "just here"
����������� �������� ��� ��ɣ�� TRAP’�� � INFORM’��.
������� snmptrapd ����� ����������� ��������� ������ ��������� � ������ ��������� �������-�����������. ���� ��������� ��������� traphandle, ������� ��������� ���������:
traphandle OID �������
��������, ��� � �������� ���������� � ���, ����� TRAP(��� INFORM) ����� ��������, ������������ OID. ��� ������������� ��� ����� ������������� ������������� ������� SNMPv1 � ������� SNMPv2, ��� ������� � RFC 2089. ������ OID ��� ��������� ���� TRAP ��������� ��ԣ� ������ ENTERPRICE ��������� � ���������� � ���� ���-��������������� 0 � 17. �������� OID’� ��� SNMPv1 TRAP’�� ������������ ���������� SNMPv2.
������� ��������� �������� ���������, ����������� ��� ��������� TRAP ������� snmptrapd
. ��������� �������� ������ TRAP �� ����������� ����. ������ ������ – ��� ��� �����, ������ – IP-����� ����������� TRAP, � ����������� ����� �������� ���� �������� OID �������� � ������� �� ���������� TRAP.
������ shell-�������, ����������� snmptrapd
:
#!/bin/sh read host read ip vars= while read oid val do if [ "$vars" = "" ] then vars="$oid = $val" else vars="$vars, $oid = $val" fi done echo trap: $1 $host $ip $vars
����� ���������� ��������� snmptrapd.conf
����:
# the generic traps traphandle SNMPv2-MIB::coldStart /home/nba/bin/traps cold traphandle SNMPv2-MIB::warmStart /home/nba/bin/traps warm traphandle IF-MIB::linkDown /home/nba/bin/traps down traphandle IF-MIB::linkUp /home/nba/bin/traps up traphandle SNMPv2-MIB::authenticationFailure /home/nba/bin/traps auth # this one is deprecated traphandle .1.3.6.1.6.3.1.1.5.6 /home/nba/bin/traps egp-neighbor-loss # enterprise specific traps traphandle TRAP-TEST-MIB::demo-trap /home/nba/bin/traps demo-trap traphandle NOTIFICATION-TEST-MIB::demo-notif /home/nba/bin/traps demo-notif
� ��������� ���������� �������� ���������� � ������� snmptrap
:
�������� ����� ����� �� snmptrapd
:
1999-11-13 12:46:49 localhost [127.0.0.1] TRAP-TEST-MIB::traps: Link Down Trap (0) Uptime: 1 day, 18:54:46.27 IF-MIB::ifIndex.0 = 1
� ����� ����� ����� handler-���������:
����� ����� enterprice specific TRAP’� ���� ����� ����� handler-���������:
� ���������� – ��� enterprice specific INFORM:
��������� TRAP’�� �������
����� ����� �������� �������� TRAP’�. ��� ������� ������������ TRAP SNMPv2-MIB::coldStart, � ��� ���������� UCD-SNMP-MIB::ucdShutDown
��� TRAP’� ������������ ������, ������̣���� � snmpd.conf
����� � ������� �������� trapsink � trap2sink (��� SNMPv1 � SNMPv2 ��������������)
# send v1 traps trapsink nms.system.com public # also send v2 traps trap2sink nms.system.com secret # send traps on authentication failures authtrapenable 1
������������� ����� ����� �������� TRAP’� � ������ ����������� �������������� ������, ��������� ���������� authtrapenable ����� snmpd.conf
, ��� ��ԣ� ��������� ���������� SNMPv2-MIB::snmpEnableAuthenTraps:
�������� � ��ɣ� TRAP’�� � INFORM’�� ��� SNMPv3
�������� ������� ����� TRAP’��� � INFORM’���: TRAP – ��� SNMP ���������, ������������ ����� ����������� ������� ����������(������ ��� ���̣���� ����). �� �������� ������ ������� � ����������� � �����������. ����������� TRAP’�� �������� ����������� ����������� ��������� ������������� � ���, ��� TRAP ��� ������ ���̣���� ������. SNMPv2 PDU ���������� ��� ��������, ����� ������� INFORM, ������� ������������ ����� ��� �� ����� TRAP, �� � ��������������. ����� �������, ���� ���������� �� ���̣���� ����� �������� INFORM, �� ��� ���������� � ����� ������������� � ���������. ������������� ����� ���� ��������� ��������� � ���, ��� ����������� ����������� ����������. � ������� ������� snmptrap
�������� �������� ��� TRAP’��, ��� � INFROM’��, � ��������� ������ ����� �������� ����� -Ci
(���� ������������ ������� snmpinform
). �������� ��������, ��� ��� ������� INFORM’�� ����� ������������ SNMPv2c ��� SNMPv3. ��������� snmptrapd
�������� ��������� ��� INFORM’�, ��� � TRAP’�.
����������: ��� ����, ����� ��������� snmptrapd
������� ��������� TRAP’� � INFORM’� SNMPv3, ������������ ������̣���� �������������, ��� ������ ���� ��������� ��������, ��������� ��������� createUser
, ��������������� ����. ���� ��������� snmptrapd
� ������ -Dusm
, �� � ����� ������� ����� �������� ��������� “no such user”.
SNMPv3, ������������ � engineID’�
TRAP’� � INFORM’� ����� ����� ��� ������������� SNMPv3 ��������� �������� ���������� ���� �������������. ��������� SNMPv1 � SNMPv2c, ������������ community-������, ������ ���������� ������ ������������. SNMPv3 ��������� ������, ���� ������������ ������������ � ���� ������������� SNMPv3. �ӣ ������, �� ��� ��? �� ����������� ����� ��������� ��������: ���� ������������� ���������� SNMPv3 ��������� ������������� ����� �������� � ���� ����� ������������(����������� “securityName”) � �������������� ������� SNMP ����������, � ������� ��������������� �����(��ף��� “engineID”). ������ ����� �� ����������� ���������� Net-SNMP(snmpget, snmpwalk � ��.), ��� ���� ������� engineID � ���������� ��� ������������, engineID � ������ � ���� ������������� �� ������ engineID ���̣����� ����������. ����� ����� �����
SNMPv3 INFORM’�
INFORM’� �������� �� ������� ��������. ��� ������� INFORM’a ����������� ���̣���� engineID, ������� ������ ���������� � ���̣���� ���� ������������� ������ � securityName. ��������� snmptrap
(� �� ������) ���������� ���̣���� engineID � �������� ������������ � ������ ������ ������������(securityName). ����, �ӣ, ��� ��� ���������� �������, ��� ������� � ���� ������������� ��������� snmptrapd
(���������������, ��� �� ������������ ��������� TRAP’�� � INFORM’��) ����������� �ޣ���� ������:
- ���������� ����ݣ����
snmptrapd
- �������� �
/var/net-snmp/snmptrapd.conf
��������� ������:createUser myuser MD5 mypassword DES myotherpassword
- ��� myuser ��� securityName, mypassword – ��� ������ ��� ��������������, � myotherpassword – ��� ������ ��� ����������(�������� ��� ������, ���� �� ������ ������ ��� �� ������ ������������ ����������)
- ������������� ���������
snmptrapd
������ �� ������ ������������ snmpinform
��� ������� snmptrapd
INFORM’� coldStart:
���� �� ������� �ӣ ���������, �� ������ ������� �������� �� snmptrapd
:
2001-10-31 11:21:05 localhost.localdomain [127.0.0.1]: sysUpTimeInstance = Timeticks: (42) 0:00:00.42 snmpTrapOID.0 = OID: coldStart.0
TRAP’� SNMPv3
������������� TRAP’�� SNMPv3 ����� ����� ��������� ��������, �� ���� ������� ��������� ������ ���������, ���� �� ������� ������������ �� ����. ������� TRAP’�� SNMPv3 � ������������� engineID ���������� ����������, ����������� TRAP ������ engineID ���̣����� ����������. ��� ������, ��� �� ������ ������� ����������� ������������� � ����� ���̣���� ����,- �� ������ ��� ������� engineID, � �������� �� ������ �������� TRAP’�. ���� � ��� 100 SNMP ������� �������� TRAP’� SNMPv3 �� ��� TRAP-��ɣ����, �� �� ������ ������ ������� 100 ������� createUser � ���������������� ����� /var/net-snmp/snmptrapd.conf
.
����, ��������� ���������:
- ����������
snmptrapd
- �������� � ����
/var/net-snmp/snmptrapd.conf
��������� ������:createUser -e 0x0102030405 myuser MD5 mypassword DES myotherpassword
- ��������, ��� �������� engineID ������������ ���� ������ ��� 0x0102030405(��� �� �������������, �� � ���������������� �� ����� ��������)
- (����)���������
snmptrapd
.
������ �� ������ ����������� ��������� � ������� snmptrap
coldStart v3 TRAP ��������� TRAP-������:
����� ����� ���������� ����������� �������.
����� ������ ���� ������ ���������� ��� v3 engineID, INFORM’�, TRAP’�, ����������� engineID, ��������� �����, ������, ��������� ����� � ��. �ӣ ��� ���������� �������� 18223 ����� ������ � RFC 2570-2575, ������ �� ����� ����������� �����…
������������� ��������� MIB-������
������� Net-SNMP ����� ����������� �������������� �������� OID’�� � ��������� ��������� �����-�������� MIB’��. � ��������� ��� �ģ� ����� �� ���������� ����������� MIB’��, �� �� ������ ������� ����� �������������.
������� Net-SNMP ��������� MIB’� ��-��������� �� ��������� ���� ����������:
-
$HOME/.snmp/mibs
-
/usr/local/share/snmp/mibs
� �������, � ��� ���� MIB, ������� �� ������ ������������ � ������� ���������� CISCO-RHINO-MIB (����� ������������� ����). ��������� ��� MIB � ���� �� ����������������� ����������. ���� �� ����� MIB �� ������-���� �����(��� RFC ��������), ���������, ��� ������ ������ ��� ������, �� ����������� � MIB(��������� �����, ����������� �������). ������ ������ ����� ������ ���������� � ������ ���� “CISCO-RHINO-MIB DEFINITIONS ::= BEGIN”
��������� ������������� � �������� ��� ��� ���� �� CISCO-RHINO-MIB, ����� ��� ����� cicsoLS1010ChassisFanLed.
��������, ��� snmptranslate
������ �� ������ ��� � ����� ����:
���, ��� �� �����. ������ �� ������ ������� ���� CISCO-RHINO-MIB.mib � ��������� ��� � ����������, ��� �� ����� ������ ��������� Net-SNMP. ��������� ��� � $HOME/.snmp/mibs
.
������������� ������ -m
������� snmptranslate
��� �������� MIB’�. ������������� ����� “-m +CISCO-RHINO-MIB
��������� �� �������� �� ������ MIB’��, �������������� ��-���������, �� ����� � �� �������� CISCO-RHINO-MIB(���� ‘+’ �������� “��������”).
���… �� ������ ������ ����� �������, ��� ��� ����� ��������� CISCO-SMI MIB. ��������� ��� � �������� � $HOME/.snmp/mibs
. ��������� ������� ��������:
��������!
�ݣ ���� ������: �� ������ ������� ��� ������� ������ ��������(����� ����� �������� �������������� � ������������� �������� �������������� Net-SNMP):
��� ��������� ����������, ��� �������, ����� ������ MIB’� ������������� ������������ ��������� Net-SNMP ��� �� ������ �������� � ��������� ������.
���� ��������� ����� ������� ���.
���������� ������������� ��������� Ethereal: ���� �� ���� ������� ������� � ��� Ethereal, �.�. ��� �� ����� ����������� ���������� ������ MIB’� ��������� ����� -m
� -M
, ��� �� ������������� ����.
� ������ ������� �� ������ ��������� ��������� ������ � ���� snmp.conf
. ���� ���� ����� ���� ����ݣ� ��� � ��������� ���������������� ���� Net-SNMP(����. /usr/local/share/snmp.conf
), ��� � � ������������($HOME/.snmp/snmp.conf
):
mibs +CISCO-RHINO-MIB mibs +SOME-OTHER-SPIFFY-MIB
��� �������� ������ MIB’�� ����� ����� ������������ ���������� ��������� � ��������� MIBS(����� ������ ��� �������� /bin/sh
):
����� ����������� ��� SNMPv3
3-� ������ ��������� SNMP ����� ������������ ��������� �� ����� ������������ � ��������� � ����������� ��������. ���, SNMPv1 � SNMPv2c ���������� ��� �������������� community-������ ���������� �������� �������. ����� ��� �������������� ������ �����������, �.�. ����� ���� ����� ���������� ���������.
SNMPv3 ����������� �������� �� ����� ������������ � ��������� �������������� � ����������� �� ��������� ��� �����:
- USM – User-based Security Module, ������� ������ ������������� � �� ���������. USM ������ � RFC 2574.
- VACM – Version-based Access Control Module, ������������� ������ �������������(��� � SNMPv1/v2c communities), � �.�. ������ � ������̣���� ������� MIB-������. VACM ������ � RFC 2575.
���������� ������ ������������� Net-SNMP ��� ���������(set) ������ �� ���̣���� �����.
������� ������������ �������� ��������� ������:
���������� ��������� ����� ��������� �������.
– ������ ������������ ����� ���(securityName), ��� ��������������(authProtocol), ��� privacy(privProtocol), � ����� ����� ��������������(authKey) � privacy(privKey).
– �������������� ���������� ��ԣ� ������������ ������������� ��������� � ������� authKey. authProtocol �� ����������� ���� ����� ���� MD5 ��� SHA, ����� ��� authKeys � privKeys ������������ �� ��������� ����� ������ �� ����� 8-�� ��������
– �������������� ���������� � ����������� ����������������� privKey ��� ���������� ������ ����������� ���������. privProtocol ����� ���� AES ��� DES.
��������� ����� ���� �������� ����������������������, ��������������������, ��� �������������������� � �������������� � ����������� �� �������� securityLevel.
������� ���� ���������, ��� ��� ��� �������� ����� ���� ������� � ��������� ������. �� ����� ������ ��������� �������� �� ��������� � ���� ~/.snmp/snmp.conf
, ��������� ������ ������� �������.
�������� | ����� ���������� ������ | ����������� � snmp.conf
|
---|---|---|
securityName | -u NAME | defSecurityName NAME |
authProtocol | -a (MD5|SHA) | defAuthType (MD5|SHA) |
privProtocol | -x (AES|DES) | defPrivType DES |
authKey | -A PASSPHRASE | defAuthPassphrase PASSPHRASE |
privKey | -X PASSPHRASE | defPrivPassphrase PASSPHRASE |
securityLevel | -l (noAuthNoPriv|authNoPriv|authPriv) | defSecurityLevel (noAuthNoPriv|authNoPriv|authPriv) |
context | -n CONTEXTNAME | defContext CONTEXTNAME |
�������
������ ������� ��� �������������� (��� �������, ��������� ������� ��� ������������):
������ � ���������������:
� �������, ������ � ��������������� � �����������:
������� �� ��� ��� �������� ������ �.�. �������� �������� �������. �� ���� � �������� ���� �������� ������������ ����� ������� ��������������. �����, ��� �� ������ �����������, ������ ����� ����� ֣����� ������� ������������ � ����� ���� �� authNoPriv ������� ��� ��������� VACM �������� �������.
� � ����������, �������� snmp.conf
�������� �������:
defContext none defSecurityName MD5User defAuthPassphrase The Net-SNMP Demo Password defVersion 3 defAuthType MD5 defSecurityLevel authNoPriv
����� ������� ��� ���������, ������������ ���� ����� � ��������� ������, ����� ������������� ������� �� ����� �����:
� �ݣ ��������:
�����:
����� �������� �� ������ ������
��� ������� ������ Net-SNMP, �� ����������� snmptrapd
� snmpd
, ����� ������������ ����� ������� �� ���������� ����.
��� ��������� ������ ���� ����� ��������� ��������� � ������ “-h
“.
� ������� ����� -O
, ������������� � �������� ����� �������� Net-SNMP, ����� �������� ������ ������:
��������� �������� ������������� ���� �����������:
-On
������ ���� ��������� �������� OID’� � �������� ������� ������ ����������:
-Oe
���� ���� ����������, ����� �� ���������� ���������(����� ������ � �������) ����������� ��������� ��������:
-Ob
������ SNMP ������� ���������� � �������� ������� ������. ����� ������ ������������� � OID �������� ��� ���������� SNMP �������. ������� ��������� ����������� � ���� �� ��������� �������. ��������� OID usmUserEntry:
��� ������, usmUserEntry ���������� � �������� �������� ��� ��������� ��������: usmUserEngineID � usmUserName. �� ��������� ������� Net-SNMP ���������� �����, �������� �������� ��� ��������:
����� ��� OID’�: �������� ������ – “………”, ������� – “MD5User”. ������ ��������� �������� ������������ ����� engineID, ������� ������� �� ���������� ��������(������ � ����������), ������ �� – ������������ ����� ��� ��� ������, ������� �� ���� ������ ������� ����� ��������. ������� �������, ������� ����������� ������� � �������� ����:
��� ������, OID’� – ��� �� ������ ��������� ��������, ����� �ӣ ��������� �������.
��� ������������� ��������� �������� � �������� Net-SNMP ����� ��������� �������� �������� �����, ��� ���� ������� ����������� ��������:
-OX
������������� ���� ����� �������� ���� ����� ������ ������� ����������� �������� ��������. �������� ��������, ��� ����� ������ ������������ ������ ��� ������.
��������, ������������ MIB’��� IPv6, ������ �������� ������ ��������, ������ ������ ������� �� ��������� � ���� ����������, ��� �� ����� ������.
���������� IPV6-MIB:ipv6RouteTable:
�����: � �������� ������� ������������ IPv6 ����� � ��� �������(integer) ��������. ��������� �� ���:
��, �� ��� �� ����� �����������. ����� ��������� ���:
�������� ��������. ����� ������ �������� ����������� �������� ������ ������, � ���������� ���������� DISPLAY-HINT � �������������� ����� ��� �� ����������� �����������.
-Os
, -OS
, � -Of
��������� ����� ������� ������� OID’�� ����� � ������� ����� -Os
� -OS
(-OS
��������� �������� MIB’� ����� OID’��):
������� ������, ��� ������ ������������ ������ ��������� ���� OID’�.
����� �� -Of
, ��������, ������� ������ OID:
-Ov
���� -Ov
������� ������ ��������, �� �� �������� ����������:
-Oq
���� -Oq
������������ �������� �������(q – quick) �����, ��� ����� ���� ������� � ������ ������������� ������ Net-SNMP � ��������� ��������:
��������, ��� � ����� ������� ����������� ���� ��������� � ������� “OID:” �������.
����������, �� ������ ������������� ������ �����:
��� shell-�������� ����� ������� ����� -Oqv
. ������� ���� ������ �������� ��������, ��� ������ ������ ������������ � ��������:
������
.
Q: ��� ������������� ������ snmpget , snmpgetnext ��� snmpwalk , ����������� ������ “stack smashing attack in function netsnmp_udp_transport() “. |
A: ���������������� ����� Net-SNMP ��� ������������� StackProtector. � Gentoo Linux ��� ����� ����� ������������� �� GCC-������� �������������� �� hardenednossp , �������� ���: # gcc-config i686-pc-linux-gnu-3.4.5-hardenednossp � ����������������� Net-SNMP �������� # emerge net-snmp . |
Q: �������� �� ������� ���, ����� ���������� TRAP’� ��������� �� Jabber’�? |
A: ������ ����� �� ���������� ����� ��. � ������ �������� ����������� � ������� sendxmpp ������� “����������” |
������
- RFC
- Structure of Management Information (SMI)
- Simple Network Management Protocol (SNMP)
- Concise MIB definitions
- Management Information Base (MIB-II)
- ������
- SNMP �������� – ��������, ������������, ����������
- SNMP traps � � ��� �� ����
- ������������� � �������������� � ���������� ��������� ����� SNMP
- ����������� ������������ SNMP
- MIB’�
- 3Com
- Alcatel
- APC
- Ascend
- Cabletron
- Cisco
- Enterasys
- Fore
- HP
- IBM
- Juniper
- Riverstone
- Shiva
- WellFleet
- Zyxel
Общая информация
Знание протокола SNMP, предназначенного для управления и наблюдения за устройствами в сети, очень полезно при диагностики здоровья всей системы. С его помощью администратор может автоматизировать сбор статистики с ключевых узлов: коммутаторов, маршрутизаторов, компьютеров и других устройств поддерживающих этот протокол. В этой статье мы рассмотрим на примерах, как понимать и использовать ключевое понятие в SNMP протоколе — базу данных MIB.[1]
Для начала кратко опишем некоторые важные термины протокола SNMP (Simple Network Managment Protocol):
MIB – Managment Information Base – база данных информации управления, хранящая информацию обо всех объектах (параметрах и настройках) устройства.
OID – Object IDentificator – числовой идентификатор объекта в дереве MIB.
Object Name — имя объекта, уникальная константа для всего MIB, однозначно соответствующая определённому OID.
MIB — это структурированный текстовый файл или несколько файлов, которые содержат информацию о всех объектах устройства. Объектом может быть какая-нибудь настройка или параметры системы. У каждого объекта есть свой набор полей, таких как тип данных, доступность (чтение, запись), статус (обязательный, необязательный), текстовое название настройки. Также объект может содержать другие объекты.
Есть стандартные MIB’ы, определяемые различными RFC и огромное множество MIB’ов от производителей оборудования, которые дополняют стандартные и могут быть взяты с сайтов этих компаний. Эти дополнения необходимы, чтобы описать специфические для устройства параметры. Можно также составить и свои MIB’ы, нигде их не регистрировать и успешно использовать.
Каждый объект в MIB имеет свой уникальный цифровой адрес OID и имя Object Name. SNMP менеджер, используя OID, способен считывать или устанавливать значение объекта. Например, адрес объекта (OID) содержащего наименование системы: 1.3.6.1.2.1.1.5, а его имя (object name): sysName. Так как всё общение между SNMP агентом устройства и SNMP менеджером (системой наблюдения или администратором) происходит через OID, то понимать, что они описывают, очень даже полезно. Имя объекта играет ту же роль в SNMP, что и DNS имя в ip сетях — более наглядное описательное представление набора чисел. Строго говоря в разных MIB’ах оно может представлять разные OID, хотя, те что описаны в RFC, по идее должны быть уникальными для всех.
Как читать OID
Вышеприведённый OID (1.3.6.1.2.1.1.5) для объекта sysName построен целиком на стандартном MIB, и будет существовать скорее всего на всех устройствах. Он читается так:
1 | iso | International Organization for Standardization (ISO) |
3 | identified-organization | Схема определения организации согласно ISO/IEC 6523-2 |
6 | dod | United States Department of Defense (DoD). Эта организация изначально занималась стандартизацией протокола |
1 | internet | Интернет |
2 | mgmt | IETF Management |
1 | mib-2 | База OID для спецификации MIB-2 |
1 | system | Характеристики системы |
5 | sysName | Имя системы |
OID специфичного объекта для конкретного устройства, дополненный своими MIB’ами, будет значительно длиннее. Вот пример OID датчика температуры у первого вентилятора в Intel Modular Server: 1.3.6.1.4.1.343.2.19.1.2.10.206.1.1.16.1. Первые 7 параметров из стандартных MIB’ов, остальные 10 из MIB’ов Intel. Четыре первых мы уже расшифровали выше, остальные поясняются следующим образом:
4 | private | Частные проекты |
1 | enterprise | Частные организации |
343 | intel | Этот номер закреплён за компанией Intel |
2 | products | Продукты |
19 | modularsystems | Серверы линейки Modular System |
1 | multiFlexServer | Тип сервера Multi-Flex Server |
2 | components | Компоненты |
10 | chassis | Контейнер для информации об аппаратном блоке |
206 | fans | Вентиляторы |
1 | fanFruTable | Таблица вентиляторов |
1 | fanFruEntry | Информация о вентиляторе |
16 | fanFruInletTemperature | Температура возле вентилятора |
1 | датчик возле первого вентилятора |
Вся описательная информация находится как раз в текстовых файлах MIB, поэтому давайте разберёмся как их читать.
Как читать MIB
При работе с удалённой системой по SNMP протоколу все запросы происходят через OID, отражающий положение объекта в дереве объектов MIB. Все OID системы можно получить просканировав устройство, например командой snmpwalk:
snmpwalk -c public -v2c 10.0.0.1
где
- -c public – обращение к сообществу (comminity) public, на многих устройствах оно существует по умолчанию и в режиме только для чтения;
- -v2c – использовать вторую версию протокола SNMP;
- 10.0.0.1 – IP адрес устройства.
К сожалению, иногда команда не успевает вытащить все переменные, так как на некоторых устройствах их сильно много и защита от DOS атак срабатывает раньше, блокируя доступ на некоторое время. Поэтому данные иногда удобней получать частично, лишь для определённой ветки:
snmpwalk -c public -v2c 10.0.0.1 1.3.6.1.4.1.343.2.19.1.2.10.206.1.1.16
Однако, полученные цифровые значения часто не раскрывают своего предназначения, поэтому, возникает обратная задача: узнать какой OID у интересующего нас объекта. Для этого придётся изучать MIB устройства.
Так, для того чтобы узнать температуру в корпусе Intel Modular Server, возмём MIB описывающего параметры вентиляторов системы и делаем в нём поиск слова temperature, находим объект fanFruInletTemperature и смотрим его описание. Вот нужный нам фрагмент:
-- -- fans tree -- fans OBJECT-IDENTITY STATUS current DESCRIPTION "Container for Fan specific information as well as all components logically contained within." ::= { chassis 206 } fanFruTable OBJECT-TYPE SYNTAX SEQUENCE OF FanFruEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION "Each row describes a Fan FRU in the chassis Current, this should include the 3 Fan FRUs (the two system Fan FRUs and the I/O Fan FRU) All system FRUs rows will be present" ::= { fans 1 } fanFruEntry OBJECT-TYPE SYNTAX FanFruEntry MAX-ACCESS not-accessible STATUS current DESCRIPTION ".." INDEX { fanFruIndex } ::= { fanFruTable 1 } FanFruEntry ::= SEQUENCE { fanFruIndexIndex, fanFruPresencePresence, fanFruVendorDisplayString, fanFruMfgDateDisplayString, fanFruDeviceNameDisplayString, fanFruPartIdromBinary16, fanFruSerialNoIdromBinary16, fanFruMaximumPowerPower, fanFruNominalPowerPower, fanFruAssetTagIdromBinary16, fanFruPowerLedPowerLedStates, fanFruFaultLedFaultLedStates, fanFruOpCodeVersionDisplayString, fanFruBootBlockVersionDisplayString, fanFruNumOfFansINT32withException, fanFruInletTemperatureINT32withException }
Строка в описании объекта fans
::= { chassis 206 }
говорит о том, что описанный объект будет расширять объект (являться веткой в дереве объектов) chassis, имея в нём индекс 206, а следующий объект fanFruTable в свою очередь будет расширять объект fans, представляя в нём ветку с индексом 1, также fanFruEntry будет первой веткой у объекта fanFruTable. В параметрах fanFruEntry и содержится интересующий нас fanFruInletTemperature.
Запоминаем адрес ветки: 206.1.1, начиная от объекта chassis. Теперь ищем далее в файле описание объекта fanFruInletTemperature:
fanFruInletTemperature OBJECT-TYPE SYNTAX INT32withException MAX-ACCESS read-only STATUS current DESCRIPTION "FRU Inlet Temperature in Degrees Celsius" ::= { fanFruEntry 16 }
Видим, что его индекс=16. Таким образом, 206.1.1.16 – содержит список всех температурных датчиков возле вентиляторов системы и, соответственно, 206.1.1.16.1 – номер первого из них. Сколько их всего узнаем позже. Теперь выясним адрес объекта chassis, в котором находятся только что найденные нужные нам параметры. Так, сквозной поиск строки “chassis OBJECT-IDENTITY” по всем MIB файлам приводит нас к другому MIB’у:
chassis OBJECT-IDENTITY STATUS current DESCRIPTION "chassis for the Multi-Flex Server product. Container for chassis specific information as well as all components logically contained within." ::= { components 10 }
где мы узнаём, что он содержится в объекте components. Далее сквозной поиск строки “components OBJECT-IDENTITY” (нужно учесть, что пробелов между словами может быть разное количество) даёт строчку:
components OBJECT IDENTIFIER::= { multiFlexServer 2 }
Далее находим и остальное:
-- -- Path to our product -- intelOBJECT IDENTIFIER ::= { enterprises 343 } productsOBJECT IDENTIFIER ::= { intel 2 } modularsystems OBJECT IDENTIFIER ::= { products 19 } multiFlexServer OBJECT IDENTIFIER ::= { modularsystems 1 }
Записывая все полученные ID объектов получаем полный OID для температурных датчиков: 1.3.6.1.4.1.343.2.19.1.2.10.206.1.1.16
Теперь можно узнать их значения, заодно выяснив и их количество:
$ snmpwalk -c public -v2c 10.0.0.1 1.3.6.1.4.1.343.2.19.1.2.10.206.1.1.16 iso.3.6.1.4.1.343.2.19.1.2.10.206.1.1.16.1 = INTEGER: 27 iso.3.6.1.4.1.343.2.19.1.2.10.206.1.1.16.2 = INTEGER: 26 iso.3.6.1.4.1.343.2.19.1.2.10.206.1.1.16.3 = INTEGER: 19
По приведённому несложному алгоритму можно прочитать любой MIB, главное получить его, что, к сожалению, не всегда возможно.
Для облегчения работы с MIB файлами существует множество программ как платных, так и бесплатных, в том числе и on-line (см. раздел Ссылки). Любой поисковик на запрос MIB browser выдаст много полезных ссылок. Я пользуюсь iReasoning MIB Browser, но не потому, что он лучше других, а просто я попробовал его первым и он мне вполне понравился.
Теперь, зная как читать MIB’ы и OID’ы администратору будет легче использовать и донастраивать системы мониторинга здоровья системы, такие как Zabbix, MRTG, PRTG, Cacti и т.п.
Ссылки
- ↑ Первоначально статья была опубликована в журнале Системный администратор, январь 2011
См. также
- Обзорная статья по протоколу SNMP.
- On-line сервисы для чтения MIB:
- http://www.oid-info.com/get/ – поиск по OID с детальным пояснением всех узлов. Есть возможность расширить список своими MIB’ами. Можно посмотреть дерево объектов.
- http://tools.cisco.com/Support/SNMP/do/BrowseOID.do?local=en – поиск по OID и Object Name. Кроме стандартных, есть специфичные для Cisco MIB’ы
Товарищи, добрый день.
Я использую систему мониторинга zabbix. Уже все установленно, настроено и подходит время для добавления устройств по SNMP протоколу.
Всё работает , но встала такая проблема что для некоторых устройств не могу найти не самих SNMP OID не описания к ним. Понятно что под cisco и тому подобное железо куда легче,а вот в случаях с другим железом что посоветуете?
P.S уже пробежался по документации, по MIB базам данных ничего.
На данный момент ищу OID для “junger”
-
Вопрос заданболее трёх лет назад
-
11298 просмотров