在Debian上为您自己的应用程序添加SNMP支持的最佳方式

Ark*_*nez 5 c c++ linux debian snmp

我正在使用Debian,我有我们要监控的服务器.
该应用程序是我们的,我们想要导出大约一百个实时计数器用于监控,图形和警报.

我一直在研究Debian的做法,因为我们使用Debian打包来安装应用程序,而Debian使用基于net-snmp的snmpd守护进程来导出SNMP.到目前为止,我看到的每一种方法看起来都非常复杂,从重新编译snmpd到将动态库加载到其中,以及编译一个复制snmpd所做的子代理形式.

虽然所有这些选项让我觉得我应该寻求除SNMP以外的其他东西我不想早点放弃,我想知道是否有人找到了可行的实现.

理想情况下它应该用C或C++编码,因为应用程序是用C++编写的,但我对包装器或其他类型的建议持开放态度.

Mar*_*wis 5

net-snmp支持smuxagentx代理扩展协议,允许子代理存在于不同的进程中.他们还有一篇关于在C中编写AgentX子代理的教程.


Pro*_*ica 5

一个经常被忽视的解决方案是AgentX ++,对我来说看起来很不错.也就是说,做一个子代理并不是一个糟糕的选择.你启动标准的未修补的snmpd.然后使用子代理连接到它,子代理只添加您想要添加的OID.用于编码AgentX(作为协议称为)子代理的net-snmp工具包并不易于使用,但也不是很难.还有一个用于子代理开发的Perl模块:https://metacpan.org/pod/NetSNMP::agent