ubuntu 下系统监视器_Ubuntu系统监控工具
問題描述
我正在尋找系統(tǒng)監(jiān)視工具,它們是GUI和Cli或基于Web的工具,其中包括基本功能,例如
CPU使用率
公羊使用
交換使用
磁盤使用情況(空間/I /O)
熱監(jiān)測
我知道有很多工具可以使用,但我正在尋找一種具有這些基本功能的工具。
最佳解決方案
瀏覽 – 關(guān)注你的系統(tǒng)
Glances是一款免費軟件(根據(jù)LGPL授權(quán)),可通過文本界面監(jiān)控您的GNU /Linux或BSD操作系統(tǒng)。 Glances使用庫libstatgrab從您的系統(tǒng)中檢索信息,并使用Python開發(fā)。
Installation
打開終端(Ctrl + Alt + T)并運行以下命令:
從Ubuntu 16.04及以上版本,您只需鍵入sudo apt install glances,但版本2.3 have this bug。其他:
curl -L https://raw.githubusercontent.com/nicolargo/glancesautoinstall/master/install.sh | sudo /bin/bash
要么
wget -O- https://raw.githubusercontent.com/nicolargo/glancesautoinstall/master/install.sh | sudo /bin/bash
手動安裝
sudo apt-get install python-pip build-essential python-dev lm-sensors
sudo pip install psutil logutils bottle batinfo https://bitbucket.org/gleb_zhulik/py3sensors/get/tip.tar.gz zeroconf netifaces pymdstat influxdb elasticsearch potsdb statsd pystache docker-py pysnmp pika py-cpuinfo bernhard
sudo pip install glances
基本用法
要啟動glances,只需在終端中鍵入glances。
通過瀏覽,您可以看到關(guān)于系統(tǒng)資源的大量信息:默認(rèn)情況下,CPU,負載,內(nèi)存,交換網(wǎng)絡(luò),磁盤I /O和進程全部在一個頁面中,顏色代碼表示:
GREEN : the statistic is “OK”
BLUE : the statistic is “CAREFUL” (to watch)
VIOLET : the statistic is “WARNING” (alert)
RED : the statistic is “CRITICAL” (critical)
當(dāng)Glances正在運行時,您可以按下一些特殊的鍵給它發(fā)送命令:
c: Sort processes by CPU%
m: Sort processes by MEM%
p: Sort processes by name
i: Sort processes by IO Rate
d: Show/hide disk I/O stats
f: Show/hide file system stats
n: Show/hide network stats
s: Show/hide sensors stats
b: Bit/s or Byte/s for network IO
w: Delete warning logs
x: Delete warning and critical logs
1: Global CPU or Per Core stats
h: Show/hide this help message
q: Quit (Esc and Ctrl-C also work)
l: Show/hide log messages
Cpu,Ram,交換監(jiān)控
磁盤監(jiān)視
系統(tǒng)熱量監(jiān)測
如果鍵入glances --help,則會發(fā)現(xiàn)(-e啟用傳感器模塊(Linux-only))
glances -e
配置文件
您可以在Glances配置文件中設(shè)置閾值,在GNU /Linux上,默認(rèn)配置文件位于/etc/glances/glances.conf中。
客戶端/服務(wù)器模式
此監(jiān)視工具的另一個有趣功能是,只需鍵入glances -s即可在服務(wù)器模式下啟動它,這將為Glances服務(wù)器運行在0.0.0.0:61209上提供輸出,現(xiàn)在可以使用glance從另一臺計算機連接到它–c @server其中@server是服務(wù)器的IP地址或主機名。
Glances使用XML /RPC服務(wù)器,可以被其他客戶端軟件使用。在服務(wù)器模式下,您可以設(shè)置綁定地址(-B ADDRESS)和偵聽TCP端口(-p PORT),默認(rèn)綁定地址為0.0.0.0(Glances將監(jiān)聽所有網(wǎng)絡(luò)接口),并且TCP端口為61209.在客戶端模式下,可以設(shè)置服務(wù)器的TCP端口(-p端口)。在客戶端/服務(wù)器模式下,服務(wù)器端設(shè)置限制。版本1.6引入了一個可選的密碼來訪問服務(wù)器(-P密碼),如果在服務(wù)器上設(shè)置的話,也必須在客戶端上使用。
Update
舉例來說,監(jiān)控juju容器是如何看起來像Large Image
在終端號1中,Glances在服務(wù)器模式下運行,在終端號2中,juju容器正在運行apt-get update&在終端3中g(shù)lances -c 192.168.1.103 Glances已連接到容器IP
次佳解決方案
indicator-SysMonitor
Indicator-SysMonitor做了一些,但做得很好。一旦安裝并運行,它將顯示頂部面板上CPU和RAM的使用情況。簡單。
Conky的
我個人的最愛之一
Screenlet可以在Ubuntu軟件中心的screenlets-all軟件包中找到一堆不同風(fēng)格的CPU和RAM監(jiān)視器。
眼神
安裝:
sudo apt-get install python-pip build-essential python-dev
sudo pip install Glances
sudo pip install PySensors
VMSTAT
顯示有關(guān)CPU,內(nèi)存,進程等的信息
IOSTAT
該命令行工具將顯示有關(guān)CPU的統(tǒng)計信息,硬盤分區(qū)的I /O信息,網(wǎng)絡(luò)文件系統(tǒng)(NFS)等。要安裝iostat,請運行以下命令:
sudo apt-get install sysstat
要啟動報告,請運行以下命令:
iostat
要僅檢查CPU統(tǒng)計信息,請使用以下命令:
iostat -c
有關(guān)更多參數(shù),請使用以下命令:
iostat --help
MPSTAT
mpstat命令行實用程序?qū)@示每個處理器的平均CPU使用情況。要運行它,只需使用以下命令:
mpstat
對于每個處理器的CPU使用率,請使用此命令:
mpstat -P ALL
Saidar
Saidar還允許通過命令行來監(jiān)視系統(tǒng)設(shè)備活動。
你可以用這個命令來安裝:
sudo apt-get install saidar
要開始監(jiān)控,請運行以下命令:
saidar -c -d 1
統(tǒng)計信息將每秒刷新一次。
的gkrellm
GKrellM是一個可定制的小部件,具有各種主題,可在桌面系統(tǒng)設(shè)備信息(CPU,溫度,內(nèi)存,網(wǎng)絡(luò)等)上顯示。
要安裝GKrellM,請運行以下命令:
sudo apt-get install gkrellm
Monitorix
Monitorix是另一個具有用于監(jiān)視系統(tǒng)設(shè)備的web-based用戶界面的應(yīng)用程序。
使用以下命令安裝它:
sudo add-apt-repository ppa:upubuntu-com/ppa
sudo apt-get update
sudo apt-get install monitorix
通過此URL啟動Monitorix:
http://localhost/monitorix/
第三種解決方案
以下是用于監(jiān)視Linux系統(tǒng)的工具
系統(tǒng)命令如top,free -m,vmstat,iostat,iotop,iotop,sar,netstat等等。當(dāng)您調(diào)試問題時,沒有任何東西在這些linux實用程序附近出現(xiàn)。這些命令為您提供了一個清晰的畫面,它將進入您的服務(wù)器
SeaLion:代理執(zhí)行#1(也是用戶定義的)中提到的所有命令,這些命令的輸出可以在漂亮的Web界面中訪問。當(dāng)您在數(shù)百臺服務(wù)器上進行調(diào)試時,此工具非常方便,因為安裝非常簡單。它的免費
Nagios:它是所有監(jiān)視/警報工具的母親。這是非常多的定制,但非常難以為初學(xué)者設(shè)置。有幾套叫做nagios插件的工具涵蓋了幾乎所有重要的Linux指標(biāo)
穆寧
服務(wù)器密度:一種基于云計算的付費服務(wù),可收集重要的Linux指標(biāo)并為用戶編寫自己的插件提供支持。
New Relic:另一個眾所周知的托管監(jiān)控服務(wù)。
ZABBIX
第四種方案
在過去的幾年中,我使用了:
可從軟件中心獲得
第五種方案
最佳
top是監(jiān)控軟件,列出所有CPU /RAM使用情況,整體CPU /RAM使用情況等等。大多數(shù)情況下默認(rèn)安裝
HTOP
htop就像頂級的擴展版本。它具有上述所有功能,但您可以看到子進程并自定義顯示的所有內(nèi)容。它也有顏色。
iotop
iotop專門用于監(jiān)控硬核I /O它列出所有進程并顯示其硬盤驅(qū)動器的使用情況以供讀取和寫入。
第六種方案
您可能想嘗試sysmon。盡管不像Glances那么華麗,但它非常簡單易用。
如果你想變得骯臟,并在python中做一些腳本,下面是一些使用Python進行系統(tǒng)監(jiān)控的基礎(chǔ)知識,以幫助你開始。
您需要一個名為psutil的外部模塊來監(jiān)視大多數(shù)事情。使用外部模塊安裝程序最容易,而不是從源代碼構(gòu)建。
注意:這些例子是用Python 2.7編寫的
sudo apt-get install pip
sudo pip install psutil
現(xiàn)在我們已經(jīng)安裝了模塊,我們可以開始編碼。
首先,創(chuàng)建一個名為usage.py的文件。
gedit ~/usage.py
從導(dǎo)入psutil開始
import psutil
然后,創(chuàng)建一個函數(shù)來監(jiān)視CPU核心運行的百分比。
def cpu_perc():
cpu_perc = psutil.cpu_percent(interval=1, percpu=True)
for i in range(len(cpu_perc)):
print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"
讓我們來分解一下,我們會嗎?
第一行cpu_num = psutil.cpu_percent(interval=1, percpu=True)查找CPU內(nèi)核運行的百分比,并將其分配到名為cpu_perc的列表。
這個循環(huán)就在這里
for i in range(len(cpu_num)):
print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"
是一個for循環(huán),打印出每個CPU內(nèi)核的當(dāng)前百分比。
我們來添加內(nèi)存使用情況。
創(chuàng)建一個名為ram_perc的函數(shù)。
def ram_perc():
mem = psutil.virtual_memory()
mem_perc = mem.percent
print "RAM: ", mem_perc, "%"
psutil.virtual_memory給出一個數(shù)據(jù)集,其中包含關(guān)于計算機中RAM的不同事實。
接下來,您可以添加一些有關(guān)您的網(wǎng)絡(luò)的事實。
def net():
net = psutil.net_io_counters()
mbytes_sent = float(net.bytes_sent) / 1048576
mbytes_recv = float(net.bytes_recv) / 1048576
print "MB sent: ", mbytes_sent
print "MB received: ", mbytes_recv
由于psutil.net_io_counters()僅向我們提供有關(guān)以字節(jié)為單位發(fā)送和接收的數(shù)據(jù)包的信息,因此需要進行一些轉(zhuǎn)換。
要獲得有關(guān)交換空間的一些信息,請?zhí)砑哟斯δ堋?/p>
def swap_perc():
swap = psutil.swap_memory()
swap_perc = swap.percent
這個很簡單。
溫度很難做,所以你可能需要做一些自己的研究來弄清楚你的硬件可以使用什么。您將不得不顯示某個文件的內(nèi)容。
磁盤使用比溫度要容易得多。您需要做的就是通過某個功能傳遞要監(jiān)控的磁盤(即:/)。
def disks():
if len(sys.argv) > 1:
for disk in range(1, len(sys.argv)):
tmp = psutil.disk_usage(sys.argv[disk])
print sys.argv[disk], "\n"
print "Megabytes total: ",
print str(float(tmp.total) / 1048576)
print "Megabytes used: ",
print str(float(tmp.used) / 1048576)
print "Megabytes free: ",
print str(float(tmp.free) / 1048576)
print "Percentage used: ",
print tmp.percent, "\n"
psutil.disk_usage的原始輸出是這樣的,
>>>psutil.disk_usage('/')
sdiskusage(total=21378641920, used=4809781248, free=15482871808, percent=22.5)
但您也可以只收到total,used,free或percent。
已完成的課程:(上述功能合并)
import psutil, os, sys
mem_perc = 0 #init var
swap_perc = 0 #init var
mbytes_sent = 0 #init var
mbytes_recv = 0 #init var
cpu_perc = 0 #init var
swap = 0 #init var
mem = 0 #init var
net = 0 #init var
def disp(degree):
global cpu_perc
global swap
global swap_perc
global mem
global mem_perc
global net
global mbytes_sent
global mbytes_recv
cpu_perc = psutil.cpu_percent(interval=1, percpu=True)
swap = psutil.swap_memory()
swap_perc = swap.percent
mem = psutil.virtual_memory()
mem_perc = mem.percent
net = psutil.net_io_counters()
mbytes_sent = float(net.bytes_sent) / 1048576
mbytes_recv = float(net.bytes_recv) / 1048576
os.system('clear') #clear the screen
print "-"*30
print "CPU"
print "-"*30
print "CPU Temperature: " , degree, "'C"
for i in range(len(cpu_perc)):
print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"
print "-"*30
print "MEMORY"
print "-"*30
print "RAM: ", mem_perc, "%"
print "Swap: ", swap_perc, "%"
print "-"*30
print "NETWORK"
print "-"*30
print "MB sent: ", mbytes_sent
print "MB received: ", mbytes_recv
print "-"*30
print "DISKS"
print "-"*30
if len(sys.argv) > 1:
for disk in range(1, len(sys.argv)):
tmp = psutil.disk_usage(sys.argv[disk])
print sys.argv[disk], "\n"
print "Megabytes total: ",
print str(float(tmp.total) / 1048576)
print "Megabytes used: ",
print str(float(tmp.used) / 1048576)
print "Megabytes free: ",
print str(float(tmp.free) / 1048576)
print "Percentage used: ",
print tmp.percent, "\n"
def main():
print("Press Ctrl+C to exit")
while True:
temp = open("/sys/class/thermal/thermal_zone0/temp").read().strip().lstrip('temperature :').rstrip(' C')
temp = float(temp) / 1000
disp(temp)
main()
temp = open("/sys/class/thermal/thermal_zone0/temp").read().strip().lstrip('temperature :').rstrip(' C')行可能不適用于您的硬件配置。
從命令行運行該程序。將要監(jiān)視的磁盤作為參數(shù)從命令行傳遞。
$ python usage.py /
Press Ctrl+C to exit
------------------------------
CPU
------------------------------
CPU Temperature: 39.0 'C
CPU Core 1 : 4.8 %
CPU Core 2 : 1.0 %
CPU Core 3 : 0.0 %
CPU Core 4 : 4.9 %
------------------------------
MEMORY
------------------------------
RAM: 33.6 %
Swap: 6.4 %
------------------------------
NETWORK
------------------------------
MB sent: 2.93382358551
MB received: 17.2131490707
------------------------------
DISKS
------------------------------
/
Megabytes total: 13952.484375
Megabytes used: 8542.6640625
Megabytes free: 4678.5703125
Percentage used: 61.2
/media/calvin/Data
Megabytes total: 326810.996094
Megabytes used: 57536.953125
Megabytes free: 269274.042969
Percentage used: 17.6
希望這可以幫助!評論你是否有任何問題。
第七種方案
包systat有一個名為sar的工具,可以滿足您的所有需求。它還可以收集歷史數(shù)據(jù),以便您可以查看前一段時間發(fā)生的情況。
第八種方案
SeaLion可以很方便使用,因為它具有內(nèi)置命令來監(jiān)視您的服務(wù)器性能以及您可以添加自己的自定義命令,scirpts和日志輸出。這是非常容易設(shè)置,并找出在特定時間出了什么問題。
參考資料
總結(jié)
以上是生活随笔為你收集整理的ubuntu 下系统监视器_Ubuntu系统监控工具的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 海洋主题绘画_儿童画创意 | 三个海洋主
- 下一篇: E001检测到您的环境不支持HTML5,