向Debian上自己的应用程序添加SNMP支持的最佳方法

问题描述 投票:6回答:4

我正在Debian上工作,并且我要监视此服务器。该应用程序是我们的应用程序,我们希望导出约一百个实时计数器以用于监视,图形和警报。

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

尽管所有这些选择使我认为我应该选择除SNMP之外的其他方式,但我不想这么早就放弃,我想知道是否有人找到了可行的实现。

理想情况下,应将应用程序使用C ++进行C或C ++编码,但我愿意接受包装程序或其他建议。

c++ c linux debian snmp
4个回答
6
投票

net-snmp支持smuxagentx代理扩展协议,从而允许子代理生活在不同的进程中。他们还有一个tutorial,用于在C中编写AgentX子代理。


5
投票

一个经常被忽略的解决方案是Agent++ API,在我看来,它很不错,并且受Apache许可。据我了解,您可以修改该代理以响应您自己的MIB。

就是说,做一个子代理不是一个坏选择。您启动标准的未修补的snmpd(从net-snmp开始)。然后,使用子代理连接到该代理,子代理仅添加您要添加​​的OID。用于编码AgentX(称为协议)子代理的net-snmp工具包并不是非常简单易用,但也不是很难。还有一个用于子代理开发的Perl模块:https://metacpan.org/pod/NetSNMP::agent


3
投票

在Linux中执行此操作的传统方法是使用net-snmp软件包。确保首先编写MIB。一切都基于MIB,而对MIB的更改通常会导致代码中的大量更改。 net-snmp的编码并不困难,并且有很多文档可以帮助您入门,例如:http://www.net-snmp.org/wiki/index.php/Tutorials#Coding_Tutorials


-1
投票

您是否尝试过net-snmp

© www.soinside.com 2019 - 2024. All rights reserved.