2 ccsu dog ccsu_dog 于 2015.06.03 10:47 提问

net-snmp通过API编程实现agent
const char *app_name = "snmpd";

/* master agent */
netsnmp_ds_set_boolean(NETSNMP_DS_APPLICATION_ID, NETSNMP_DS_AGENT_ROLE, 0);//MASTER_AGENT);

/* initialize the agent library */
if (0 != init_agent(app_name))
{
    printf("\nsnmp: init_agent fail.\n\n");
}

/* initialize your mib code here */
add_mibdir("/usr/local/share/snmp/mibs");
netsnmp_init_mib();

/* Test will be used to read Test.conf files. */
init_snmp("snmpd");

if (0 != init_master_agent())
{
    printf("\nsnmp: init_master_agent fail.\n\n");
}

int keep_running = 1;
while (keep_running)
{
     agent_check_and_process(1);/* block every 1 second */
}
/* at shutdown time */
snmp_shutdown(app_name);

shutdown_master_agent();

/* shutdown the agent library */
shutdown_agent();

snmpget -v2c -c adminhaha 192.168.130.101 system.sysUpTime.0
DISMAN-EVENT-MIB::sysUpTimeInstance = No Such Object available on this agent at this OID

编译net-snmp库,生成三个lib,加入链接,然后通过C Api实现Agent。
问题:使用查询命令获取不到值,提示Snmp No Such Object。加入-d可以看到数据是通的

snmpget -v2c -c adminhaha 192.168.130.101 system.sysUpTime.0 -d

Sending 46 bytes to UDP: [192.168.130.101]:161->[0.0.0.0]:0
0000: 30 2C 02 01 01 04 09 61 64 6D 69 6E 68 61 68 61 0,.....adminhaha
0016: A0 1C 02 04 2B 13 8A 83 02 01 00 02 01 00 30 0E ....+.........0.
0032: 30 0C 06 08 2B 06 01 02 01 01 03 00 05 00 0...+.........

Received 46 byte packet from UDP: [192.168.130.101]:161->[0.0.0.0]:48076
0000: 30 2C 02 01 01 04 09 61 64 6D 69 6E 68 61 68 61 0,.....adminhaha
0016: A2 1C 02 04 2B 13 8A 83 02 01 00 02 01 00 30 0E ....+.........0.
0032: 30 0C 06 08 2B 06 01 02 01 01 03 00 80 00 0...+.........

DISMAN-EVENT-MIB::sysUpTimeInstance = No Such Object available on this agent at this OID

4个回答

oyljerry
oyljerry   Ds   Rxr 2015.06.03 12:58

你这个agent上对应的OID存在数据吗。好像查不到,你可以换个OID试试

ccsu_dog
ccsu_dog 你说的换OID是什么意思?
接近 3 年之前 回复
ccsu_dog
ccsu_dog 我将mibs编成库加入进去,然后调用的netsnmp_init_mib(); 接口,不知道这样为什么查不到数据
接近 3 年之前 回复
Arnold9009
Arnold9009   2015.06.04 09:55

查一下你用的mib文件里有没有这个字段定义

ccsu_dog
ccsu_dog 使用snmpd程序执行的时候并不需要手动维护mibs,说明默认的mibs应该已经编到程序中了,在编成mibs库后 难道是要我们去弄mibs??
接近 3 年之前 回复
ccsu_dog
ccsu_dog   2015.06.04 16:37

图片说明

ccsu_dog
ccsu_dog 这个mibs 对不对?
接近 3 年之前 回复
datou431
datou431   Rxr 2015.06.18 15:41

查一下你用的mib文件里有没有这个字段定义

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!