這樣的應用程序的各種設計可能與pysnmp,都是基於CommandResponder類。也許最簡單的方法是create your own MibInstrumentationController class將接收同步GET/SET/GETNEXT查詢,並有望恢復響應變量綁定:
class EchoMibInstrumController(instrum.AbstractMibInstrumController):
def readVars(self, vars, acInfo=(None, None)):
return vars
def readNextVars(self, vars, acInfo=(None, None)):
return vars
def writeVars(self, vars, acInfo=(None, None)):
return vars
另一種解決辦法是編譯MIB到pysnmp格式(與PySMI編譯器)和specialize MIB variables(AKA管理對象實例),這樣他們會通過某種協議,談談你的後端數據存儲(程序)。
但是,兩種方法都是同步工作的,這意味着您將阻止SNMP引擎,直到您從後端檢索數據並從請求處理函數返回。如果您希望在高的併發負載和/或慢數據存儲,您可能需要使用的異步運行CommandResponder類的低級別API。
也可以通過在SNMP消息處理代碼的重要位置放置鉤子集合tap on SNMP engine workflow。但該功能主要是爲了從SNMP引擎內部獲取非常具體的數據,而不是指導其操作。
還有......是什麼問題?見http://stackoverflow.com/help/how-to-ask – kebs
對不起,我忘了最重要的部分 –