分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

net-snmp: introduction

发布时间:2023-09-06 01:16责任编辑:彭小芳关键词:暂无标签

SNMP is a protocol that enables server remote-info-exchange. Which according to wikipedia: it [collecting and organizing information about managed devices on IP networks and for modifying that information to change device behavior].

It is short for simple network management protocol. Typically, routers, switches, servers, workstations, printers supports it.

If need to test snmp locally, I suggest install net-snmp from source from tarball fetched from here (choose newest version).

Download and ./configure --prefix=/usr & make & make install should work.

Here is a file that most demonstrates the most widely used mib file.

And here is a tutorial that helps you walk through mib file content creation step by step.

---quote of example mib file----

NET-SNMP-EXAMPLES-MIB DEFINITIONS ::= BEGIN---- Example MIB objects for agent module example implementations--IMPORTS ???MODULE-IDENTITY, OBJECT-TYPE, Integer32, ???NOTIFICATION-TYPE ??????????????????????FROM SNMPv2-SMI ???SnmpAdminString ????????????????????????FROM SNMP-FRAMEWORK-MIB ???netSnmp ????????????????????????????????FROM NET-SNMP-MIB ???RowStatus, StorageType ?????????????????FROM SNMPv2-TC ???InetAddressType, InetAddress ???????????FROM INET-ADDRESS-MIB;netSnmpExamples MODULE-IDENTITY ???LAST-UPDATED "200406150000Z" ???ORGANIZATION "www.net-snmp.org" ???CONTACT-INFO ????????"postal: ??Wes Hardaker ???????????????????P.O. Box 382 ???????????????????Davis CA ?95617 ?????????email: ???net-snmp-coders@lists.sourceforge.net" ???DESCRIPTION ???"Example MIB objects for agent module example implementations" ???REVISION ????"200406150000Z" ???DESCRIPTION ???"Corrected notification example definitions" ???REVISION ????"200202060000Z" ???DESCRIPTION ???"First draft" ???::= { netSnmp 2 }---- top level structure--netSnmpExampleScalars ??????OBJECT IDENTIFIER ::= { netSnmpExamples 1 }netSnmpExampleTables ???????OBJECT IDENTIFIER ::= { netSnmpExamples 2 }netSnmpExampleNotifications OBJECT IDENTIFIER ::= { netSnmpExamples 3 }netSnmpExampleNotificationPrefix ?OBJECT IDENTIFIER ?????????????????????????????????::= { netSnmpExampleNotifications 0 }netSnmpExampleNotificationObjects OBJECT IDENTIFIER ?????????????????????????????????::= { netSnmpExampleNotifications 2 }-- netSnmpTutorial ?????????OBJECT IDENTIFIER ::= { netSnmpExamples 4 }---- Example scalars--netSnmpExampleInteger OBJECT-TYPE ???SYNTAX ?????Integer32 ???MAX-ACCESS ?read-write ???STATUS ?????current ???DESCRIPTION ???"This is a simple object which merely houses a writable ????integer. ?It‘s only purposes is to hold the value of a single ????integer. ?Writing to it will simply change the value for ????subsequent GET/GETNEXT/GETBULK retrievals. ????This example object is implemented in the ????agent/mibgroup/examples/scalar_int.c file." ???DEFVAL { 42 } ???::= { netSnmpExampleScalars 1 }netSnmpExampleSleeper OBJECT-TYPE ???SYNTAX ?????Integer32 ???MAX-ACCESS ?read-write ???STATUS ?????current ???DESCRIPTION ???"This is a simple object which is a basic integer. ?It‘s value ????indicates the number of seconds that the agent will take in ????responding to requests of this object. ?This is implemented ????in a way which will allow the agent to keep responding to ????other requests while access to this object is blocked. ?It is ????writable, and changing it‘s value will change the amount of ????time the agent will effectively wait for before returning a ????response when this object is manipulated. ?Note that SET ????requests through this object will take longer, since the ????delay is applied to each internal transaction phase, which ????could result in delays of up to 4 times the value of this ????object. ????This example object is implemented in the ????agent/mibgroup/examples/delayed_instance.c file." ???DEFVAL { 1 } ???::= { netSnmpExampleScalars 2 }netSnmpExampleString OBJECT-TYPE ???SYNTAX ?????SnmpAdminString ???MAX-ACCESS ?read-write ???STATUS ?????current ???DESCRIPTION ???"This is a simple object which merely houses a writable ????string. ?It‘s only purposes is to hold the value of a single ????string. ?Writing to it will simply change the value for ????subsequent GET/GETNEXT/GETBULK retrievals. ????This example object is implemented in the ????agent/mibgroup/examples/watched.c file." ???DEFVAL { "So long, and thanks for all the fish!" } ???::= { netSnmpExampleScalars 3 }---- ?Example Tables--netSnmpIETFWGTable OBJECT-TYPE ???SYNTAX ?????SEQUENCE OF NetSnmpIETFWGEntry ???MAX-ACCESS ?not-accessible ???STATUS ?????current ???DESCRIPTION ???"This table merely contains a set of data which is otherwise ????useless for true network management. ?It is a table which ????describes properies about a IETF Working Group, such as the ????names of the two working group chairs. ????This example table is implemented in the ????agent/mibgroup/examples/data_set.c file." ???::= { netSnmpExampleTables 1 }netSnmpIETFWGEntry OBJECT-TYPE ???SYNTAX ?????NetSnmpIETFWGEntry ???MAX-ACCESS ?not-accessible ???STATUS ?????current ???DESCRIPTION ???"A row describing a given working group" ???INDEX ??{ nsIETFWGName } ???::= {netSnmpIETFWGTable 1 }NetSnmpIETFWGEntry ::= SEQUENCE { ???nsIETFWGName ???OCTET STRING, ???nsIETFWGChair1 ???OCTET STRING, ???nsIETFWGChair2 ???OCTET STRING}nsIETFWGName OBJECT-TYPE ???SYNTAX ?????OCTET STRING (SIZE(1..32)) ???MAX-ACCESS ?not-accessible ???STATUS ?????current ???DESCRIPTION ???"The name of the IETF Working Group this table describes." ???::= { netSnmpIETFWGEntry 1 }nsIETFWGChair1 OBJECT-TYPE ???SYNTAX ?????OCTET STRING ???MAX-ACCESS ?read-create ???STATUS ?????current ???DESCRIPTION ???"One of the names of the chairs for the IETF working group." ???::= { netSnmpIETFWGEntry 2 }nsIETFWGChair2 OBJECT-TYPE ???SYNTAX ?????OCTET STRING ???MAX-ACCESS ?read-create ???STATUS ?????current ???DESCRIPTION ???"The other name, if one exists, of the chairs for the IETF ???working group." ???::= { netSnmpIETFWGEntry 3 }---- A table used in a table_iterator example-- ??(agent/mibgroup/examples/netSnmpHostsTable*.[ch])--netSnmpHostsTable OBJECT-TYPE ???SYNTAX ?????SEQUENCE OF NetSnmpHostsEntry ???MAX-ACCESS ?not-accessible ???STATUS ?????current ???DESCRIPTION ???"An example table that implements a wrapper around the ???/etc/hosts file on a machine using the iterator helper API." ???::= { netSnmpExampleTables 2 }netSnmpHostsEntry OBJECT-TYPE ???SYNTAX ?????NetSnmpHostsEntry ???MAX-ACCESS ?not-accessible ???STATUS ?????current ???DESCRIPTION ???"A host name mapped to an ip address" ???INDEX ??{ netSnmpHostName } ???::= { netSnmpHostsTable 1 }NetSnmpHostsEntry ::= SEQUENCE { ???netSnmpHostName ????????OCTET STRING, ???netSnmpHostAddressType ?InetAddressType, ???netSnmpHostAddress ?????InetAddress, ???netSnmpHostStorage ?????StorageType, ???netSnmpHostRowStatus ???RowStatus}netSnmpHostName OBJECT-TYPE ???SYNTAX ?????OCTET STRING (SIZE(0..64)) ???MAX-ACCESS ?not-accessible ???STATUS ?????current ???DESCRIPTION ???"A host name that exists in the /etc/hosts (unix) file." ???::= { netSnmpHostsEntry 1 }netSnmpHostAddressType OBJECT-TYPE ???SYNTAX ?????InetAddressType ???MAX-ACCESS ?read-create ???STATUS ?????current ???DESCRIPTION ???"The address type of then given host." ???::= { netSnmpHostsEntry 2 }netSnmpHostAddress OBJECT-TYPE ???SYNTAX ?????InetAddress ???MAX-ACCESS ?read-create ???STATUS ?????current ???DESCRIPTION ???"The address of then given host." ???::= { netSnmpHostsEntry 3 }netSnmpHostStorage OBJECT-TYPE ???SYNTAX ??????StorageType ???MAX-ACCESS ??read-create ???STATUS ??????current ???DESCRIPTION "The storage type for this conceptual row." ???DEFVAL ?????{ nonVolatile } ???::= { netSnmpHostsEntry 4 }netSnmpHostRowStatus OBJECT-TYPE ???SYNTAX ??????RowStatus ???MAX-ACCESS ??read-create ???STATUS ??????current ???DESCRIPTION "The status of this conceptual row." ???::= { netSnmpHostsEntry 5 }---- ?Example Notifications--netSnmpExampleHeartbeatRate OBJECT-TYPE ???SYNTAX ?????Integer32 ???MAX-ACCESS ?accessible-for-notify ???STATUS ?????current ???DESCRIPTION ???????"A simple integer object, to act as a payload for the ????????netSnmpExampleHeartbeatNotification. ?The value has ????????no real meaning, but is nominally the interval (in ????????seconds) between successive heartbeat notifications."::= { netSnmpExampleNotificationObjects 1 }netSnmpExampleHeartbeatName OBJECT-TYPE ???SYNTAX ?????SnmpAdminString ???MAX-ACCESS ?accessible-for-notify ???STATUS ?????current ???DESCRIPTION ???????"A simple string object, to act as an optional payload ????????for the netSnmpExampleHeartbeatNotification. ?This varbind ????????is not part of the notification definition, so is optional ????????and need not be included in the notification payload. ?????????The value has no real meaning, but the romantically inclined ????????may take it to be the object of the sender‘s affection, ????????and hence the cause of the heart beating faster."::= { netSnmpExampleNotificationObjects 2 }netSnmpExampleHeartbeatNotification NOTIFICATION-TYPE ???OBJECTS ????{ netSnmpExampleHeartbeatRate } ???STATUS ?????current ???DESCRIPTION ???????"An example notification, used to illustrate the ????????definition and generation of trap and inform PDUs ????????(including the use of both standard and additional ????????varbinds in the notification payload). ????????This notification will typically be sent every ????30 seconds, using the code found in the example module ????????????agent/mibgroup/examples/notification.c"::= { netSnmpExampleNotificationPrefix 1 } ???netSnmpExampleNotification OBJECT-TYPE ???SYNTAX ?????SnmpAdminString ???MAX-ACCESS ?accessible-for-notify ???STATUS ?????obsolete ???DESCRIPTION ???????"This object was improperly defined for its original purpose, ????????and should no longer be used."::= { netSnmpExampleNotifications 1 }END

net-snmp: introduction

原文地址:http://www.cnblogs.com/sansna/p/7642323.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved