ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

net-snmp私有mib动态加载到snmpd

2021-11-28 14:59:26  阅读:277  来源: 互联网

标签:lib mib snmp conf dlmod snmpd agentx


前面的开发步骤我就不描述了,在我的其他博文中有说,一个是写mib文件,一个是将mib文件转化为.c和.h文件。

这里说下如何通过动态加载的方式将.c和.h编译为lib库然后添加到snmpd上,令其可以被访问到

1. makefile文件

CC=aarch64-linux-gnu-gcc
CFLAGS := -I ../include/ -I ../../include
LDFLAGS := -L ../lib -L ../../lib

lib:
	$(CC) $(CFLAGS) $(LDFLAGS) -I.'net-snmp-config --cflags' -fpic -shared -o libNetTable.so NetTable.c -I.'net-snmp-config --libs' -lhiredis -lzlog -lpthread 

all:lib 
.PHONY : clean
clean :
	rm -f *.so *.o

这里要注意的是netsnmp编译的时候会产生net-snmp-config这个软件,这个软件会作为lib编译的一部分。NetTable.c是编译的c文件,libNetTable.so是产生的so文件。

2. 修改snmpd.conf

rwcommunity public

#            sec.name        souce            community
com2sec        secname            default                public

group        secgroup            v2c                    secname

view          all        included      .1
view          all        included      .1.3.6.1.4.1

access  secgroup    ""            any        noauth        exact     all    all    none

上诉的添加内容是添加了一个用来访问的public,另外需要注意注释掉其他的和上诉配置相关的内容比如下面这条:

#rocommunity public  default    -V systemonly

然后snmp.conf配置好之后还要添加snmp的lib库的申明到配置文件,如下:

dlmod NetTable /lib/libNetTable.so

3. 启动snmpd

snmpd -f -Lo: -Dagentx,dlmod  -c /etc/snmpd.conf  -M /share/snmp/mibs &

这里要注意dlmod其实只是调试开关,用来启动的时候查看lib是否挂载正确的,agentx也是打开的snmpd调试相关的开关。-c指向配置文件,-M指向的是mib文件的保存路径,让snmpd能够看到mib文件在什么地方。

snmpd如果正常启动结果如下:

root@node1:/media/cyf/net-snmp# snmpd -f -Lo: -Dagentx,dlmod  -c /etc/snmpd.conf  -M /share/snmp/mibs &
[1] 1151
root@node1:/media/net-snmp# registered debug token agentx, 1
registered debug token dlmod, 1
agentx_register_app_config_handler: registering .conf token for "agentxsocket"
agentx_register_app_config_handler: registering .conf token for "agentxRetries"
agentx_register_app_config_handler: registering .conf token for "agentxTimeout"
agentx_register_app_config_handler: registering .conf token for "agentxperms"
dlmod: register mib
dlmod: dlmod_path: /media/build/setup/lib/snmp/dlmod
Turning on AgentX master support.
dlmod: dlmod_create_module
dlmod: dlmod_load_module NetTable: /lib/libNetTable.so
agentx/master: initializing...
agentx/master: initializing...   DONE
NET-SNMP version 5.9.1

这样就是没有错误的启动,如果有其他failed或者error那么就要查看下对应的错误内容并修正。

标签:lib,mib,snmp,conf,dlmod,snmpd,agentx
来源: https://blog.csdn.net/cao849861802/article/details/121590880

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有