Протокол SNMP в POSIX-операционных системах.
Модератор: Olej
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Протокол SNMP в POSIX-операционных системах.
Предыдущие сообщения показывают инсталляцию пакетов, полностью достаточных для использования SNMP.
Но этого недостаточно для разработки собственных агентов SNMP.
Но этого недостаточно для разработки собственных агентов SNMP.
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Протокол SNMP в POSIX-операционных системах.
Проверка-тестирование того, что уже поставлено - на стандартных предустановленных OID-ах, пока...Olej писал(а):Предыдущие сообщения показывают инсталляцию пакетов, полностью достаточных для использования SNMP.
Для Fedora 23 всё без проблем:
Код: Выделить всё
[olej@dell Видео]$ service snmpd status
Redirecting to /bin/systemctl status snmpd.service
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
Loaded: loaded (/usr/lib/systemd/system/snmpd.service; disabled; vendor preset: disabled)
Active: inactive (dead)
[olej@dell Видео]$ sudo service snmpd start
Redirecting to /bin/systemctl start snmpd.service
[olej@dell Видео]$ service snmpd status
Redirecting to /bin/systemctl status snmpd.service
● snmpd.service - Simple Network Management Protocol (SNMP) Daemon.
Loaded: loaded (/usr/lib/systemd/system/snmpd.service; disabled; vendor preset: disabled)
Active: active (running) since Ср 2016-06-15 12:31:08 EEST; 7s ago
Main PID: 15860 (snmpd)
CGroup: /system.slice/snmpd.service
└─15860 /usr/sbin/snmpd -LS0-6d -f
июн 15 12:31:08 dell.localdomain systemd[1]: Starting Simple Network Management Protocol (SNMP) Daemon....
июн 15 12:31:08 dell.localdomain snmpd[15860]: NET-SNMP version 5.7.3
июн 15 12:31:08 dell.localdomain systemd[1]: Started Simple Network Management Protocol (SNMP) Daemon..
Код: Выделить всё
[olej@dell PureCodeCpp]$ snmpget -v1 localhost -c public SNMPv2-MIB::sysName.0
SNMPv2-MIB::sysName.0 = STRING: dell.localdomain
[olej@dell PureCodeCpp]$ snmpget 192.168.1.105 -v1 -c public system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux dell.localdomain 4.5.5-201.fc23.x86_64 #1 SMP Sat May 21 15:29:49 UTC 2016 x86_64
Код: Выделить всё
[olej@dell Видео]$ snmptranslate -Tp -OS NET-SNMP-EXAMPLES-MIB::netSnmpExampleString
+-- -RW- String netSnmpExampleString(3)
Textual Convention: SnmpAdminString
Size: 0..255
[olej@dell own.WORK]$ snmptranslate -On SNMPv2-MIB::sysOREntry
.1.3.6.1.2.1.1.9.1
[olej@dell own.WORK]$ snmptranslate -Td -On SNMPv2-MIB::sysOREntry
.1.3.6.1.2.1.1.9.1
sysOREntry OBJECT-TYPE
-- FROM SNMPv2-MIB
MAX-ACCESS not-accessible
STATUS current
INDEX { sysORIndex }
DESCRIPTION "An entry (conceptual row) in the sysORTable."
::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysORTable(9) 1 }
Код: Выделить всё
[olej@dell own.WORK]$ snmpget 127.0.0.1 -v1 -c public system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux dell.localdomain 4.5.5-201.fc23.x86_64 #1 SMP Sat May 21 15:29:49 UTC 2016 x86_64
[olej@dell own.WORK]$ snmpget 127.0.0.1 -v2c -c public system.sysDescr.0
SNMPv2-MIB::sysDescr.0 = STRING: Linux dell.localdomain 4.5.5-201.fc23.x86_64 #1 SMP Sat May 21 15:29:49 UTC 2016 x86_64
[olej@dell own.WORK]$ snmpget 127.0.0.1 -v3 -c public system.sysDescr.0
snmpget: No securityName specified (Sub-id not found: (top) -> system)
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Протокол SNMP в POSIX-операционных системах.
А вот в Mint 17.1 (как понимаю - во всех DEB дистрибутивах) всё гораздо хуже...Olej писал(а): Проверка-тестирование того, что уже поставлено - на стандартных предустановленных OID-ах, пока...
Для Fedora 23 всё без проблем:
Код: Выделить всё
olej@nvidia ~ $ service snmpd status
* snmpd is not running
olej@nvidia ~ $ service snmpd start
* Starting network management services: olej@n
* snmpd is not running
Но можно запустить в терминале, в отладочном режиме, с вывоом сообщений:
Код: Выделить всё
olej@nvidia ~ $ sudo snmpd -f -Le -d
payload OID: prNames
/etc/snmp/snmpd.conf: line 143: Error: unknown payload OID
Unknown payload OID: prNames
/etc/snmp/snmpd.conf: line 143: Error: Unknown payload OID
payload OID: prErrMessage
...
/etc/snmp/snmpd.conf: line 143: Error: unknown monitor OID
Turning on AgentX master support.
net-snmp: 33 error(s) in config file(s)
Sending 44 bytes to UDP: [127.0.0.1]:162->[0.0.0.0]:0
0000: 30 2A 02 01 00 04 06 70 75 62 6C 69 63 A4 1D 06 0*.....public...
0016: 0A 2B 06 01 04 01 BF 08 03 02 0A 40 04 C0 A8 01 .+.........@....
0032: 67 02 01 00 02 01 00 43 01 01 30 00 g......C..0.
NET-SNMP version 5.7.2
Sending 1 bytes to callback: 2 on fd 6
0000: 00
...
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Протокол SNMP в POSIX-операционных системах.
Но и это ещё не последняя проблема:Olej писал(а): А вот в Mint 17.1 (как понимаю - во всех DEB дистрибутивах) всё гораздо хуже...
Код: Выделить всё
olej@nvidia ~ $ snmpget -v1 localhost -c public SNMPv2-MIB::sysName.0
MIB search path: /home/olej/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp
Cannot find module (SNMPv2-MIB): At line 1 in (none)
SNMPv2-MIB::sysName.0: Unknown Object Identifier
Но это потому, что весь набор стандартных MIB-файлов не установлен, и должен устанавливаться отдельно:
Код: Выделить всё
olej@nvidia ~ $ apt show snmp-mibs-downloader
Пакет: snmp-mibs-downloader
Новый: да
Состояние: не установлен
Версия: 1.1
Приоритет: необязательный
Раздел: multiverse/net
Сопровождающий: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Архитектура: all
Размер в распакованном виде: 5.882 k
Зависимости: wget, smistrip, patch
Предлагает: unzip
Описание: Install and manage Management Information Base (MIB) files
This package ships the IETF RFCs containing MIB files and a script which
extracts them to be used by Simple Network Management libraries. The script can
be used to update some MIBs to the latest version or to download extra vendor
MIBs.
These MIBs can be useful for programs like wireshark or snmpget to enable them
to translating the received information into human readable text.
Сайт: https://alioth.debian.org/projects/pkg-net-snmp
Код: Выделить всё
olej@nvidia ~ $ sudo apt-get install snmp-mibs-downloader
Чтение списков пакетов… Готово
Построение дерева зависимостей
Чтение информации о состоянии… Готово
Будут установлены следующие дополнительные пакеты:
smistrip
НОВЫЕ пакеты, которые будут установлены:
smistrip snmp-mibs-downloader
...
Downloading documents and extracting MIB files.
This will take some minutes.
In case this process fails, it can always be repeated later by executing
/usr/bin/download-mibs again.
RFC1155-SMI: 119 lines.
RFC1213-MIB: 2613 lines.
NOTE: SMUX: ignored.
SMUX-MIB: 158 lines.
CLNS-MIB: 1294 lines.
RFC1381-MIB: 1007 lines.
...
IANA-IPPM-METRICS-REGISTRY-MIB: 650 lines.
IANA-MAU-MIB: 895 lines.
IPFIX-SELECTOR-MIB: 167 lines.
Код: Выделить всё
olej@nvidia /usr/share $ tree /usr/share/mibs
/usr/share/mibs
├── iana -> /var/lib/mibs/iana
└── ietf -> /var/lib/mibs/ietf
2 directories, 0 files
olej@nvidia /usr/share $ ls /usr/share/mibs/ietf
ACCOUNTING-CONTROL-MIB IF-CAP-STACK-MIB RFC1213-MIB
ADSL2-LINE-MIB IFCP-MGMT-MIB RFC1381-MIB
ADSL2-LINE-TC-MIB IF-INVERTED-STACK-MIB RFC1382-MIB
ADSL-LINE-EXT-MIB IF-MIB RFC1414-MIB
ADSL-LINE-MIB IGMP-STD-MIB RIPv2-MIB
ADSL-TC-MIB INET-ADDRESS-MIB RMON2-MIB
AGENTX-MIB INTEGRATED-SERVICES-GUARANTEED-MIB RMON-MIB
AGGREGATE-MIB INTEGRATED-SERVICES-MIB ROHC-MIB
ALARM-MIB INTERFACETOPN-MIB ROHC-RTP-MIB
APM-MIB IPATM-IPMC-MIB ROHC-UNCOMPRESSED-MIB
APPC-MIB IPFIX-MIB RS-232-MIB
APPLETALK-MIB IP-FORWARD-MIB RSERPOOL-MIB
APPLICATION-MIB IPMCAST-MIB RSTP-MIB
APPN-DLUR-MIB IP-MIB RSVP-MIB
APPN-MIB IPMROUTE-STD-MIB RTP-MIB
APPN-TRAP-MIB IPOA-MIB SCSI-MIB
APS-MIB IPS-AUTH-MIB SCTP-MIB
ARC-MIB IPSEC-SPD-MIB SFLOW-MIB
ATM2-MIB IPV6-FLOW-LABEL-MIB SIP-COMMON-MIB
ATM-ACCOUNTING-INFORMATION-MIB IPV6-ICMP-MIB SIP-MIB
ATM-MIB IPV6-MIB SIP-SERVER-MIB
ATM-TC-MIB IPV6-MLD-MIB SIP-TC-MIB
BGP4-MIB IPV6-TC SIP-UA-MIB
BRIDGE-MIB IPV6-TCP-MIB SLAPM-MIB
CAPWAP-BASE-MIB IPV6-UDP-MIB SMON-MIB
CAPWAP-DOT11-MIB ISCSI-MIB SMUX-MIB
CHARACTER-MIB ISDN-MIB SNA-NAU-MIB
CIRCUIT-IF-MIB ISIS-MIB SNA-SDLC-MIB
CLNS-MIB ISNS-MIB SNMP-COMMUNITY-MIB
COPS-CLIENT-MIB ITU-ALARM-MIB SNMP-FRAMEWORK-MIB
DECNET-PHIV-MIB ITU-ALARM-TC-MIB SNMP-IEEE802-TM-MIB
DIAL-CONTROL-MIB Job-Monitoring-MIB SNMP-MPD-MIB
DIFFSERV-CONFIG-MIB L2TP-MIB SNMP-NOTIFICATION-MIB
DIFFSERV-DSCP-TC LANGTAG-TC-MIB SNMP-PROXY-MIB
DIFFSERV-MIB LMP-MIB SNMP-REPEATER-MIB
DIRECTORY-SERVER-MIB MALLOC-MIB SNMP-SSH-TM-MIB
DISMAN-EVENT-MIB MAU-MIB SNMP-TARGET-MIB
DISMAN-EXPRESSION-MIB MGMD-STD-MIB SNMP-TSM-MIB
DISMAN-NSLOOKUP-MIB MIDCOM-MIB SNMP-USER-BASED-SM-MIB
DISMAN-PING-MIB MIOX25-MIB SNMP-USM-AES-MIB
DISMAN-SCHEDULE-MIB MIP-MIB SNMP-USM-DH-OBJECTS-MIB
DISMAN-SCRIPT-MIB MOBILEIPV6-MIB SNMPv2-CONF
DISMAN-TRACEROUTE-MIB Modem-MIB SNMPv2-M2M-MIB
DLSW-MIB MPLS-FTN-STD-MIB SNMPv2-MIB
DNS-RESOLVER-MIB MPLS-L3VPN-STD-MIB SNMPv2-PARTY-MIB
DNS-SERVER-MIB MPLS-LC-ATM-STD-MIB SNMPv2-PDU
DOCS-BPI-MIB MPLS-LC-FR-STD-MIB SNMPv2-SMI
DOCS-CABLE-DEVICE-MIB MPLS-LDP-ATM-STD-MIB SNMPv2-TC
DOCS-IETF-BPI2-MIB MPLS-LDP-FRAME-RELAY-STD-MIB SNMPv2-TM
DOCS-IETF-CABLE-DEVICE-NOTIFICATION-MIB MPLS-LDP-GENERIC-STD-MIB SNMPv2-USEC-MIB
DOCS-IETF-QOS-MIB MPLS-LDP-STD-MIB SNMP-VIEW-BASED-ACM-MIB
DOCS-IETF-SUBMGT-MIB MPLS-LSR-STD-MIB SONET-MIB
DOCS-IF-MIB MPLS-TC-STD-MIB SOURCE-ROUTING-MIB
DOT12-IF-MIB MPLS-TE-STD-MIB SSPM-MIB
DOT12-RPTR-MIB MSDP-MIB SYSAPPL-MIB
DOT3-EPON-MIB MTA-MIB SYSLOG-MSG-MIB
DOT3-OAM-MIB NAT-MIB SYSLOG-TC-MIB
DPI20-MIB NEMO-MIB T11-FC-FABRIC-ADDR-MGR-MIB
DS0BUNDLE-MIB NETWORK-SERVICES-MIB T11-FC-FABRIC-CONFIG-SERVER-MIB
DS0-MIB NHRP-MIB T11-FC-FABRIC-LOCK-MIB
DS1-MIB NOTIFICATION-LOG-MIB T11-FC-FSPF-MIB
DS3-MIB OPT-IF-MIB T11-FC-NAME-SERVER-MIB
DSA-MIB OSPF-MIB T11-FC-ROUTE-MIB
DSMON-MIB OSPF-TRAP-MIB T11-FC-RSCN-MIB
DVB-RCS-MIB OSPFV3-MIB T11-FC-SP-AUTHENTICATION-MIB
EBN-MIB PARALLEL-MIB T11-FC-SP-POLICY-MIB
EFM-CU-MIB P-BRIDGE-MIB T11-FC-SP-SA-MIB
ENTITY-MIB PerfHist-TC-MIB T11-FC-SP-TC-MIB
ENTITY-SENSOR-MIB PIM-BSR-MIB T11-FC-SP-ZONING-MIB
ENTITY-STATE-MIB PIM-MIB T11-FC-VIRTUAL-FABRIC-MIB
ENTITY-STATE-TC-MIB PIM-STD-MIB T11-FC-ZONE-SERVER-MIB
ETHER-CHIPSET-MIB PINT-MIB T11-TC-MIB
EtherLike-MIB PKTC-IETF-EVENT-MIB TCP-ESTATS-MIB
FCIP-MGMT-MIB PKTC-IETF-MTA-MIB TCPIPX-MIB
FC-MGMT-MIB PKTC-IETF-SIG-MIB TCP-MIB
FDDI-SMT73-MIB POLICY-BASED-MANAGEMENT-MIB TE-LINK-STD-MIB
FIBRE-CHANNEL-FE-MIB POWER-ETHERNET-MIB TE-MIB
Finisher-MIB PPP-BRIDGE-NCP-MIB TIME-AGGREGATE-MIB
FLOW-METER-MIB PPP-IP-NCP-MIB TN3270E-MIB
FORCES-MIB PPP-LCP-MIB TN3270E-RT-MIB
FRAME-RELAY-DTE-MIB PPP-SEC-MIB TOKENRING-MIB
FR-ATM-PVC-SERVICE-IWF-MIB Printer-MIB TOKEN-RING-RMON-MIB
FR-MFR-MIB PTOPO-MIB TOKENRING-STATION-SR-MIB
FRNETSERV-MIB PW-ATM-MIB TPM-MIB
FRSLD-MIB PW-ENET-STD-MIB TRANSPORT-ADDRESS-MIB
GMPLS-LABEL-STD-MIB PW-MPLS-STD-MIB TRIP-MIB
GMPLS-LSR-STD-MIB PW-STD-MIB TRIP-TC-MIB
GMPLS-TC-STD-MIB PW-TC-STD-MIB TUNNEL-MIB
GMPLS-TE-STD-MIB PW-TDM-MIB UDPLITE-MIB
GSMP-MIB Q-BRIDGE-MIB UDP-MIB
HC-ALARM-MIB RADIUS-ACC-CLIENT-MIB UPS-MIB
HCNUM-TC RADIUS-ACC-SERVER-MIB URI-TC-MIB
HC-PerfHist-TC-MIB RADIUS-AUTH-CLIENT-MIB VDSL2-LINE-MIB
HC-RMON-MIB RADIUS-AUTH-SERVER-MIB VDSL2-LINE-TC-MIB
HDSL2-SHDSL-LINE-MIB RADIUS-DYNAUTH-CLIENT-MIB VDSL-LINE-EXT-MCM-MIB
HOST-RESOURCES-MIB RADIUS-DYNAUTH-SERVER-MIB VDSL-LINE-EXT-SCM-MIB
HOST-RESOURCES-TYPES RAQMON-MIB VDSL-LINE-MIB
HPR-IP-MIB RAQMON-RDS-MIB VPN-TC-STD-MIB
HPR-MIB RDBMS-MIB VRRP-MIB
IBM-6611-APPN-MIB RFC1155-SMI WWW-MIB
Код: Выделить всё
olej@nvidia /usr/share $ snmptranslate -Tp -OS NET-SNMP-EXAMPLES-MIB::netSnmpExampleString
+-- -RW- String netSnmpExampleString(3)
Textual Convention: SnmpAdminString
Size: 0..255
olej@nvidia /usr/share $ snmptranslate -Tp -OS SNMPv2-MIB::sysOREntry
+--sysOREntry(1)
| Index: sysORIndex
|
+-- ---- INTEGER sysORIndex(1)
| Range: 1..2147483647
+-- -R-- ObjID sysORID(2)
+-- -R-- String sysORDescr(3)
| Textual Convention: DisplayString
| Size: 0..255
+-- -R-- TimeTicks sysORUpTime(4)
Textual Convention: TimeStamp
olej@nvidia /usr/share $ snmptranslate -On SNMPv2-MIB::sysOREntry
.1.3.6.1.2.1.1.9.1
olej@nvidia /usr/share $ snmptranslate -Td -On SNMPv2-MIB::sysOREntry
.1.3.6.1.2.1.1.9.1
sysOREntry OBJECT-TYPE
-- FROM SNMPv2-MIB
MAX-ACCESS not-accessible
STATUS current
INDEX { sysORIndex }
DESCRIPTION "An entry (conceptual row) in the sysORTable."
::= { iso(1) org(3) dod(6) internet(1) mgmt(2) mib-2(1) system(1) sysORTable(9) 1 }
Код: Выделить всё
olej@nvidia /usr/share $ snmpget -v1 localhost -c public SNMPv2-MIB::sysName.0
SNMPv2-MIB::sysName.0 = STRING: nvidia
olej@nvidia /usr/share $ snmpwalk -v1 localhost -c public system
system: Unknown Object Identifier (Sub-id not found: (top) -> system)
olej@nvidia /usr/share $ snmpwalk -v1 localhost -c public SNMPv2-MIB::system
SNMPv2-MIB::sysDescr.0 = STRING: Linux nvidia 3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:30:01 UTC 2014 i686
SNMPv2-MIB::sysObjectID.0 = OID: SNMPv2-SMI::enterprises.8072.3.2.10
SNMPv2-MIB::sysUpTime.0 = Timeticks: (251301) 0:41:53.01
SNMPv2-MIB::sysContact.0 = STRING: Me <me@example.org>
SNMPv2-MIB::sysName.0 = STRING: nvidia
SNMPv2-MIB::sysLocation.0 = STRING: Sitting on the Dock of the Bay
SNMPv2-MIB::sysServices.0 = INTEGER: 72
SNMPv2-MIB::sysORLastChange.0 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORID.1 = OID: SNMPv2-SMI::snmpModules.11.3.1.1
SNMPv2-MIB::sysORID.2 = OID: SNMPv2-SMI::snmpModules.15.2.1.1
SNMPv2-MIB::sysORID.3 = OID: SNMPv2-SMI::snmpModules.10.3.1.1
SNMPv2-MIB::sysORID.4 = OID: SNMPv2-MIB::snmpMIB
SNMPv2-MIB::sysORID.5 = OID: SNMPv2-SMI::mib-2.49
SNMPv2-MIB::sysORID.6 = OID: SNMPv2-SMI::mib-2.4
SNMPv2-MIB::sysORID.7 = OID: SNMPv2-SMI::mib-2.50
SNMPv2-MIB::sysORID.8 = OID: SNMPv2-SMI::snmpModules.16.2.2.1
SNMPv2-MIB::sysORID.9 = OID: SNMPv2-SMI::snmpModules.13.3.1.3
SNMPv2-MIB::sysORID.10 = OID: SNMPv2-SMI::mib-2.92
SNMPv2-MIB::sysORDescr.1 = STRING: The MIB for Message Processing and Dispatching.
SNMPv2-MIB::sysORDescr.2 = STRING: The management information definitions for the SNMP User-based Security Model.
SNMPv2-MIB::sysORDescr.3 = STRING: The SNMP Management Architecture MIB.
SNMPv2-MIB::sysORDescr.4 = STRING: The MIB module for SNMPv2 entities
SNMPv2-MIB::sysORDescr.5 = STRING: The MIB module for managing TCP implementations
SNMPv2-MIB::sysORDescr.6 = STRING: The MIB module for managing IP and ICMP implementations
SNMPv2-MIB::sysORDescr.7 = STRING: The MIB module for managing UDP implementations
SNMPv2-MIB::sysORDescr.8 = STRING: View-based Access Control Model for SNMP.
SNMPv2-MIB::sysORDescr.9 = STRING: The MIB modules for managing SNMP Notification, plus filtering.
SNMPv2-MIB::sysORDescr.10 = STRING: The MIB module for logging SNMP Notifications.
SNMPv2-MIB::sysORUpTime.1 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.2 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.3 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.4 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.5 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.6 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.7 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.8 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.9 = Timeticks: (0) 0:00:00.00
SNMPv2-MIB::sysORUpTime.10 = Timeticks: (0) 0:00:00.00
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Протокол SNMP в POSIX-операционных системах.
Olej писал(а): Сервис не стартует, ошибка...
Код: Выделить всё
olej@nvidia ~ $ service snmpd status
* snmpd is not running
olej@nvidia ~ $ sudo service snmpd start
* Starting network management services:
olej@nvidia ~ $ service snmpd status
* snmpd is running
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Протокол SNMP в POSIX-операционных системах.
Переходим к разработке.Olej писал(а):Предыдущие сообщения показывают инсталляцию пакетов, полностью достаточных для использования SNMP.
Но этого недостаточно для разработки собственных агентов SNMP.
Доустанавливаю то, чего не хватает для создания собственных субагентов AgentX + делаем простейшего субагента для простейшей задачи.
Простейшая задача (проще не бывает) выглядит так:
- написать собственный MIB-файл ...
- который определит новый числовой OID по чтению (snmpget ...)...
- который прочитает на своём хосте /proc/uptime и возвратит результат как текстовую строку
- и написать агента SNMP, который может запускаться как субагент (AgentX), или как автономный демон (сервис, вместо snmpd)
Код: Выделить всё
[olej@dell snmp.7]$ cat /proc/uptime
318360.39 1129565.01
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Протокол SNMP в POSIX-операционных системах.
Шаг 1:
2-й файл - определение вершин собственного поддерева:
1. Имена самих файлов не имеют никакого значения
2. Можно вообще и всё поддерево описать в одном файле ... но так не делают из-за удобства структуризации
3. Конкретные числа в OID для своего поддерева берём "с потолка" - это уже наши права...
1-й файл - определяющий корень (8765) собственного поддерева ... например по принадлежности имени собственной компании :Olej писал(а): - написать собственный MIB-файл ...
- который определит новый числовой OID по чтению (snmpget ...)...
Код: Выделить всё
ALEX-MIB DEFINITIONS ::= BEGIN
-- Top-level infrastructure of the ALEX-SNMP projects enterprise MIB tree
-- Title: ALEX TOP LEVEL MIB
-- Version : 1.0
-- Revision History:
-- *************************************************************************
-- 15/06/2016 - v1.0 Create base functionality
IMPORTS
MODULE-IDENTITY, enterprises FROM SNMPv2-SMI;
alex MODULE-IDENTITY
LAST-UPDATED "201606150000Z"
ORGANIZATION "no organization"
CONTACT-INFO "email: sektorct@gmail.com"
DESCRIPTION "Top-level MIB .1.3.6.1.4.1.8765"
REVISION "201606150000Z"
DESCRIPTION "First draft"
::= { enterprises 8765 }
END
Код: Выделить всё
ALEX-MANAGEMENT-MIB DEFINITIONS ::= BEGIN
IMPORTS
OBJECT-TYPE, NOTIFICATION-TYPE,
MODULE-IDENTITY, Integer32,
Gauge32, IpAddress FROM SNMPv2-SMI
DisplayString FROM SNMPv2-TC
alex FROM ALEX-MIB
;
management MODULE-IDENTITY
LAST-UPDATED "201606150000Z"
ORGANIZATION "no organization"
CONTACT-INFO "email: sektorct@gmail.com"
DESCRIPTION "SubAgent level MIB .1.3.6.1.4.1.8765.13"
REVISION "201606150000Z"
DESCRIPTION "First draft"
::= { alex 13 }
-- uptime системы из /proc
procUptime OBJECT-TYPE
SYNTAX DisplayString
MAX-ACCESS read-only
STATUS current
DESCRIPTION "System Uptime"
::= { management 5 }
END
2. Можно вообще и всё поддерево описать в одном файле ... но так не делают из-за удобства структуризации
3. Конкретные числа в OID для своего поддерева берём "с потолка" - это уже наши права...
- Вложения
-
- Alexey1.MIB.txt
- (671 байт) 213 скачиваний
-
- Alexey2.MIB.txt
- (1.39 КБ) 207 скачиваний
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Протокол SNMP в POSIX-операционных системах.
Шаг 2:Olej писал(а):Шаг 1:
MIB-файлы нужно тщательно выверить, специальными утилитами, формально... руками-глазами это сделать нельзя, а если этого шага не сделать - дальше всё развалится с дикими сообщениями об ошибках.
Помещаем (копируем) свои MIB-файлы для отработки в каталог, который известен для поиска утилитам SNMP:
Код: Выделить всё
[olej@dell snmp.7]$ net-snmp-config --default-mibdirs
/home/olej/.snmp/mibs:/usr/share/snmp/mibs
Проверки:
Код: Выделить всё
[olej@dell snmp.7]$ snmptranslate -Tp -OS ALEX-MIB::alex
+--alex(8765)
[olej@dell snmp.7]$ snmptranslate -On -m +ALEX-MANAGEMENT-MIB -IR procUptime
.1.3.6.1.4.1.8765.13.5
[olej@dell snmp.7]$ snmptranslate -Tp -OS -m +ALEX-MANAGEMENT-MIB -IR alex
+--alex(8765)
+--management(13)
+-- -R-- IpAddr hostIpAddress(1)
+-- -R-- String hostName(2)
| Textual Convention: DisplayString
| Size: 0..255
+-- -R-- String procUptime(5)
Textual Convention: DisplayString
Size: 0..255
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Протокол SNMP в POSIX-операционных системах.
Для жёсткой проверки синтаксиса MIB нам нужна утилита smilint.Olej писал(а): Проверки:
Fedora 23 :
Код: Выделить всё
[olej@dell own.WORK]$ dnf list libsmi*
Последняя проверка окончания срока действия метаданных: 0:20:26 назад, Wed Jun 15 12:03:05 2016.
Доступные пакеты
libsmi.i686 0.4.8-16.fc23 fedora
libsmi.x86_64 0.4.8-16.fc23 fedora
libsmi-devel.i686 0.4.8-16.fc23 fedora
libsmi-devel.x86_64 0.4.8-16.fc23 fedora
[olej@dell own.WORK]$ sudo dnf install libsmi
...
Установлено:
libsmi.x86_64 0.4.8-16.fc23
Выполнено!
[olej@dell own.WORK]$ which smilint
/usr/bin/smilint
Код: Выделить всё
olej@nvidia ~ $ apt-file search smilint
smitools: /usr/bin/smilint
smitools: /usr/share/man/man1/smilint.1.gz
olej@nvidia ~ $ sudo apt-get install smitools
Чтение списков пакетов… Готово
...
Настраивается пакет smitools (0.4.8+dfsg2-8ubuntu2) …
Processing triggers for libc-bin (2.19-0ubuntu6.9) ...
olej@nvidia ~ $ which smilint
/usr/bin/smilint
- Olej
- Писатель
- Сообщения: 21338
- Зарегистрирован: 24 сен 2011, 14:22
- Откуда: Харьков
- Контактная информация:
Re: Протокол SNMP в POSIX-операционных системах.
Olej писал(а): Для жёсткой проверки синтаксиса MIB нам нужна утилита smilint.
Код: Выделить всё
olej@nvidia ~/.snmp/mibs $ smilint -l3 -s -p ./Alexey1.MIB ./Alexey2.MIB
olej@nvidia ~/.snmp/mibs $ smilint -l4 -s -p ./Alexey1.MIB ./Alexey2.MIB
./Alexey2.MIB:23: [4] warning: node `hostIpAddress' must be contained in at least one conformance group
./Alexey2.MIB:31: [4] warning: node `hostName' must be contained in at least one conformance group
olej@nvidia ~/.snmp/mibs $ smilint -l5 -s -p ./Alexey1.MIB ./Alexey2.MIB
./Alexey2.MIB:23: [4] warning: node `hostIpAddress' must be contained in at least one conformance group
./Alexey2.MIB:31: [4] warning: node `hostName' must be contained in at least one conformance group
./Alexey2.MIB:4: [5] warning: identifier `NOTIFICATION-TYPE' imported from module `SNMPv2-SMI' is never used
./Alexey2.MIB:5: [5] warning: identifier `Integer32' imported from module `SNMPv2-SMI' is never used
./Alexey2.MIB:6: [5] warning: identifier `Gauge32' imported from module `SNMPv2-SMI' is never used
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 7 гостей