最近我遇到了一个SNMP问题。我的客户要求我定期将CPU、硬盘和内存数据推送到网络管理系统。我已经通过snmpwalk命令配置好了我的snmpd.conf文件来拉取数据,但不知道如何定期推送到NMS。还需要知道如何测试数据是否被正确地推送。任何帮助都将是非常有益的。
如果NMS提供的接口不仅限于SNMP,例如通过FTP传输的3GPP XML文件,我强烈建议使用该接口。您已经运行了SNMP Agent,并且它将响应get-requests、walk等请求。通常情况下,企业级NMS可以定期轮询SNMP Agent以收集您所描述的数据,这是电信行业定义的性能管理(PM)中的一种常见方法,符合FCAPS标准。对于数量适中、间隔合理的计数器,这种方法通常效果很好。轮询时间过于频繁或者数据量过大时可能会出现轮询问题。从SNMP Agent中,您还可以选择发送Trap消息,这些是自发异步的消息。通常情况下,trap只用于通知NMS有关受监控设备的重要事件,例如设备故障(Fault Management)。但是,技术上没有什么可以阻止您设计一个定义了定期发送包含性能数据的trap的MIB。可能需要在NMS上进行某种形式的适配,以从SNMP traps接收PM数据,因为这通常不做。如果NMS无法定期轮询计数器,则似乎不太可能具有足够的灵活性来执行此操作。如果存在大量计数器,则Trap不适用,因为每个消息的大小最好不要超过网络的MTU(以太网为1500字节)。