- CPU使用率 - 内存使用率 - 交换空间使用率 - 磁盘使用率(空间/输入输出) - 温度监控
我知道有很多工具可以使用,但我正在寻找一款具备这些基本功能的单一工具。
Glances 是一款免费软件(根据LGPL许可证),用于通过文本界面监控您的GNU/Linux或BSD操作系统。Glances使用libstatgrab库从系统中获取信息,并使用Python开发。
打开终端(Ctrl+Alt+T)并运行以下命令:
从Ubuntu 16.04及以上版本,您只需输入sudo apt install glances
,但版本2.3 存在此bug。否则:
简易脚本安装 Glances
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
。
GREEN : the statistic is “OK”
BLUE : the statistic is “CAREFUL” (to watch)
VIOLET : the statistic is “WARNING” (alert)
RED : the statistic is “CRITICAL” (critical)
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
如果你输入 glances --help
,你会发现(-e
启用传感器模块(仅适用于Linux))
glances -e
您可以在Glances的配置文件中设置阈值,在GNU/Linux上,默认的配置文件位于/etc/glances/glances.conf
。
这个监控工具的另一个有趣功能是,您可以通过输入glances -s
来启动它的服务器模式,这将输出类似于“Glances服务器正在0.0.0.0:61209上运行”,现在您可以使用glances -c @server从另一台计算机连接到它,其中@server是服务器的IP地址或主机名。
Glances使用XML/RPC服务器,并可由其他客户端软件使用。 在服务器模式下,您可以设置绑定地址(-B ADDRESS)和监听TCP端口(-p PORT),默认绑定地址为0.0.0.0(Glances将监听所有网络接口),TCP端口为61209。 在客户端模式下,您可以设置服务器的TCP端口(-p port)。 在客户端/服务器模式下,限制由服务器端设置。 版本1.6引入了一个可选密码以访问服务器(-P password),如果在服务器上设置了密码,则客户端也必须使用该密码。
仅仅为了举例,监控juju容器看看情况如何大图像
在终端1中,Glances以服务器模式运行,在终端2中,juju容器正在运行apt-get update
,在终端3中,glances -c 192.168.1.103
Glances已连接到容器IP
根据内置的系统监视器使用图表显示,Glances本身在活动状态下似乎需要定期的CPU使用率峰值。如果图表准确无误,那么使用Glances会在系统上占用大约1/4个CPU。这对于那些监控服务器CPU负载的人来说可能会产生影响。
指示器-SysMonitor
指示器-SysMonitor功能简单,但表现出色。安装并运行后,它会在您的顶部面板上显示CPU和RAM的使用情况。简单明了。
从这里下载
Conky
我个人最喜欢的之一
一目了然
安装方法:
sudo apt-get install python-pip build-essential python-dev
sudo pip install Glances
sudo pip install PySensors
VMSTAT
显示有关CPU、内存、进程等的信息。
IOSTAT
此命令行工具将显示有关CPU、硬盘分区的I/O信息,网络文件系统(NFS)等的统计数据。要安装iostat,请运行以下命令:
sudo apt-get install sysstat
iostat
iostat -c
iostat --help
MPSTAT
mpstat命令行实用程序将显示每个处理器的平均CPU使用率。要运行它,只需使用以下命令:
mpstat
mpstat -P ALL
sudo apt-get install saidar
saidar -c -d 1
统计数据将每秒刷新一次。
GKrellM
GKrellM是一个可自定义的小部件,具有各种主题,显示在您的桌面系统设备上的信息(CPU、温度、内存、网络等)。
sudo apt-get install gkrellm
sudo add-apt-repository ppa:upubuntu-com/ppa
sudo apt-get update
sudo apt-get install monitorix
通过此URL启动Monitorix:
http://localhost/monitorix/
以下是监控 Linux 系统的工具:
top
、free -m
、vmstat
、iostat
、iotop
、sar
、netstat
等。在调试问题时,这些命令无与伦比,它们可以清楚地展示服务器的内部情况。顶部
顶部是一款监控软件,列出所有进程的CPU/RAM使用情况,整体CPU/RAM使用情况等等。通常情况下,它是默认安装的。
htop
htop是top的扩展版本。它具有上述所有功能,但您可以查看子进程并自定义显示内容。它还支持彩色显示。
iotop
iotop专门用于监控硬盘I/O。它列出所有进程,并显示它们的读写硬盘使用情况。
psutil
的外部模块来监控各种事物。最简单的方法是使用外部模块安装程序而不是从源代码构建。
注意:这些示例是用Python 2.7编写的。sudo apt-get install pip
sudo pip install psutil
usage.py
的文件。gedit ~/usage.py
psutil
。import psutil
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核心的运行百分比,并将其赋值给一个名为cpu_perc
的列表。for i in range(len(cpu_num)):
print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"
ram_perc
的函数。def ram_perc():
mem = psutil.virtual_memory()
mem_perc = mem.percent
print "RAM: ", mem_perc, "%"
psutil.virtual_memory
提供了一个包含关于计算机RAM的不同信息的数据集。
接下来,您可以添加一些关于您的网络的信息。
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()
只提供了有关以字节形式发送和接收的数据包的信息,因此需要进行一些转换。
要获取有关交换空间的一些信息,请添加此函数。
def swap_perc():
swap = psutil.swap_memory()
swap_perc = swap.percent
这个问题很直接。
温度比较难处理,所以你可能需要自己进行一些研究,找出适用于你的硬件的解决方法。你需要显示特定文件的内容。
磁盘使用情况比温度要简单得多。你只需要将你想要监控的磁盘(例如:/
)通过某个函数传递即可。
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)
但你也可以只接收总数
、已使用
、空闲
或百分比
。
完成的程序:(上述功能已合并)
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')
可能无法与您的硬件配置兼容。
请从命令行运行此程序。从命令行传递要监视的磁盘作为参数。
$ 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
sar
,它可以满足你的所有需求。它还可以收集历史数据,让你可以查看一段时间前发生了什么。gnome-system-monitor
。它可以完成你提到的所有功能,除了热量监控。SeaLion可以是一个很方便的工具,因为它内置了监控服务器性能的命令,你还可以添加自定义命令、脚本和日志输出。 设置非常简单,可以轻松地找出特定时间发生了什么问题。
conky
。
你可以谷歌conky
,找到787,000个结果。适合每个人的东西。
在显示屏顶部请注意“锁定屏幕:4分钟 亮度:2074”。这些是由“指示器-sysmonitor”生成的,它允许您使用bash脚本在systray /应用程序指示器上显示。
有关设置“Indicator-Sysmonitor”的教程,请参见: BASH是否可以显示为系统托盘应用程序指示器?
sudo pip uninstall glances
。 - Pablo Bianchi