关于SNMP的MIB

42 views
Skip to first unread message

joson_yu

unread,
Aug 13, 2009, 5:26:31 AM8/13/09
to EMS网管开发
最近在开发网络管理软件,感觉自己对MIB的理解一致不是很明白。所以在这里开个帖子,希望大家不吝赐教。

问题:
1:MIB 和硬件相关吗?和操作系统相关吗?
2:OID和硬件相关吗?和操作系统相关吗?
3:MIB中的相关的性能指标数据是如何收集进来的。
4:对于一些服务器、数据库监控的时候,需要另外安装SNMP代理软件?

Hailong Shu

unread,
Aug 13, 2009, 5:30:24 AM8/13/09
to ems...@googlegroups.com
SNMP是一个协议。MIB是一个定义。和硬件OS都不相关。
数据库的代理监控一般是数据库软件安装的时候就提供的,比如ORACLE里面就有一个SNMP的代理,通过该代理可以监控数据库。
也可以自己写一个代理,在ORACLE上就是监控V$打头的表来监控数据库状态。
 
MIB的实现和硬件是否有关,取决于MIB的定义是做什么。如果你的MIB是监控一个硬件的参数,那么这个MIB的实现自然就和硬件有关。


 
2009/8/13 joson_yu <yuqi...@gmail.com>

joson_yu

unread,
Aug 13, 2009, 6:52:19 AM8/13/09
to EMS网管开发
服务器向代理请求一个比如说 机器的CPU占有率的时候,这个占有率是从 MIB中取得的。 那么这个数据是在什么时候放入这个MIB呢?
如果我要监控一个新的东西,该怎么定义MIB,什么时候把指标数据放入MIB。 还有OID的定义,是怎么和MIB关联起来。

Hailong Shu

unread,
Aug 13, 2009, 9:27:02 PM8/13/09
to ems...@googlegroups.com
 你需要首先理解SNMP AGENT这个概念。然后我才能回答你的这些问题。
 

2009/8/13 joson_yu <yuqi...@gmail.com>

joson_yu

unread,
Aug 13, 2009, 9:31:58 PM8/13/09
to EMS网管开发
归根到底,我的疑惑应该是在 指标数据 是怎么取得。 为什么可以从MIB里取得指标数据。 指标是如何收集的。

joson_yu

unread,
Aug 13, 2009, 9:32:09 PM8/13/09
to EMS网管开发

Hailong Shu

unread,
Aug 13, 2009, 9:33:56 PM8/13/09
to ems...@googlegroups.com
如果你不能理解我说的前一点,后面的回答无从谈起。


 
2009/8/14 joson_yu <yuqi...@gmail.com>

joson_yu

unread,
Aug 13, 2009, 9:37:13 PM8/13/09
to EMS网管开发
SNMP AGENT 我的理解是 跟服务交互的。 服务发起请求,AGENT负责接受请求,然后根据 请求的 OID 到MIB里面取
出相对应的数据。然后负责返回。

joson_yu

unread,
Aug 13, 2009, 9:37:36 PM8/13/09
to EMS网管开发

joson_yu

unread,
Aug 13, 2009, 9:39:12 PM8/13/09
to EMS网管开发

joson_yu

unread,
Aug 13, 2009, 9:40:12 PM8/13/09
to EMS网管开发
google论坛不怎么好用。每次直接刷新,就重新发一遍,真郁闷。

Hailong Shu

unread,
Aug 13, 2009, 9:41:12 PM8/13/09
to ems...@googlegroups.com
你读一下NETSNMP的文档,然后把它自带的例子弄熟悉一点。或者对于你的疑问会有帮助。
坦率的说,你的问题太基本了,对于SNMP是什么都搞不清楚。这类问题最好是自己先看看书,看看文档。因为概念性的问题让人难以回答。
你可以看看这个GROUP初期的帖子,应该可以回答你的部分问题。

2009/8/14 joson_yu <yuqi...@gmail.com>

joson_yu

unread,
Aug 13, 2009, 9:50:12 PM8/13/09
to EMS网管开发
资料我看了很多。
我自己跑了SNMP4J及SNMP4J_AGENT
我对AGENT的理解是 只是和SERVER交互,通信。具体的指标收集并不是 AGENT的职责范围。
指标采集工作是由谁负责的?

Hailong Shu

unread,
Aug 13, 2009, 9:59:00 PM8/13/09
to ems...@googlegroups.com
  MIB的定义取决与你希望提供给用户什么样的管理接口。比如对于路由器端口来说,如果你希望提供到端口级别的使能/止能
  管理,那么你的MIB管理定义就需要提供到端口级别。如果你希望提供一个粗放的,比如设备级别的使能/止能管理,那么
  你的MIB管理定义只要到设备级别就可以了。换言之,MIB的定义取决于设备所能希望提供的管理功能。
 
  你定义一个OID后,比如希望这个OID执行关闭PC的功能,那么就是当AGENT收到这个SNMP请求后,就调用OS的函数去关闭PC。

2009/8/14 joson_yu <yuqi...@gmail.com>

joson_yu

unread,
Aug 13, 2009, 10:15:18 PM8/13/09
to EMS网管开发
恩,那么是不是说我原先的理解是错误的。MIB和指标值是没有关系的,MIB只是定义了各个系统机构等希望监控的对象的KEY。 具体的取值方法是要在
AGENT里面的实现的。 比如我现在要查询 windows系统的CPU占用率,那么AGENT需要先根据OID,找到定义的监控对象,在调用相
应的函数获取指标。 然后再将取得的指标值进行包装返回到 服务器。 这样理解是否正确?

On Aug 14, 9:59 am, Hailong Shu <shuhail...@gmail.com> wrote:
> MIB的定义取决与你希望提供给用户什么样的管理接口。比如对于路由器端口来说,如果你希望提供到端口级别的使能/止能
> 管理,那么你的MIB管理定义就需要提供到端口级别。如果你希望提供一个粗放的,比如设备级别的使能/止能管理,那么
> 你的MIB管理定义只要到设备级别就可以了。换言之,MIB的定义取决于设备所能希望提供的管理功能。
>
> 你定义一个OID后,比如希望这个OID执行关闭PC的功能,那么就是当AGENT收到这个SNMP请求后,就调用OS的函数去关闭PC。
>

> 2009/8/14 joson_yu <yuqian...@gmail.com>

Hailong Shu

unread,
Aug 13, 2009, 10:17:08 PM8/13/09
to ems...@googlegroups.com
SNMP是一个管理协议。MIB是属于一个管理约定,都是属于协议定义层次的东西。
协议定义的实现永远都是需要自己去做的。

2009/8/14 joson_yu <yuqi...@gmail.com>

joson_yu

unread,
Aug 13, 2009, 10:20:07 PM8/13/09
to EMS网管开发
如果是这样,那么针对自己的监控系统完全可以自定义一个 MIB系统,来对监控对象进行监控。 对于监控对象的指标值的提取函数,这种类似的函数可以使
用原先的函数实现。 如提取CPU的当前占用率,则AGENT调用 函数库进行提取。

Hailong Shu

unread,
Aug 13, 2009, 10:21:09 PM8/13/09
to ems...@googlegroups.com
是的。

2009/8/14 joson_yu <yuqi...@gmail.com>

joson_yu

unread,
Aug 13, 2009, 10:23:40 PM8/13/09
to EMS网管开发
恩,那这个管理实现感觉代码量有点大的。 大哥,你做过相关的开发吧。 这种指标提取的方法一般怎么实现的。有函数库或可重用的代码吗? 那会省事
很多阿。

On Aug 14, 10:17 am, Hailong Shu <shuhail...@gmail.com> wrote:
> SNMP是一个管理协议。MIB是属于一个管理约定,都是属于协议定义层次的东西。
> 协议定义的实现永远都是需要自己去做的。
>

Hailong Shu

unread,
Aug 13, 2009, 10:27:02 PM8/13/09
to ems...@googlegroups.com
这个不难,你查查WINDOWS的函数就指导了。获得CPU,内存,IO方面的信息都是一个WINDOWS API就搞定。具体是什么函数你去查查MSDN,或者WINDOWS核心编程这类的书。


 
2009/8/14 joson_yu <yuqi...@gmail.com>

alading664

unread,
Aug 13, 2009, 10:34:21 PM8/13/09
to ems-nms
正巧,我也做一个项目用的是net-snmp,关于snmp我只做过一个项目,不过是一年前,现在全忘了……
 

alading664
2009-08-14

发件人: Hailong Shu
发送时间: 2009-08-14 10:27:05
收件人: ems-nms
抄送:
主题: Re: 关于SNMP的MIB

joson_yu

unread,
Aug 13, 2009, 10:39:59 PM8/13/09
to EMS网管开发
--!,我们公司现在是在JAVA平台上开发的。这个比较麻烦。java直接调windowsAPI,不过现在监控的还有 linux,还有DB 还
有 WEBSPHERE。 如果这么多东西都得重新写,估计要好久了。

On Aug 14, 10:34 am, "alading664" <alading...@gmail.com> wrote:
> 正巧,我也做一个项目用的是net-snmp,关于snmp我只做过一个项目,不过是一年前,现在全忘了......
>
> alading664
> 2009-08-14


>
> 发件人: Hailong Shu
> 发送时间: 2009-08-14 10:27:05
> 收件人: ems-nms
> 抄送:
> 主题: Re: 关于SNMP的MIB
>
> 这个不难,你查查WINDOWS的函数就指导了。获得CPU,内存,IO方面的信息都是一个WINDOWS API就搞定。具体是什么函数你去查查MSDN,或者WINDOWS核心编程这类的书。
>

> 2009/8/14 joson_yu <yuqian...@gmail.com>

Hailong Shu

unread,
Aug 13, 2009, 10:45:04 PM8/13/09
to ems...@googlegroups.com
呵呵,重点在于得到参数或者执行操作,怎么做有什么关系呢?
找找开源的监控程序,改改,起一个SOCKET,用你的JAVA程序通过SOCKET间接管理就行了。
SNMP代理只要实现功能就行,又没有规定你怎么实现。

2009/8/14 joson_yu <yuqi...@gmail.com>

alading664

unread,
Aug 13, 2009, 10:55:33 PM8/13/09
to ems-nms
我们比较简单,只要做个agent就可以了,就是原来是跑在linux上的,现在要跑在ecos,心里没底
 

alading664
2009-08-14

发件人: joson_yu
发送时间: 2009-08-14 10:40:01
收件人: EMS网管开发
抄送:
主题: Re: 关于SNMP的MIB

joson_yu

unread,
Aug 14, 2009, 5:28:25 AM8/14/09
to EMS网管开发
要是能够一个 AGENT打尽所有的 对象就好了。所有平台。呵呵。

On Aug 14, 10:55 am, "alading664" <alading...@gmail.com> wrote:
> 我们比较简单,只要做个agent就可以了,就是原来是跑在linux上的,现在要跑在ecos,心里没底
>

> alading664
> 2009-08-14

钱不够

unread,
Aug 17, 2009, 11:26:48 PM8/17/09
to ems...@googlegroups.com
需要你的设计足够强, 适应所有可能的功能及性能测试×××××


2009/8/14 joson_yu <yuqi...@gmail.com>

Hailong Shu

unread,
Aug 17, 2009, 11:30:08 PM8/17/09
to ems...@googlegroups.com
这个和SNMP无关。
SNMP只是个协议,MIB实现的难以程度就是功能实现的难以程度。
关机这个功能,用SNMP不用SNMP都是要写实现代码的,这部分才是开发的主要工作。
 


 
2009/8/18 钱不够 <sjd...@gmail.com>

钱不够

unread,
Aug 17, 2009, 11:36:23 PM8/17/09
to ems...@googlegroups.com
, 没有写过mib库, 功能上应该跟数据库里的字段定义没区别。


2009/8/18 Hailong Shu <shuha...@gmail.com>

Hailong Shu

unread,
Aug 17, 2009, 11:40:19 PM8/17/09
to ems...@googlegroups.com
有相似处,但是不是。
就管理信息的读取来说,可以认为MIB结构当表结构功能类似。
但是管理实现就不同了,数据库字段定义只代表存储,修改值就OK。MIB代表管理定义的除了把修改存下来,还必需去执行定义的管理操作(比如修改某个硬件参数)

2009/8/18 钱不够 <sjd...@gmail.com>

钱不够

unread,
Aug 17, 2009, 11:44:47 PM8/17/09
to ems...@googlegroups.com
   鼓掌~~


2009/8/18 Hailong Shu <shuha...@gmail.com>
Reply all
Reply to author
Forward
0 new messages