snmpd扩展方法三: AgentX子代理协议

首先, 编写一个子代理主函数文件, ustMain.c. 如下:

1) #include ;
2) #include ;
3) #include ;
4) int main () {
5) int agentx_subagent=1; 
6) snmp_enable_stderrlog();
7) if (agentx_subagent) {
8) ds_set_boolean(DS_APPLICATION_ID, DS_AGENT_ROLE, 1);
9) }
10) init_agent("ustMain");
11) init_ustScalarSet();
12) init_snmp("ustMain");
13) if (!agentx_subagent)
14) init_master_agent(161, NULL, NULL); 
15) while(1) {
16) agent_check_and_process(1);
17) }
18) snmp_shutdown("ustMain");
19) }

按如下命令进行编译:

gcc -g -I/usr/local/include -o ustMain ustMain.c ustScalarSet.c -lucdagent -lucdmibs -lsnmp

生成子代理程序, ustMain.

在snmpd.config配置文件中加入一行:

master agentx

以支持AgentX子代理. 并重新启动snmpd.然后启动 ustMain.运行相应的工具程序, 测试是否可以访问新加入的MIB信息.


相关内容