我的任务是为我公司的服务器软件编写监控程序,该软件通过snmp与zenoss集成.
简而言之,我无法获得任何实际情况.我认为我的第一个目标是找出编写snmp代理的正确方法(以任何语言开始,尽管它最终会在java中).那里有没有好的测试装备?我已经习惯了snmptest
,它与zenoss一起发布,但如果我不能让测试代理人离开地面,对我来说并不是很好.我知道zenoss手册的任何内容都有很多信息,但它似乎假定了标准系统监控实践和工具的先验知识,而我几乎无法深入了解它.
另外,使用snmp监控软件通常是一种好习惯吗?
典型SNMP代理的简短描述:
设置代理.这通常需要告诉它向哪个服务器发送警报.
运行.
当事情发生时,将适当的SNMP消息发送到配置的服务器.
回复来自配置的服务器的请求.
所有请求/回复内容都是使用SNMP消息完成的.如果您的公司没有为服务器软件特别设计/分配的OID,则需要查看标准MIB定义以确定哪些OID是合适的.
MIB:管理信息块.它们有标准和定制口味.标准组织由标准组织(IETF?)定义.自定义的是由供应商创建的,以支持其产品特有的信息.MIB基本上是OID的集合.
OID:Object IDentifier - 这是一个虚线符号数字字符串,用于标识硬件/软件,以及您要从中查找的信息位 - 例如,以太网端口上的TX冲突数可能看起来像什么像:1.5.82.316.8.4.3(虽然这不是一个有效的OID,它只是一个简单的例子).
维基百科提供更多详细信息.下载一个免费的MIB浏览器,以了解OID的外观以及它们的详细程度.检查RFC以获取更多详细信息.看看像perl的Net-SNMP这样的东西- 你甚至可以使用它附带的snmpd软件来完成你的大部分工作.
SNMP无疑是监控网络,设备和服务器的可接受方式.因为它使用UDP,所以不会通过TCP重试等对网络造成过度压力(SNMP客户端应该或应该被设计为处理丢弃的数据包等).此外,您还将拥有大量客户端解决方案来监控您的系统并进行集成.
如果您设想使用Java的最终解决方案,请参阅Java/SNMP文档和SNMP4J
SNMP.com(由SNMP架构师之一Jeffrey Case创建)销售可扩展的SNMP 代理.其中一个可以为你节省一个悲伤的世界.