!!PY SNMP ! install pkg install tcl86 tk86 p5-Tcl p5-Tk p5-Term-ReadKey pip3 install pysnmp pysnmp-mibs pysmi Py> pip3.7 install --upgrade pysnmp pysnmp pysnmp-mibs pysmi Collecting pysnmp Downloading pysnmp-4.4.12-py2.py3-none-any.whl (296 kB) |████████████████████████████████| 296 kB 2.5 MB/s Collecting pyasn1>=0.2.3 Downloading pyasn1-0.4.8-py2.py3-none-any.whl (77 kB) |████████████████████████████████| 77 kB 787 kB/s Collecting pysmi Downloading pysmi-0.3.4-py2.py3-none-any.whl (80 kB) |████████████████████████████████| 80 kB 667 kB/s Collecting pycryptodomex Downloading pycryptodomex-3.10.1-cp35-abi3-manylinux2010_x86_64.whl (1.9 MB) |████████████████████████████████| 1.9 MB 710 kB/s Collecting ply Downloading ply-3.11-py2.py3-none-any.whl (49 kB) |████████████████████████████████| 49 kB 1.2 MB/s Installing collected packages: ply, pysmi, pycryptodomex, pyasn1, pysnmp Successfully installed ply-3.11 pyasn1-0.4.8 pycryptodomex-3.10.1 pysmi-0.3.4 pysnmp-4.4.12 ! check snmp_host snmpwalk -v 2c -c public snmp_hosts_name_ip hrStorage ! Private MIB の追加 **ダウンロードしてくる $ ~/.local/bin/mibdump.py ./dir-name/* 1分以内に終わらない場合にはファイルが足りない。。可能性(ネットに繋がっていない場合。。も) http://www.circitor.fr/Mibs/Mibs.php ! Sample # # -*- encoding: utf-8 -*- import sys from pysnmp import asn1, v1, v2c from pysnmp import role def snmp_set(ip, community, oid_values, port=161, retries=5, timeout=1, version='1'): """ usage: snmp_set('192.168.10.1', 'comunity', [('1.3.6.1.2.1.43.10.2.1.4.1.1', 'i', 1),]) """ client = role.manager((ip, port)) client.timeout = timeout client.retries = retries varargs = [] for oid, type, value in oid_values: if type == 'i': varargs.append((oid, 'INTEGER', int(value))) elif type == 'u': varargs.append((oid, 'UNSIGNED32', int(value))) elif type == 't': varargs.append((oid, 'TIMETICKS', int(value))) elif type == 'a': varargs.append((oid, 'IPADDRESS', value)) elif type == 'o': varargs.append((oid, 'OBJECTID', value)) elif type == 's': varargs.append((oid, 'OCTETSTRING', value)) elif type == 'U': varargs.append((oid, 'COUNTER64', long(value))) else: print 'Unknown value type \'%s\'' % (type) sys.exit(-1) try: req = eval('v' + version).SETREQUEST() rsp = eval('v' + version).GETRESPONSE() except (NameError, AttributeError): print 'Unsupported SNMP protocol version: %s\n%s' % (version, usage) sys.exit(-1) encoded_oids = [] encoded_vals = [] for (oid, type, val) in varargs: encoded_oids.append(asn1.OBJECTID().encode(oid)) encoded_vals.append(eval('asn1.'+type+'()').encode(val)) return client.send_and_receive(req.encode(community=community, encoded_oids=encoded_oids, encoded_vals=encoded_vals)) ! disk size https://qiita.com/mugi-tea/items/ed0a2500326533af73e5 ! SNMP https://engineeringnote.hateblo.jp/entry/snmp/python/pysnmp https://engineeringnote.hateblo.jp/entry/snmp/python/pysnmp ! SNMP で応用 https://heartbeats.jp/hbblog/2013/02/predict-rrdtool.html ! MIB の一覧 http://park1.wakwak.com/%7Eima/freebsd_netsnmpoidlist.html http://www.circitor.fr/Mibs/Mibs.php