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

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

使用python進行服務器的監控

2020-10-28 18:44:02
字體:
來源:轉載
供稿:網友

在linux服務器中,一切皆為文件,就是說,服務器運行的個中信息,其實是可以從某些文件中查詢得到的;百度后,你會知道,在Linux系統中,有一個/proc的虛擬文件系統:

Linux 系統為管理員提供了非常好的方法,使其可以在系統運行時更改內核,而不需要重新引導內核系統,這是通過/proc 虛擬文件系統實現的。/proc 文件虛擬系統是一種內核和內核模塊用來向進程(process)發送信息的機制(所以叫做“/proc”),這個偽文件系統允許與內核內部數據結構交互,獲取有關進程的有用信息,在運行中(on the fly)改變設置(通過改變內核參數)。與其他文件系統不同,/proc 存在于內存而不是硬盤中。proc 文件系統提供的信息如下:

1.進程信息:系統中的任何一個進程,在 proc 的子目錄中都有一個同名的進程 ID,可以找到 cmdline、mem、root、stat、statm,以及 status。某些信息只有超級用戶可見,例如進程根目錄。每一個單獨含有現有進程信息的進程有一些可用的專門鏈接,系統中的任何一個進程都有一個單獨的自鏈接指向進程信息,其用處就是從進程中獲取命令行信息。

2.系統信息:如果需要了解整個系統信息中也可以從/proc/stat 中獲得,其中包括 CPU 占用情況、磁盤空間、內存對換、中斷等

3.CPU 信息:利用/proc/CPUinfo 文件可以獲得中央處理器的當前準確信息

4.負載信息:/proc/loadavg 文件包含系統負載信息

5.系統內存信息:/proc/meminfo 文件包含系統內存的詳細信息,其中顯示物理內存的數量、可用交換空間的數量,以及空閑內存的數量等

/proc 目錄中的主要文件的說明

文件或目錄名稱 說明
apm 高級電源管理信息
cmdline 這個文件給出了內核啟動的命令行
CPUinfo 中央處理器信息
devices 可以用到的設備(塊設備/字符設備)
dma 顯示當前使用的 DMA 通道
filesystems 核心配置的文件系統
ioports 當前使用的 I/O 端口
interrupts 這個文件的每一行都有一個保留的中斷
kcore 系統物理內存映像
kmsg 核心輸出的消息,被送到日志文件
mdstat 這個文件包含了由 md 設備驅動程序控制的 RAID 設備信息
loadavg 系統平均負載均衡
meminfo 存儲器使用信息,包括物理內存和交換內存
modules 這個文件給出可加載內核模塊的信息
lsmod 程序用這些信息顯示有關模塊的名稱,大小,使用數目方面的信息
net 網絡協議狀態信息
partitions 系統識別的分區表
pci pci 設備信息
scsi scsi 設備信息
self 到查看/proc 程序進程目錄的符號連接
stat 這個文件包含的信息有 CPU 利用率,磁盤,內存頁,內存對換,全部
swaps 顯示的是交換分區的使用情況
uptime 這個文件給出自從上次系統自舉以來的秒數,以及其中有多少秒處于空閑
version 這個文件只有一行內容,說明正在運行的內核版本。可以用標準的編程方法進行分析獲得所需的系統信息

以上列出來了這么多,是不是看起來眼花繚亂,但是不要慌,其實我們進行服務器監控,只會經常用到其中比較少的以部門。

利用/proc文件系統進行服務器監控

以上我們知道了服務器信息可以從哪里獲取,那么下面,我們就是編寫腳本,讀取我們要獲取信息的文件,從中得到服務器的運行數據。下面是我們經常會需要監控的服務器的一些數據:

讀取/proc/meminfo獲取內存信息

該文件內容如下

MemTotal: 1017544 kB MemFree: 583304 kB MemAvailable: 756636 kB Buffers: 42996 kB Cached: 238820 kB SwapCached: 0 kB Active: 116092 kB Inactive: 252004 kB Active(anon): 11956 kB Inactive(anon): 85136 kB Active(file): 104136 kB Inactive(file): 166868 kB Unevictable: 0 kB Mlocked: 0 kB SwapTotal: 1044476 kB SwapFree: 1044272 kB Dirty: 64 kB Writeback: 0 kB AnonPages: 86304 kB Mapped: 48832 kB Shmem: 10812 kB Slab: 40648 kB SReclaimable: 29904 kB SUnreclaim: 10744 kB KernelStack: 2048 kB PageTables: 8232 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 1553248 kB Committed_AS: 681428 kB VmallocTotal: 34359738367 kB VmallocUsed: 5796 kB VmallocChunk: 34359727572 kB HardwareCorrupted: 0 kB AnonHugePages: 32768 kB HugePages_Total: 0 HugePages_Free: 0 HugePages_Rsvd: 0 HugePages_Surp: 0 Hugepagesize: 2048 kB DirectMap4k: 34752 kB DirectMap2M: 1013760 kB

每個字段具體什么意思自己百度吧,直接上監控代碼:

""" 內存監控"""def memory_stat(): mem = {} f = open('/proc/meminfo', 'r') lines = f.readlines() f.close() for line in lines:  if len(line) < 2:   continue  name = line.split(':')[0]  var = line.split(':')[1].split()[0]  mem[name] = float(var) mem['MemUsed'] = mem['MemTotal'] - mem['MemFree'] - mem['Buffers'] - mem['Cached'] #記錄內存使用率 已使用 總內存和緩存大小 res = {} res['percent'] = int(round(mem['MemUsed'] / mem['MemTotal'] * 100)) res['used'] = round(mem['MemUsed'] / (1024 * 1024), 2) res['MemTotal'] = round(mem['MemTotal'] / (1024 * 1024), 2) res['Buffers'] = round(mem['Buffers'] / (1024 * 1024), 2) return res

讀取/proc/loadavg獲取CPU負載信息

該文件內容如下:

0.00 0.01 0.05 1/128 9424 

簡單說明一下每個字段的含義,前三個參數分別為1、5、15分鐘內cpu的平均負載,第四個參數為正在運行的進程數和總進程數,最后一個代表最近活躍的進程ID

下面為python實現的監控CPU負載的代碼:

""" CPU負載監控"""def load_stat(): loadavg = {} f = open("/proc/loadavg") con = f.read().split() f.close() loadavg['lavg_1']=con[0] loadavg['lavg_5']=con[1] loadavg['lavg_15']=con[2] loadavg['nr']=con[3] prosess_list = loadavg['nr'].split('/') loadavg['running_prosess']=prosess_list[0] loadavg['total_prosess']=prosess_list[1] loadavg['last_pid']=con[4] return loadavg

利用python的os包獲取硬盤信息

""" 磁盤空間監控"""def disk_stat(): import os hd={} disk = os.statvfs('/') hd['available'] = float(disk.f_bsize * disk.f_bavail) hd['capacity'] = float(disk.f_bsize * disk.f_blocks) hd['used'] = float((disk.f_blocks - disk.f_bfree) * disk.f_frsize) res = {} res['used'] = round(hd['used'] / (1024 * 1024 * 1024), 2) res['capacity'] = round(hd['capacity'] / (1024 * 1024 * 1024), 2) res['available'] = res['capacity'] - res['used'] res['percent'] = int(round(float(res['used']) / res['capacity'] * 100)) return res

獲取服務器的ip

在一個服務器上,可能有多塊網卡, 在獲取網卡信息時,你需要傳入網卡的名字,具體有哪些網卡,可以使用ifconfig命令查看

""" 獲取當前服務器ip"""def get_ip(ifname): import socket import fcntl import struct s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915, struct.pack('256s', ifname[:15]))[20:24])

讀取/proc/net/dev獲取網卡流量信息

我們將會從該文件中獲得系統的網絡接口,以及當系統重啟之后通過它們數據發送和接受數據的信息。 /proc/net/dev文件讓這些信息可用。如果你檢查了這個文件的內容,你就會注意到頭一兩行包含了頭信息等等,這個文件第一列是網絡接口名,第二和第三列顯示了接收和發送的字節數信息(例如總發送字節數,包數,錯誤等等)。這里我們所感興趣的就是他哦難過不同的網絡設備提取出總發送數據和接收數據。下面的代碼展示了怎么從/proc/net/dev文件中提取出這些信息,文件內容會是這樣的:

Inter-| Receive | Transmit face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo:13092608592182 4315193859 0 0 0 0 0 0 13092608592182 4315193859 0 0 0 0 0 0 eth0:6081251983019 4697841969 0 0 0 0 0 0 196939978179 2079619999 0 0 0 0 0 0 eth1:5718927608592 9484371630 0 0 0 0 0 0 142737118022 2007173284 0 0 0 0 0 0

下面將獲取每個網卡的進出流量信息:

#!/usr/bin/env python from __future__ import print_functiondef net_stat(): net = {} f = open("/proc/net/dev") lines = f.readlines() f.close for line in lines[2:]:  line = line.split(":")  eth_name = line[0].strip()  if eth_name != 'lo':   net_io = {}   net_io['receive'] = round(float(line[1].split()[0]) / (1024.0 * 1024.0),2)   net_io['transmit'] = round(float(line[1].split()[8]) / (1024.0 * 1024.0),2)   net[eth_name] = net_io return netif __name__ == '__main__': netdevs = net_stat() print(netdevs)

最后在提供一個Apache服務的監控腳本

#!/usr/bin/env Python import os, sys, time while True:  time.sleep(4)  try:   ret = os.popen('ps -C apache -o pid,cmd').readlines()   if len(ret) < 2:    print "apache 進程異常退出, 4 秒后重新啟動"   time.sleep(3)    os.system("service apache2 restart")  except:   print "Error", sys.exc_info()[1]

總結

以上所述是小編給大家介紹的使用python進行服務器的監控,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對武林網網站的支持!

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩电视剧免费观看网站| 亚洲性生活视频在线观看| 中文字幕在线观看亚洲| 中文字幕av日韩| 日韩精品免费在线视频| 亚洲一区第一页| 亚洲自拍另类欧美丝袜| 久久精品国产成人精品| 国产精品露脸自拍| 91亚洲国产精品| 国产日韩欧美日韩| 精品一区精品二区| 亚洲伊人成综合成人网| 91精品国产自产91精品| 成人在线精品视频| 久久久精品久久久久| 欧美性高潮床叫视频| 国产综合在线看| 欧美成人h版在线观看| 日韩av在线免费观看一区| 精品久久久久久久久久久久久| 青草青草久热精品视频在线观看| 亚洲天堂第一页| 日日噜噜噜夜夜爽亚洲精品| 日韩中文字幕免费看| 精品性高朝久久久久久久| 日韩激情av在线播放| 国产精品久久久久久亚洲影视| 精品毛片三在线观看| 亚洲精品一区中文| 欧美第一黄网免费网站| 8050国产精品久久久久久| 91老司机在线| 日韩免费av片在线观看| 亚洲精品久久久久久久久久久久| 亚洲精品www久久久| 日韩精品久久久久久久玫瑰园| 国产精品偷伦视频免费观看国产| 国产精品久久久久一区二区| 国产一区二区在线免费| 亚洲欧洲xxxx| 欧美日韩中文字幕日韩欧美| 美日韩精品免费观看视频| 91精品国产免费久久久久久| 色无极亚洲影院| 中文字幕亚洲一区二区三区五十路| 日韩精品极品在线观看播放免费视频| 国产精品自产拍在线观看| 亚洲女同性videos| 国产精品第3页| 色999日韩欧美国产| 狠狠色香婷婷久久亚洲精品| 成人网在线免费看| 国产视频综合在线| 国产精品www| 亚洲精品免费一区二区三区| 热久久美女精品天天吊色| 一区二区三区四区精品| 欧美激情在线狂野欧美精品| 亚洲美女av在线播放| 久久激情五月丁香伊人| 亚洲美女在线视频| 亚洲国产日韩一区| 欧美亚洲日本黄色| 精品国产一区二区三区在线观看| 亚洲国产小视频在线观看| 亚洲a∨日韩av高清在线观看| 51ⅴ精品国产91久久久久久| 国产精品国产三级国产专播精品人| 麻豆一区二区在线观看| 亚洲综合精品伊人久久| 久久久噜噜噜久久| 国产亚洲一区二区在线| 欧美日韩在线影院| 久久免费视频网站| 精品亚洲精品福利线在观看| 一个人看的www久久| 97在线免费视频| 久久久噜噜噜久噜久久| 国产精品久久久久久久av电影| 91免费观看网站| 国产成人久久久精品一区| 精品欧美激情精品一区| 欧美激情奇米色| 疯狂做受xxxx高潮欧美日本| 亚洲a在线观看| 国产91成人在在线播放| 国产成人综合一区二区三区| 欧美福利小视频| 国产成人avxxxxx在线看| 亚洲欧美中文在线视频| 亚洲久久久久久久久久| 成人伊人精品色xxxx视频| 欧美放荡办公室videos4k| 亚洲欧美国产日韩天堂区| 在线电影av不卡网址| 91国产视频在线播放| 欧美高清视频免费观看| www.日韩系列| 在线激情影院一区| 亚洲成人a**站| 91在线网站视频| 日韩在线视频网| 日韩欧美国产高清91| 亚洲第一综合天堂另类专| 国产欧美一区二区三区在线| 欧美色视频日本高清在线观看| 久久久久久久激情视频| 欧美成人精品在线视频| 欧美与黑人午夜性猛交久久久| 国产精品9999| 欧美性猛交99久久久久99按摩| 大量国产精品视频| 亚洲视频在线免费看| 国产成人jvid在线播放| 久久久久久12| 欧美大尺度电影在线观看| 91黑丝在线观看| 亚洲白拍色综合图区| 亚洲国产另类久久精品| 国产精品综合网站| 欧美精品成人91久久久久久久| 国产精品黄色影片导航在线观看| 日韩av免费看| 国产精品入口夜色视频大尺度| 情事1991在线| 久久综合免费视频影院| 国产精品亚洲一区二区三区| 国产精品美女在线观看| 69av在线视频| 国产成人精品一区二区三区| 国产亚洲人成a一在线v站| 中文字幕亚洲激情| 国产欧美精品一区二区三区介绍| 伊人久久精品视频| 91精品国产自产在线| 国产精品久久99久久| 久久天天躁狠狠躁夜夜躁2014| 欧美电影免费在线观看| 米奇精品一区二区三区在线观看| 啪一啪鲁一鲁2019在线视频| 麻豆国产精品va在线观看不卡| 国产精品三级在线| 欧美黑人xxxⅹ高潮交| 亚洲第一av网站| 国产精品99久久久久久久久| 国内免费精品永久在线视频| 夜夜躁日日躁狠狠久久88av| 欧美大尺度电影在线观看| 国产成人avxxxxx在线看| 日韩成人黄色av| 九九综合九九综合| 欧美成人免费一级人片100| 日韩免费观看av| 久久精品久久精品亚洲人| 欧美日韩福利电影| 一本色道久久综合亚洲精品小说| 久久777国产线看观看精品| 国产精品日韩在线播放| 日本久久久久久久久| 欧美日韩中文字幕| 亚洲国产成人精品一区二区| 懂色av影视一区二区三区| 国产z一区二区三区|