我被委托为公司的服务器软件编写一个监控程序,该程序通过snmp与zenoss集成。
简而言之,我无法开始。我认为我的第一个目标是找出编写snmp代理的正确方法(起初可以使用任何语言,但最终将使用java)。是否有好的测试工具?我使用了随附于zenoss的snmptest
,但如果我无法启动测试代理,则它对我没有什么用处。我知道zenoss手册有很多信息,但它似乎假定您已经熟悉标准的系统监视实践和工具,而我几乎无法理解它。
此外,使用snmp监视软件通常是一种好的实践吗?
我被委托为公司的服务器软件编写一个监控程序,该程序通过snmp与zenoss集成。
简而言之,我无法开始。我认为我的第一个目标是找出编写snmp代理的正确方法(起初可以使用任何语言,但最终将使用java)。是否有好的测试工具?我使用了随附于zenoss的snmptest
,但如果我无法启动测试代理,则它对我没有什么用处。我知道zenoss手册有很多信息,但它似乎假定您已经熟悉标准的系统监视实践和工具,而我几乎无法理解它。
此外,使用snmp监视软件通常是一种好的实践吗?
典型SNMP agent的简要描述:
配置agent,通常包括告诉它要将警报发送到哪个服务器。
运行它。
在发生事件时向已配置的服务器发送适当的SNMP消息。
回复已配置服务器的请求。
所有请求/回复都是使用SNMP消息完成的。如果贵公司没有为服务器软件特别设计/分配的OID,则需要查看标准MIB定义以确定哪些OID适合。
MIB:管理信息块。这些块有标准和自定义两种类型。标准的由标准机构(IETF?)定义。供应商创建自定义块以支持其产品的独特信息。 MIB基本上是OID的集合。
OID:对象标识符——这是一个点分十进制数字字符串,用于标识硬件/软件的那一部分以及从中寻找的信息位——例如,以太网端口上的TX冲突次数可能如下所示:1.5.82.316.8.4.3(虽然这不是有效的OID,但这只是一个虚构的例子)。
更多细节请参见Wikipedia 。下载一个免费的MIB浏览器,以了解OID的外观和详细程度。查看RFCs 以获得更详细的信息。看看像perl的Net-SNMP 这样的东西——您甚至可以使用其中包含的snmpd软件来完成大部分工作。
SNMP是监控网络、设备和服务器的可接受方式。由于它使用UDP,不会通过TCP重试等方式过度压力网络(SNMP客户端被设计为处理丢包等情况)。此外,您将拥有大量的客户端解决方案来监视您的系统并进行集成。
如果您预计在Java中实现最终解决方案,请参阅Java/SNMP文档和SNMP4J
SNMP.com(由SNMP架构师之一Jeffrey Case创立)销售可扩展的SNMP代理。其中之一可能会为您节省大量麻烦。
Zenoss相当复杂并带有许多预定义的SNMP内容。你真的需要编写自己的SNMP代理吗?
SNMP是一个庞大的话题,如果您深入了解协议和相关工具的所有详细信息和历史版本,它会变得非常复杂。我建议您获取Mauro和Schmidt的Essential SNMP一书,它清晰地介绍了SNMP背后的基本思想以及如何使用多种不同的工具实践开始并使用它的实用示例。
你可以降低目标,尝试使用 Cacti(http://www.cacti.net/)。
我也曾尝试过 Zenoss,但最终放弃了。Cacti 运行起来非常快速。我只是监控了全国各地许多路由器和交换机中的许多端口的带宽使用情况。但是,有一些模板可用于监视与单个服务器更相关的所有种类的事物(例如温度、风扇速度等)。
敬礼,Anders