我这次是使用
net-snmp
软件开发包尝试开发
SNMP
客户端代理。
Net-snmp
是个开源软件,
基于
C
语言开发,便于移植,
用于开发
snmp
代理,
但也提供管理端的查询工具。
首先得安装
net-snmp
这个软件。从网上可以下载相关的软件包,我在这里使用的是
5.4.1
版本。安装比较简单,先是要配置,然后编译,最后安装。也就是常规的
configure, make ,make install
三个步骤就可成功编译安装源代码。
运行
net-snmp
之前先要进行环境设置,否则无法查询到结果。环境配置文件由
snmpconf
命令交互生成。运行
snmpconf
后,提示有三个配置文件:
snmpd.conf
,
snmptraps.conf
,
snmp.conf
。其中,
snmpd.conf
用来配置代理和管理端通信时的参数,只需设置两个参数就可正常运行程序了,一是
community name
,有只读
rocommunity
和读写
rwcommunity
之分,相当于访问账号,这里设
rocommunity
为
public
;另一个是访问端口,设为
snmp
协议默认的
161
端口。
Snmp.conf
是与
mib
库设置相关的配置文件。
Snmptraps.conf
用来设置代理陷阱。生成的配置文件
snmpd.conf
按照提示拷贝到
/usr/local/share/snmp
目录下。
当环境配置好了以后,运行
snmpd
,即
snmp
代理进程,就可以使用管理工具查询其中的信息了。
Snmp
的查询工具比较多,可以随便使用如
snmpget
,
snmptranslate
等来测试一下能否查询到代理里面
mib
的节点的值或者
OID
号。下面介绍一下什么是
MIB
。
MIB
是
Management Information Base
的缩写,中文名字叫
“
管理信息库
”
,它是网络管理数据的标准,在这个标准里规定了网络代理设备必须保存的数据项目,数据类型,以及允许在每个数据项目中的操作。通过对这些数据项目的存取访问,就可以得到该网关的所有统计内容。再通过对多个网关统计内容的综合分析即可实现基本的网络管理。
MIB
的主要用途是让
SNMP
通过查讯代理
MIB
中相应对象的值,实现对对网络设备状态的监视。
MIB
库简单的说就是一个树状的数据库,通过客户端软件,可以直接对树的节点进行查询,修改,增加,删除的操作。而我今天要说的就是如何在客户端代理里面,自定义
MIB
,也就是增加自己私有的
MIB
。
第一步,要写自己的
MIB
文件,定义节点的
OID
,数据类型,访问权限,值,描述信息等。举个例子来说明。下面是
RFC1212
中关键组件:
IMPORTS
ObjectName
FROM RFC1155-SMI
DisplayString
FROM RFC1158-MIB;
OBJECT-TYPE MACRO ::=
BEGIN
TYPE NOTATION ::=
— must conform to