2019年7月1日 星期一

PyAgentx sample

PyAgentx 為一個python 實作藉由agentx 與SNMP master 溝通延伸成SNMP sub agent
例如可以搭配Net SNMP agent ,各自運作

不過作者在支援python 3 後,已經不維護了,連python3 都沒merge 回master
License : BSD

python 2 安裝
pip install pyagentx

python 3 安裝

python 3 請不要用pip3 install pyagentx,會抓到舊版的 (尚未支援python 3)
git clone https://github.com/rayed/pyagentx.git --branch python3 --single-branch
  
cd pyagentx
  
sudo cp -r pyagentx /usr/local/lib/python3.5/dist-packages/

使用方式
參考github 上的sample 
在NetSnmpPlaypen.update 內更新OID 的值
該範例會產生 OID
  • 1.3.6.1.4.1.8072.9999.9999.1 為int 值1000
  • 1.3.6.1.4.1.8072.9999.9999.3 為string 值String for NET-SNMP-EXAMPLES-MIB
實際在產品不建議設 1.3.6.1.4.1.8072.9999.9999 ,應該依據一般的OID 定義方式

import pyagentx
 
 
# Updater class that set OID values
 
class NetSnmpPlaypen(pyagentx.Updater):
 
    def update(self):
 
        self.set_INTEGER('1.0'1000)
 
        self.set_OCTETSTRING('3.0''String for NET-SNMP-EXAMPLES-MIB')
 
 
class MyAgent(pyagentx.Agent):
 
    def setup(self):
 
        # Register Updater class that responsd to
 
        # the tree under "netSnmpPlaypen": 1.3.6.1.4.1.8072.9999.9999
 
        self.register('1.3.6.1.4.1.8072.9999.9999', NetSnmpPlaypen)
 
 
# Main
 
pyagentx.setup_logging()
 
try:
 
    = MyAgent()
 
    a.start()
 
except Exception as e:
 
    print "Unhandled exception:", e
 
    a.stop()
 
except KeyboardInterrupt:
 
    a.stop()

沒有留言:

張貼留言

NoSQL Redis intro

Redis是一個使用ANSI C編寫的開源、支援網路、基於記憶體、可選永續性的鍵值對儲存資料庫。 支援rdb 及aof 兩種儲存方式 From  https://zh.wikipedia.org/wiki/Redis Redis 目前擁有兩種資料...