簡體   English   中英

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

[英]Best way of adding SNMP support to your own application on Debian

我在 Debian 上工作,我有這台我們想要監控的服務器。
該應用程序是我們的,我們想要導出大約一百個實時計數器,用於監控目的、圖表和警報。

我一直在研究 Debian 這樣做的方式,因為我們確實使用 Debian 打包來安裝應用程序,而 Debian 使用基於 net-snmp 的 snmpd 守護程序來導出 SNMP。 到目前為止,我看到的每種方法看起來都非常復雜,從重新編譯 snmpd 到將動態庫加載到其中,以及編譯一種復制 snmpd 功能的子代理形式。

雖然所有這些選項讓我覺得我應該選擇 SNMP 以外的其他東西,但我不想早點放棄,我想知道是否有人找到了可行的實施方案。

理想情況下,它應該用 C 或 C++ 編碼,因為應用程序是用 C++ 編寫的,但我對包裝器或其他類型的建議持開放態度。

net-snmp 支持smuxagentx代理擴展協議,允許子代理存在於不同的進程中。 他們還有一個關於用 C 編寫 AgentX 子代理的教程

一個經常被忽視的解決方案是Agent++ API ,對我來說它看起來很不錯並且在 Apache 許可下。 據我了解,您可以修改該代理以回答您自己的 MIB。

也就是說,做一個子代理並不是一個糟糕的選擇。 您啟動標准的未打補丁的 snmpd(來自net-snmp )。 然后您使用您的子代理連接到它,它只添加您希望它添加的那些 OID。 用於對 AgentX(協議稱為)子代理進行編碼的 net-snmp 工具包使用起來並不簡單,但也不是很難。 還有一個用於子代理開發的 Perl 模塊: https : //metacpan.org/pod/NetSNMP ::agent

在 linux 中執行此操作的傳統方法是使用 net-snmp 包。 確保先編寫 MIB。 一切都基於 MIB,對 MIB 的更改通常會導致代碼中的大量更改。 為 net-snmp 編碼並不困難,有很多文檔可以幫助您入門,例如: http : //www.net-snmp.org/wiki/index.php/Tutorials#Coding_Tutorials

你試過net-snmp嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM