Python pysnmpの使用方法とコードの例

1908 ワード

SNMP標準はASN.1の言語要素のセットを導入し、SMI(Structure of Management Information)と呼ぶ。SMIによって記述された相互関連する被管理対象(Managed Objects)はMIB(Management Information Base)モジュールを構成する。
コアMIBでよく使われるManaged ObjectはSNMP標準の一部となっています。残りのMIBは一般的に設備メーカーによってその設備の中で作成される(つまり、これらのMIBは生産者と設備に関するものです。
PySNMPは純粋にPythonで実現したSNMPです。
PySNMPを使った最も抽象的なAPIはOneline Aplicationsである。二つの種類のAPIがあります。同期および非同期は、モジュールpysnmp.entity.rfc 3413.oneliner.cdgenで実装されます。
ですから、使う時は便利のために、大丈夫です。

from pysnmp.entity.rfc3413.oneliner import cmdgen
   
cg = cmdgen.CommandGenerator()
     CommandGenerator  ,
    cg getCmd                。
getCmd()は3つのパラメータが必要です。
1.cmdgen.communnityData()葃菗菗コミュニティ情報は3つのデータに入ってきました。安全md-agent、コミュニティ名public、snmpプロトコルバージョンは、カンマで区切られています。例えばcmdgen.CommunnityData(my-agent'、'public'、1)
2.cmdgen.UdpTransport Target()葓钾チャネルパラメータは、ホストIP/ドメイン名とポートを含み、一つのタプルに入ってきました。例えば、cmdgen.UdpTransportTarget(192.168.70.377',161)
3.OID菗mib値、例えば'.1.3.6.1.4.1800.5.13.2'
注意:三つのパラメータの間は「、」で区切られます。
次の例はデバイスsnmpデータを取得することです。

from pysnmp.entity.rfc3413.oneliner import cmdgen
 
def snmpget():
  cg = cmdgen.CommandGenerator() ##  CommandGenerator  
  errorIndication, errorStatus, errorIndex, varBinds = cg.getCmd(
   #0  v1,1  v2c 
  cmdgen.CommunityData('my-agent', 'public', 1), ##    ,my-agent ,public      ,1  snmp v2c  ,0 v1  
  cmdgen.UdpTransportTarget(('192.168.70.237', 161)),##       ,   IP 192.168.70.237,    161 (snmp    161 UDP  )
  '.1.3.6.1.4.1.1800.5.13.2' ##   OID,    MIB 
  )
  print str(varBinds[0][1]); ##varBinds     stulp,  MIB     
def runit(loop=1):
  for i in range(loop):
    snmpget()
    #print i
if __name__ == "__main__":
  runit(loop=1)
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。