2012-08-27 33 views
0

我遵循此tutorial。 我成功做到了,但我無法弄清楚如何從我的應用程序中更改MIB標量值。C++如何使用snmp-net將值寫入OID

我想從我的應用程序寫入這些OID值,以便有能力通過SNMP監視我的應用程序。

本教程將告訴您如何註冊OID併爲其設置值,但是如何根據應用程序狀態更改我的應用程序中的值?

我的目標: 我有我自己的應用程序(簡單的商業應用程序),它運行在Ubuntu機器上。 我通過SNMP從遠程客戶端監控主機。我監視像CPU,RAM這樣的東西..我通過發送snmp-get到這些OID來做到這一點。

作爲託管監控的一部分,我也想監視我的應用程序(例如request_quoue_size),所以我認爲這樣做的方法是通過編寫我自己的MIB模塊並編寫調用以從我的應用程序設置此OID ,我現在正在看如何調用set(C++),如果這是方式。

回答

3

首先,MIB只是一個接口(它指定了從MIB模塊可訪問的所有OID)。您的應用程序是SNMP代理還是SNMP使用者?

如果您在SNMP代理內,那麼我假設您可以直接訪問OID所在的內存。那麼,你的問題到底是什麼?

如果SNMP客戶端內,那麼你需要發送SNMP設置的請求,使用適當的UDP數據包的代理...

請你想達到什麼樣的補充一些細節。

+0

謝謝!!!!更新我的問題。 –

+0

好的,我假設你正在使用NET-SNMP框架(純粹用C編寫)。如果你想建立併發送正確的UDP數據包以進行設置請求,那麼我建議查看位於net-snmp- /snmp/agent /目錄下的snmpset.c文件。你有一個很好的方式來寫這個功能。請注意,您也有可能錯誤地添加了MIB模塊或標量(是否爲讀寫?) - 只需在您的Ubuntu中使用snmp-set binary來對該MIB執行設置請求以查看它是否有效。如果確實如此,那麼您可以開始考慮將設置請求代碼添加到您的應用程序。 – lucassm

+0

我做得對嗎?這是能夠監控我的應用程序的方式嗎?我看着這個文件,這是他們的snmpset解析器。我會試着嘲笑它。我認爲他們有一個簡單的C API。 –

相關問題