av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

Python系統(tǒng)公網(wǎng)私網(wǎng)流量監(jiān)控實(shí)現(xiàn)流程

瀏覽:116日期:2022-07-04 15:03:09

目前很多公司業(yè)務(wù)已經(jīng)上云,使用了大量的云主機(jī)。當(dāng)前大多數(shù)云廠商的云主機(jī)公網(wǎng)都是采用的eip,也就是內(nèi)網(wǎng)和外網(wǎng)使用的同一張網(wǎng)卡,所以流量全部經(jīng)過的同一個(gè)網(wǎng)卡。然而這就面臨一個(gè)問題,如何將公網(wǎng)和私網(wǎng)的流量分開統(tǒng)計(jì)呢?特別是當(dāng)機(jī)器流量異常的時(shí)候,如何快速的判斷流量是來自公網(wǎng)還是私網(wǎng)。當(dāng)然云廠商一般也提供了eip的監(jiān)控,然而很多公司也有一套自己的監(jiān)控,對(duì)于自建監(jiān)控如何實(shí)現(xiàn),這就值得思考了。

本文將采用python實(shí)現(xiàn)云主機(jī)的公網(wǎng)和私網(wǎng)流量分開統(tǒng)計(jì),可以將結(jié)果輸入到自建監(jiān)控中,當(dāng)發(fā)生業(yè)務(wù)故障時(shí),可以快速定位問題。

1. iftop

iftop是linux系統(tǒng)下面一個(gè)監(jiān)控主機(jī)與外部通信的工具,它可以實(shí)時(shí)監(jiān)控本機(jī)與外部機(jī)器的流量大小,需要自行下載安裝包編譯安裝。iftop類似與linux系統(tǒng)自帶的top命令,在屏幕終端動(dòng)態(tài)輸出監(jiān)控結(jié)果。同時(shí),iftop支持很多參數(shù)可選項(xiàng),其中-t 參數(shù)使用不帶ncurses的文本界面,可以實(shí)現(xiàn)將結(jié)果保存到文件。

2. os.popen函數(shù)

os是python的系統(tǒng)模塊,os.popen可以調(diào)用系統(tǒng)的shell命令,相當(dāng)于直接在shell終端執(zhí)行shell命令。

3. 實(shí)現(xiàn)思路

使用python的os.open來調(diào)用iftop命令獲取到和主機(jī)通信的所有ip的流量大小。然后分別分析公網(wǎng)和私網(wǎng)的流量,將各自的流量之和統(tǒng)計(jì)起來,從而實(shí)現(xiàn)分別監(jiān)控系統(tǒng)的公網(wǎng)和私網(wǎng)流量。

4. 代碼實(shí)現(xiàn)

# -*- coding:utf-8 -*-'''@Author: Rainbowhhy@Date: 2020-11-14 15:16:18'''import os, redef is_public_ip(ip): # 判斷ip是公網(wǎng)還是私網(wǎng) private = re.findall( r’^((192.168)|(198.18)|(198.19)|(10.(1d{2}|2[0-4]d|25[0-5]|[1-9]d|d))|(172.(1[6-9]|2[0-9]|3[0-1]))).(1d{2}|2[0-4]d|25[0-5]|[1-9]d|d).(1d{2}|2[0-4]d|25[0-5]|[1-9]d|d)$’, ip) if private: return 0 else: return 1def convert_unit(unit): # 統(tǒng)一轉(zhuǎn)換成bit后計(jì)算 if 'Gb' in unit: flow = float(unit.strip('Gb')) * 1024 * 1024 * 1024 elif 'Mb' in unit: flow = float(unit.strip('Mb')) * 1024 * 1024 elif 'Kb' in unit: flow = float(unit.strip('Kb')) * 1024 else: flow = float(unit.strip('b')) return flowdef get_traffic(): # 調(diào)用iftop命名獲取公網(wǎng)和私網(wǎng)流量 iftop_info = os.popen('iftop -t -N -n -s 4 2>/dev/null | grep -A 1 -E ’^ [0-9]’').read() iftop_list = iftop_info.split('n') count = len(iftop_list) - 1 public_traffic_send = 0 public_traffic_recv = 0 private_traffic_send = 0 private_traffic_recv = 0 public_ips = [] private_ips = [] for i in range(int(count / 2)): # 獲取出向流量信息 traffic_send = iftop_list[i * 2] traffic_send_lists = traffic_send.split(' ') while '' in traffic_send_lists: traffic_send_lists.remove('') traffic_send = traffic_send_lists[3] traffic_send_float = convert_unit(traffic_send) # 獲取入向流量信息 traffic_recv = iftop_list[i * 2 + 1] traffic_recv_lists = traffic_recv.split(' ') while '' in traffic_recv_lists: traffic_recv_lists.remove('') ip = traffic_recv_lists[0] traffic_recv = traffic_recv_lists[2] traffic_recv_float = convert_unit(traffic_recv) # 計(jì)算公網(wǎng)和私網(wǎng)的總流量 if is_public_ip(ip): public_ips.append(ip) public_traffic_send += traffic_send_float public_traffic_recv += traffic_recv_float else: private_ips.append(ip) private_traffic_send += traffic_send_float private_traffic_recv += traffic_recv_float return public_traffic_send, public_traffic_recv, private_traffic_send, private_traffic_recvif __name__ == ’__main__’: public_traffic_send, public_traffic_recv, private_traffic_send, private_traffic_recv = get_traffic() print('公網(wǎng)入向:%s' % public_traffic_recv) print('公網(wǎng)出向:%s' % public_traffic_send) print('私網(wǎng)入向:%s' % private_traffic_recv) print('私網(wǎng)出向:%s' % private_traffic_send)

5. 輸出結(jié)果截圖

如下圖是輸出結(jié)果展示

file:///home/rainbowhhy/%E6%A1%8C%E9%9D%A2/monitor.png

Python系統(tǒng)公網(wǎng)私網(wǎng)流量監(jiān)控實(shí)現(xiàn)流程

以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 欧美一区二区在线视频 | 午夜激情在线观看 | 欧美狠狠操| 精品欧美一区二区三区久久久 | 韩日av| 波多野结衣乳巨码无在线观看 | 天天综合永久入口 | 国产欧美综合一区二区三区 | 久久精品国产一区 | 91久久久久久久久 | 天天干天天操天天干 | 日韩亚洲欧美在线观看 | 国产精品久久久久久中文字 | 日韩欧美在线观看视频 | 久久久在线 | 久久三区 | 久久精选视频 | 亚洲黄色天堂 | 中文字幕亚洲精品 | 国产精品7777 | 黄色成人在线观看 | 久久国产欧美 | 性色av一区二区三区 | 一级毛片黄色 | 中文在线字幕观看 | 中国黄色1级片 | 激情五月婷婷综合 | 中文字幕三区 | 黄网站免费在线观看 | 亚洲国产精品一区二区三区 | 国产午夜视频在线观看 | 免费av在线 | av网站在线免费观看 | 亚洲黄色网址 | 午夜国产在线观看 | 国产美女久久 | 国产小视频在线观看 | 欧美日韩国产在线 | 婷婷第四色 | 求av网址 | 午夜精品在线 |