net-snmp扩展有多种方式,在此只介绍两种——动态库扩展,静态库扩展。

在做net-snmp开发之前,首先确定net-snmp相关的软件是否安装。

rpm -qa | grep snmp
net-snmp-5.3.1-19.el5
net-snmp-perl-5.3.1-19.el5
net-snmp-libs-5.3.1-19.el5
net-snmp-utils-5.3.1-19.el5
net-snmp-devel-5.3.1-19.el5

使用动态库扩展net-snmp4个步骤,分别是:

1:编写MIB库。

2:根据MIB库生成源代码。可以使用mib2c工具。

3:编译。

4:修改配置文件。

编写MIB

  假设我们现在需要使用snmp来获取某个服务器上的硬盘使用情况——df命令显示的数据。首先我们需要一个字段来表示HostName,然后我们需要一个表来存放磁盘的信息DiskInfoTable

  1 DISK-SNMP-MIB DEFINITIONS ::= BEGIN
  2 IMPORTS
  3     MODULE-IDENTITY, enterprises, OBJECT-TYPE, Integer32,
  4     NOTIFICATION-TYPE                       FROM SNMPv2-SMI
  5     SnmpAdminString                         FROM SNMP-FRAMEWORK-MIB
  6     netSnmp                                 FROM NET-SNMP-MIB
  7     RowStatus, StorageType ,DisplayString   FROM SNMPv2-TC
  8     InetAddressType, InetAddress            FROM INET-ADDRESS-MIB
  9 ;
 10 DiskCheck MODULE-IDENTITY
 11     LAST-UPDATED "201602170000Z"
 12     ORGANIZATION "www.cnblogs.com/ngnetboy"
 13     CONTACT-INFO
 14         "postal: none
 15         email: ngnetboy@163.com
 16         "   
 17     DESCRIPTION
 18         "check the disk"
 19     REVISION "201602170000Z"
 20     DESCRIPTION "First draft"
 21     ::= { enterprises 888888 }
 22 
 23 root OBJECT IDENTIFIER ::= {DiskCheck 1}
 24 
 25 HostName OBJECT IDENTIFIER ::= {root 1}
 26 DiskInfoTable OBJECT IDENTIFIER ::= {root 2}
 27 
 28 HostName OBJECT-TYPE
 29     SYNTAX      DisplayString
 30     ACCESS      read-only
 31     STATUS      current
 32     DESCRIPTION
 33         "PC is name"
 34 ::= {root 1}
 35 DiskInfoTable OBJECT-TYPE
 36     SYNTAX      SEQUENCE OF DiskInfoEntry
 37     ACCESS      not-accessible
 38     STATUS      current
 39     DESCRIPTION "The disk's info include size used avail capacity and mounted on"
 40     ::= {root 2}
 41 
 42 diskInfoEntry OBJECT-TYPE
 43     SYNTAX      DiskInfoEntry
 44     ACCESS      not-accessible
 45     STATUS      current
 46     DESCRIPTION "A row describing a given working group"
 47     INDEX       { Filesystem }
 48     ::= {DiskInfoTable 1}
 49 
 50 DiskInfoEntry ::= SEQUENCE {
 51     Filesystem  DisplayString
 52     size        DisplayString
 53     used        DisplayString
 54     avail       DisplayString
 55     capacity    DisplayString
 56     mountedOn   DisplayString
 57 }
 58 
 59 Filesystem OBJECT-TYPE
 60     SYNTAX  DisplayString
 61     ACCESS  read-only
 62     STATUS  current
 63     DESCRIPTION "name of the disks"
 64     ::= {diskInfoEntry 1}
 65 
 66 size    OBJECT-TYPE
 67     SYNTAX  DisplayString
 68     ACCESS  read-only
 69     STATUS  current
 70     DESCRIPTION "size of the disks"
 71 ::= {diskInfoEntry 2}
 72 
 73 used    OBJECT-TYPE
 74     SYNTAX  DisplayString
 75     ACCESS  read-only
 76     STATUS  current
 77     DESCRIPTION "used of the disks"
 78     ::= {diskInfoEntry 3}
 79 
 80 avail   OBJECT-TYPE
 81     SYNTAX  DisplayString
 82     ACCESS  read-only
 83     STATUS  current
 84     DESCRIPTION "avail of the disks"
 85     ::= {diskInfoEntry 4}
 86 
 87 capacity    OBJECT-TYPE
 88     SYNTAX  DisplayString
 89     ACCESS  read-only
 90     STATUS  current
 91     DESCRIPTION "capacity of the disks"
 92     ::= {diskInfoEntry 5}
 93 
 94 mountedOn   OBJECT-TYPE
 95     SYNTAX  DisplayString
 96     ACCESS  read-only
 97     STATUS  current
 98     DESCRIPTION "mounted_on of the disks"
 99     ::= {diskInfoEntry 6}
100 END
DISK-SNMP-MIB

相关文章:

  • 2022-12-23
  • 2021-12-15
  • 2021-12-12
  • 2021-09-09
  • 2022-12-23
  • 2022-12-23
  • 2021-12-26
  • 2022-01-08
猜你喜欢
  • 2021-12-02
  • 2022-12-23
  • 2021-12-09
  • 2022-12-23
  • 2022-12-23
  • 2021-10-10
相关资源
相似解决方案