亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 操作系統 > 正文

【Python】SNMP的安裝及Python的調用

2024-06-28 16:05:47
字體:
來源:轉載
供稿:網友

概述

本文是介紹SNMP在Windows和linux(Ubuntu)下的安裝,以及通過Python調用其接口的文章。

開發環境

Python 3.5.1Windows 10 64位,Ubuntu 16.04 64位(虛擬機)

SNMP

SNMP(簡單網絡管理協議),由一組網絡管理的標準組成,包含一個應用層協議(application layer PRotocol)、數據庫模型(database schema)和一組資源對象。該協議能夠支持網絡管理系統,用以監測連接到網絡上的設備是否有任何引起管理上關注的情況。

MIB

MIB(Management Information Base),管理信息庫,由網絡管理協議訪問的管理對象數據庫,它包括SNMP可以通過網絡設備的SNMP管理代理進行設置的變量。

Windows下安裝SNMP

下載鏈接:https://sourceforge.net/projects/net-snmp/

之后直接安裝即可,默認安裝路徑是C:/usr。

安裝完后在系統變量下添加:C:/usr/bin,打開cmd輸入snmpget測試,沒有報錯則說明安裝成功。

Ubuntu下安裝SNMP和配置

下載

$ sudo apt-get install snmpd snmp snmp-mibs-downloader

查看SNMP服務狀態

$ sudo service snmpd status

簡單測試SNMP服務是否正常

$ snmpwalk -v 2c -c public localhost 1.3.6.1.2.1.1.1SNMPv2-MIB::sysDescr.0 = STRING: Linux ubuntu 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64

默認情況下,snmp服務只是對本地開啟,是無法通過遠程獲取該主機的snmp信息的。所以要設置允許遠程主機訪問

$ sudo netstat -antup | grep 161udp 0 0 127.0.0.1:161 0.0.0.0:* 10698/snmpd

可以看到,161端口只對本機開放(161端口號是snmp服務的端口號),我們需要修改一下,讓snmp服務對外開放。

修改/etc/snmp/snmpd.conf配置文件,大概在15行,將下面一行注釋掉:agentAddress udp:127.0.0.1:161

重新啟動snmp服務,再通過命令觀察:

$ sudo /etc/init.d/snmpd restart$ sudo netstat -antup | grep 161udp 0 0 0.0.0.0:161 0.0.0.0:* 10763/snmpd

可以看到SNMP服務已經對外開放了,這樣之后,我們就能在遠程主機進行測試。

由于SNMP默認只能查看兩個設備節點,要想查看所有節點還需要進行一些配置。打開/etc/snmp/snmpd.conf

sudo vim /etc/snmp/snmpd.conf # 在大約45行處添加下面一行view systemonly included .1view systemonly included .1.3.6.1.2.1.1view systemonly included .1.3.6.1.2.1.25.1

最后配置一下mibs,否則可能會報Unknown Object Identifier錯誤。打開/etc/snmp/snmp.conf,注釋掉mibs:就可以了

sudo vim /etc/snmp/snmp.conf# As the snmp packages come without MIB files due to license reasons, loading # of MIBs is disabled by default. If you added the MIBs you can reenable# loading them by commenting out the following line.#mibs :

Windows下調用SNMP查看其他主機信息

由于博主使用的是Ubuntu虛擬機,其ip是192.168.132.130。下面是cmd下通過SNMP查看該主機的信息。

打開cmd,輸入:

snmpwalk -v 2c -c public 192.168.132.130 1.3.6.1.2.1.1.1

返回

SNMPv2-MIB::sysDescr.0 = STRING: Linux ubuntu 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64

成功。

Python代碼調用示例

Python代碼調用系統的snmpwalk指令來查詢設備信息。

# coding=utf-8"""filename:snmp_test.py說明:使用系統的 snmpwalk 來查詢設備信息,需要先安裝 snmp代碼 Windows 和 Linux 通用Windows cmd 調用示例:snmpwalk -v 2c -c public 127.0.0.1 1.3.6.1.2.1.1.1Windows cmd 下查看某主機(192.168.132.130)信息示例:snmpwalk -v 2c -c public 192.168.132.130 1.3.6.1.2.1.1.1"""import reimport osimport timeimport platformif 'Windows' == platform.system(): hosts = ['192.168.132.130']else: # 在虛擬機運行時則查看本地 hosts = ['127.0.0.1']def snmpWalk(host, oid): result = os.popen('snmpwalk -v 2c -c public ' + host + ' ' + oid).read().split('/n')[:-1] return result# ------------------------------------------------------------# 獲取負載信息# ------------------------------------------------------------def getSystem(host): system = ':'.join(snmpWalk(host, 'system')[0].split(':')[3:]).strip() return system# ------------------------------------------------------------# ------------------------------------------------------------# 獲取負載信息# ------------------------------------------------------------def getLoad(host, loid): """系統負載""" load_oids = '1.3.6.1.4.1.2021.10.1.3.' + str(loid) return snmpWalk(host, load_oids)[0].split(':')[3]def getLoads(host): load1 = getLoad(host, 1) load10 = getLoad(host, 2) load15 = getLoad(host, 3) return load1, load10, load15# ------------------------------------------------------------# ------------------------------------------------------------# 獲取網卡流量# ------------------------------------------------------------def getNetworkDevices(host): """獲取網絡設備信息""" device_mib = snmpWalk(host, 'RFC1213-MIB::ifDescr') device_list = [] for item in device_mib: device_list.append(item.split(':')[3].strip()) return device_listdef getNetworkData(host, oid): """獲取網絡流量""" data_mib = snmpWalk(host, oid) data = [] for item in data_mib: byte = float(item.split(':')[3].strip()) data.append(str(round(byte / 1024, 2)) + ' KB') return datadef getNetworkInfo(host): device_list = getNetworkDevices(host) # 流入流量 inside = getNetworkData(host, 'IF-MIB::ifInOctets') # 流出流量 outside = getNetworkData(host, 'IF-MIB::ifOutOctets') return device_list, inside, outside# ------------------------------------------------------------# ------------------------------------------------------------# 內存使用率# ------------------------------------------------------------def getSwapTotal(host): swap_total = snmpWalk(host, 'UCD-SNMP-MIB::memTotalSwap.0')[0].split(' ')[3] return swap_totaldef getSwapUsed(host): swap_avail = snmpWalk(host, 'UCD-SNMP-MIB::memAvailSwap.0')[0].split(' ')[3] swap_total = getSwapTotal(host) swap_used = str(round(((float(swap_total) - float(swap_avail)) / float(swap_total)) * 100, 2)) + '%' return swap_useddef getMemTotal(host): mem_total = snmpWalk(host, 'UCD-SNMP-MIB::memTotalReal.0')[0].split(' ')[3] return mem_totaldef getMemUsed(host): mem_total = getMemTotal(host) mem_avail = snmpWalk(host, 'UCD-SNMP-MIB::memAvailReal.0')[0].split(' ')[3] mem_used = str(round(((float(mem_total) - float(mem_avail)) / float(mem_total)) * 100, 2)) + '%' return mem_useddef getMemInfo(host): mem_used = getMemUsed(host) swap_used = getSwapUsed(host) return mem_used, swap_used# ------------------------------------------------------------def main(): for host in hosts: print('=' * 10 + host + '=' * 10) start = time.time() print("系統信息") system = getSystem(host) print(system) print("系統負載") load1, load10, load15 = getLoads(host) print('load(5min): %s ,load(10min): %s ,load(15min): %s' % (load1, load10, load15)) print("網卡流量") device_list, inside, outside = getNetworkInfo(host) for i, item in enumerate(device_list): print('%s : RX: %-15s TX: %s ' % (device_list[i], inside[i], outside[i])) mem_used, swap_used = getMemInfo(host) print("內存使用率") print('Mem_Used = %-15s Swap_Used = %-15s' % (mem_used, swap_used)) end = time.time() print('run time:', round(end - start, 2), 's')if __name__ == '__main__': main()

Windows下打?。?/p>

==========192.168.132.130========== 系統信息 Linux ubuntu 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 系統負載 load(5min): 0.03 ,load(10min): 0.03 ,load(15min): 0.00 網卡流量 lo : RX: 1861.91 KB TX: 1861.91 KB Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) : RX: 5733.84 KB TX: 336.49 KB 內存使用率 Mem_Used = 93.82% Swap_Used = 0.07% run time: 2.89 s

Ubuntu下打印:

==========127.0.0.1========== 系統信息 Linux ubuntu 4.4.0-62-generic #83-Ubuntu SMP Wed Jan 18 14:10:15 UTC 2017 x86_64 系統負載 load(5min): 0.02 ,load(10min): 0.02 ,load(15min): 0.00 網卡流量 lo : RX: 1861.91 KB TX: 1861.91 KB Intel Corporation 82545EM Gigabit Ethernet Controller (Copper) : RX: 5738.8 KB TX: 338.76 KB 內存使用率 Mem_Used = 94.14% Swap_Used = 0.07% run time: 0.26 s


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
久久久国产精品x99av| 最近日韩中文字幕中文| 亚洲欧美色婷婷| 色狠狠久久aa北条麻妃| 久久精品国产欧美激情| 国产精品中文字幕久久久| 亚洲а∨天堂久久精品喷水| 久久久久久久亚洲精品| 全亚洲最色的网站在线观看| 亚洲影视中文字幕| 中文字幕国内精品| 国产精品视频在线观看| 欧美日韩成人在线观看| 亚洲精品免费在线视频| 欧美专区第一页| 亚洲欧美制服综合另类| 精品日韩中文字幕| 亚洲精品国产精品国产自| 亚洲欧美日本伦理| 性色av香蕉一区二区| 午夜精品三级视频福利| 北条麻妃一区二区三区中文字幕| 日韩欧美成人免费视频| 欧美精品成人在线| 成人性生交大片免费看视频直播| 国产日韩在线一区| 日韩三级影视基地| 国产一区二区在线免费视频| 91高清视频免费观看| 久久天天躁狠狠躁夜夜躁| 亚洲精品免费网站| 国产日韩精品在线| 69视频在线播放| 国产精品美女免费看| 欧美精品九九久久| 国产精品视频免费在线| 日韩中文字幕在线看| 91久久久久久国产精品| 国产一区红桃视频| 欧美裸身视频免费观看| 97在线视频观看| 国产不卡av在线免费观看| 久久精品青青大伊人av| 日韩成人在线网站| 国产精品h片在线播放| 亚洲精品国产精品久久清纯直播| 久久久天堂国产精品女人| 在线观看免费高清视频97| 亚洲精品福利视频| 国产精品日韩在线一区| 最新国产精品拍自在线播放| 隔壁老王国产在线精品| 国产成人精品999| www.日韩免费| 欧美丰满少妇xxxxx做受| 一本大道亚洲视频| 久久免费视频在线观看| 91麻豆国产精品| 国产精品高潮在线| 国产精品99蜜臀久久不卡二区| 91亚洲精品久久久久久久久久久久| 国产人妖伪娘一区91| 亚洲欧美中文日韩在线v日本| 国产精品视频自在线| 久久伊人精品天天| 欧美影院在线播放| 亚洲国产免费av| 国产成人在线播放| 国产精品白嫩美女在线观看| 97在线看免费观看视频在线观看| 欧美在线观看网址综合| 亚洲黄色在线观看| 久久久在线视频| 成人在线视频网| 91亚洲精品久久久久久久久久久久| 国产亚洲视频在线观看| 日av在线播放中文不卡| 日韩小视频在线观看| 国产欧美精品日韩| 亚洲精品国产综合久久| 欧美日韩国产中文字幕| 91麻豆国产语对白在线观看| 亚洲色图美腿丝袜| 国产精品视频一| 国产精品视频公开费视频| 欧美激情图片区| 午夜精品福利在线观看| 国产成人自拍视频在线观看| 欧美丰满少妇xxxxx| 欧美精品video| 久久躁狠狠躁夜夜爽| 欧美日韩国产精品一区二区不卡中文| 欧美极品美女电影一区| 久久久精品一区| 亚洲激情视频网| 亚洲午夜女主播在线直播| 黄色成人av网| 欧美夫妻性视频| 国产在线精品播放| 欧美老妇交乱视频| 性视频1819p久久| 国产精品久久久久久久久久新婚| 亚洲精品一区在线观看香蕉| 亚洲黄页视频免费观看| 日韩精品黄色网| 日本不卡视频在线播放| 亚洲韩国日本中文字幕| 国产精品r级在线| 91精品久久久久久久久久久久久久| 成人观看高清在线观看免费| 国模精品一区二区三区色天香| 久久中国妇女中文字幕| 久久免费精品日本久久中文字幕| 欧美乱大交xxxxx另类电影| 欧美精品激情在线| 国产日韩欧美影视| 日韩av有码在线| 亚洲欧美日韩中文在线制服| 最新国产精品亚洲| 97精品一区二区三区| 日韩av免费观影| 5566成人精品视频免费| 国产精品久久久久久av下载红粉| 欧美老少做受xxxx高潮| 国产a∨精品一区二区三区不卡| 欧美大胆在线视频| 亚洲3p在线观看| 国产日韩av在线播放| 精品中文字幕久久久久久| 久久久精品中文字幕| 欧美性jizz18性欧美| 激情久久av一区av二区av三区| 国产一区二区动漫| 亚洲片在线观看| 亚洲精品综合久久中文字幕| 国产日韩专区在线| 欧美在线一级视频| 国产男人精品视频| 日韩美女在线观看一区| 国产视频亚洲精品| 欧美日韩一区免费| 最近2019中文字幕大全第二页| 国产精品流白浆视频| 精品小视频在线| 91av在线精品| 日韩欧美亚洲一二三区| 91精品国产自产在线老师啪| 高清日韩电视剧大全免费播放在线观看| 久久久久久久久久久成人| 国产精品爱啪在线线免费观看| 国产精品视频色| 国产精品一区二区av影院萌芽| 91大神在线播放精品| 亚洲成年人影院在线| 国模gogo一区二区大胆私拍| 久久久久久久999精品视频| 欧美二区乱c黑人| 欧美激情国产高清| 久热精品视频在线| 国产精品吴梦梦| 欧美日韩999| 久久久久久国产精品美女| 九色精品免费永久在线| 欧美国产在线视频|