适用于Ubuntu的系统监控工具


147

我正在寻找基于GUI和CliWeb的系统监视工具,其中包括诸如以下的基本 功能

  • CPU使用率

  • 公羊用法

  • 交换使用

  • 磁盘使用率(空间/ I / O)

  • 热量监测

我知道我可以使用很多工具,但是我正在寻找一种具有这些基本功能的工具。

Answers:


184

概览-监控您的系统

Glances是一款免费软件(根据LGPL授权),可以通过文本界面监视GNU / Linux或BSD操作系统。Glances使用库libstatgrab从系统中检索信息,该信息是使用Python开发的。

安装

打开一个终端(Ctrl+ Alt+ T)并运行以下命令:

在Ubuntu 16.04及更高sudo apt install glances版本中,您可以键入,但版本2.3中存在此错误。其他:

简易脚本安装 一览

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终端。

屏幕截图

一目了然,您会在页面中看到很多有关系统资源的信息:CPU,负载,内存,交换网络,磁盘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)

当Glances运行时,可以按一些特殊键向其发出命令:

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,交换监控

屏幕截图

磁盘监控

屏幕截图

系统热量监测

如果键入,glances --help您将找到(-e启用传感器模块(仅Linux))

glances -e

屏幕截图

屏幕截图

配置文件

您可以在Glances配置文件中设置阈值,在GNU / Linux上,默认配置文件位于中/etc/glances/glances.conf

客户端/服务器模式

此监视工具的另一个有趣的功能是,您只需键入即可在服务器模式下启动它glances -s,这将产生Glances服务器正在0.0.0.0:61209上运行的输出,现在您可以使用glances -c @从另一台计算机连接到它了服务器,其中@server是服务器的IP地址或主机名。

Glances使用XML / RPC服务器,并且可以由其他客户端软件使用。在服务器模式下,可以设置绑定地址(-B ADDRESS)和侦听TCP端口(-p PORT),默认绑定地址为0.0.0.0(Glances将在所有网络接口上侦听),TCP端口为61209。在客户端模式下,可以设置服务器的TCP端口(-p端口)。在客户端/服务器模式下,限制由服务器端设置。1.6版引入了用于访问服务器的可选密码(-P密码),如果在服务器上进行了设置,则也必须在客户端上使用该密码。

其他来源: PyPIGithubLinuxaria

更新资料

监控juju容器仅是举例,看起来像大图

在终端1中,Glances在服务器模式下运行;在终端2中,juju容器正在运行apt-get update;在终端3中,glances -c 192.168.1.103Glances连接到容器ip

屏幕截图

概览CPU使用率

内置的系统监视器使用情况图表证明,Glances本身似乎需要处于活动状态时的cpu使用期间出现峰值。如果图形是准确的-只需一眼便可以放弃系统上大约1/4的CPU。这对那些正在监视服务器上的CPU负载的人有效。

浏览CPU使用情况


:),是的,它是@ B4NZ41
Qasim

4
我见过的最好的工具
。...– Dinesh

1
我强烈建议您反对此处建议的“简易”安装方法!从Internet将数据传送到特权的BASH解释器是非常不安全的。如果有人错误配置了DNS或对bit.ly进行了黑客入侵,则可能是在系统中安装了任何东西,而您可能永远不会知道。
卢克·斯坦利

1
不建议 “简易脚本安装”,仅使用软件包安装。
Pablo A

3
要卸载sudo pip uninstall glances
Pablo A

33

指标-SysMonitor

Indicator-SysMonitor可以做一些,但是效果很好。安装并运行后,它将在顶部面板上显示CPU和RAM使用情况。简单。

在此处输入图片说明

这里下载

康基

我个人的最爱之一

在此处输入图片说明

在Screenlet中, 您可以在screenlets中找到一堆风格各异的CPU和RAM监视器-Ubuntu软件中心提供了所有软件包。

在此处输入图片说明

扫视

安装:

sudo apt-get install python-pip build-essential python-dev
sudo pip install Glances
sudo pip install PySensors

在此处输入图片说明

统计数据库

显示有关CPU,内存,进程等的信息。

IOSTAT

此命令行工具将显示有关CPU的统计信息,硬盘分区的I / O信息,网络文件系统(NFS)等。要安装iostat,请运行以下命令:

sudo apt-get install sysstat

要启动报告,请运行以下命令:

iostat

要仅检查CPU统计信息,请使用以下命令:

iostat -c

有关更多参数,请使用以下命令:

iostat --help

统计数据库

mpstat命令行实用程序将显示每个处理器的平均CPU使用率。要运行它,只需使用以下命令:

mpstat

有关每个处理器的CPU使用率,请使用以下命令:

mpstat -P ALL

赛达尔

Saidar还允许通过命令行监视系统设备的活动。

在此处输入图片说明

您可以使用以下命令进行安装:

sudo apt-get install saidar

要开始监视,请运行以下命令:

saidar -c -d 1

统计信息将每秒刷新一次。

克雷尔

GKrellM是具有各种主题的可自定义窗口小部件,可在您的桌面系统设备上显示信息(CPU,温度,内存,网络等)。

在此处输入图片说明

要安装GKrellM,请运行以下命令:

sudo apt-get install gkrellm

Monitorix

Monitorix是另一个具有基于Web的用户界面的应用程序,用于监视系统设备。

在此处输入图片说明

使用以下命令安装它:

sudo add-apt-repository ppa:upubuntu-com/ppa
sudo apt-get update
sudo apt-get install monitorix

通过以下URL启动Monitorix:

http://localhost/monitorix/

 


一览无余。它有时显示的是一些重要日志。在哪里找到问题所在?牛舍原木在哪里?警告|重要日志(最后9个条目)2016-03-23 19:09:48> 2016-03-23 19:09:54 CPU用户(72.7 / 76.6 / 80.6)2016-03-23 19:09:28> 2016-03-23 19:09:32 CPU IOwait(62.5 / 62.5 / 62.5)2016-03-23 19:08:45> 2016-03-23 19:08:48 CPU用户(86.3 / 86.3 / 86.3)〜 2016-03-23 19:08:16> ___________________加载5分钟(1.0 / 1.1 / 1.2)-顶级进程:php5-cgi 2016-03-23 19:08:09> 2016-03-23 19:08: 19 CPU IOwait(74.3 / 74.6 / 75.0)
袋鼠(Kangarooo

@Thuener最好在无意义的注释之前阅读和搜索,是的,它是ppa :: upubuntu-com / ppa ...请参阅此链接launchpad.net/~upubuntu-com/+archive/ubuntu/ppa 和我为您想更好地删除
下降投票

我一直在使用GKrellM,非常喜欢它,尤其是温度传感器的显示屏。我希望它们是图形化的,但是它让我知道笔记本电脑的性能,因为它有过热的问题。
Heather92065 '16

22

以下是监视Linux系统的工具

  1. 系统命令一样topfree -mvmstatiostatiotopsarnetstat等没有来到附近这些Linux工具,当你正在调试一个问题。这些命令为您提供了服务器内部的清晰画面
  2. SeaLion:代理程序执行#1中提到的所有命令(也是用户定义的),并且可以在漂亮的Web界面中访问这些命令的输出。当您在数百台服务器上进行调试时,此工具非常方便,因为安装非常简单。和它的免费
  3. Nagios:它是所有监视/警报工具的母亲。这是非常定制的,但对于初学者来说很难设置。有一些工具被称为nagios插件,涵盖了几乎所有重要的Linux指标
  4. 慕宁
  5. 服务器密度:一种基于云的付费服务,可收集重要的Linux指标,并使用户能够编写自己的插件。
  6. New Relic:另一个众所周知的托管监视服务。
  7. 扎比克斯


8

最佳

顶部是监视软件,列出所有进程的CPU / RAM使用情况,CPU / RAM总体使用情况等,并且大多数情况下默认情况下已安装

停止

htop就像top的扩展版本。它具有上面的所有功能,但您可以看到子进程并自定义所有内容的显示。它也有颜色。

iotop

iotop是专门用于监视硬盘I / O的设备,它列出了所有进程并显示其硬盘驱动器的读写使用情况。


热量监测在哪里?并在您的答案中已经包含3个实用程序...检查问题**我正在寻找具有某些基本功能的单个工具**
Qasim

有了这三个工具,我只是为OP提供了不同的选择,但是我很遗憾地说,这些工具都没有热量监测功能
BeryJu 2013年

至少您已经尝试回答这个问题...谢谢
Qasim

google(Saidar ubuntu)
Qasim

5

您可能要尝试sysmon。尽管不像Glances那样花哨,但它非常简单易用。

如果您想变得肮脏并用python做一些脚本编写,那么以下是一些使用Python进行系统监视的基础知识,以帮助您入门。

您将需要一个名为的外部模块psutil来监视大多数事情。使用外部模块安装程序而不是从源代码构建是最简单的。

注意:这些示例是用Python 2.7编写的

sudo apt-get install pip
sudo pip install psutil

现在我们已经安装了模块,我们可以开始编码了。

首先,创建一个名为的文件usage.py

gedit ~/usage.py

从导入开始 psutil

import psutil

然后,创建一个函数来监视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内核运行的百分比,并将其分配给名为的列表cpu_perc

这个循环就在这里

for i in range(len(cpu_num)):
    print "CPU Core", str(i+1),":", str(cpu_perc[i]), "%"

是一个for循环,可打印出每个CPU内核的当前百分比。

让我们添加RAM使用率。

创建一个名为的函数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)

但你也可以只接收totalusedfree,或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')可能不适用于您的硬件配置。

从命令行运行该程序。从命令行将要监视的磁盘作为参数传递。

$ 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 

希望这可以帮助!如有任何疑问,请发表评论。

https://github.com/calthecoder/sysmon-1.0.1


尽管此链接可以回答问题,但最好在此处包括答案的基本部分,并提供链接以供参考。如果链接的页面发生更改,仅链接的答案可能会失效。
罗恩

@Ron-好的,我将在我的帖子中添加一个编辑,并在几天之内显示sysmon的基本脚本部分。谢谢你的建议!
calvin k

查看meta.askubuntu.com/questions/13900/…。您到底尝试了什么?
大师

@muru-没关系,现在可以正常工作。感谢您的链接!
calvin k

@muru-但是,为回答您的问题,我在代码块中以三个反引号开始,然后是我希望突出显示语法的语言,并以三个反引号结束。
calvin k 2015年


3

SeaLion可以是方便的工具,因为它具有监视服务器性能的内置命令,还可以添加自己的自定义命令,脚本和日志输出。设置和查找在特定时间出问题的地方非常容易。

2



2

有一个名为的内置工具gnome-system-monitor。它可以完成您提到的所有内容,除了热量监控。


2

Nagios似乎是最受欢迎和最可定制的,但是我不会为GUI选择它。

Zabbix的开源解决方案可以监视您提到的所有内容,并提供基于时间的图表进行性能监视。

如果您正在寻找更干净的GUI,请查看Zenoss。Zenoss是一个基于Web的开源工具,但是通过其专有工具提供服务分析和根本原因分析。


2
  1. free命令是最简单易用的命令,用于检查linux / ubuntu上的内存使用情况。

    free -m
    
  2. 要检查内存使用情况就是读取/proc/meminfo文件。

    cat /proc/meminfo
    
  3. vmstat带有s选项的命令。

    vmstat -s
    
  4. top命令通常用于检查每个进程的内存和cpu使用情况。

    top
    
  5. htop命令还显示内存使用情况以及其他各种详细信息。

    htop
    
  6. 查找有关已安装RAM的硬件信息。

    sudo dmidecode -t 17
    

1
我爱htop!简单而足够好。
淡蓝点

2

我喜欢使用conky可以随意配置的:

在此处输入图片说明

您可以在Google上conky找到787,000的匹配。每个人都有东西。

在显示屏顶部,注意“锁定屏幕:4分钟亮度:2074”。这些是由“ Indicator-Sysmonitor”生成的,它允许您使用bash脚本在系统托盘/应用程序指示器上显示。

有关设置“ Indicator-Sysmonitor”的教程,请参见:BASH能否在systray中显示为应用程序指示器?



1

我认为您应该看看AppPerfect的无代理监视器,它涵盖了监视的各个方面,例如JAVA / J2EE应用程序监视,服务器监视,数据库监视,事务监视,网络监视,日志监视和系统监视。它是免费的,易于使用。


1

就我而言,此链接的答案对我有很大帮助。

曾经是Windows用户?您可能需要等效于Windows Task Manager的Ubuntu,然后通过Ctrl + Alt + Del组合键将其打开。

Ubuntu具有内置的实用程序来监视或杀死系统运行的进程,其作用类似于“任务管理器”,即系统监视器。

默认情况下,Ctrl + Alt + Del快捷键用于在Ubuntu Unity桌面上弹出注销对话框。对于习惯于快速访问任务管理器的用户而言,它没有用。

要更改键的设置,请从Unity Dash打开键盘实用程序(或系统设置->键盘)。

在快捷方式选项卡->自定义快捷方式上,单击加号图标以添加快捷方式。输入名称“任务管理器”,然后命令gnome-system-monitor。

救命

添加后,单击显示“禁用”的位置,然后按Ctrl + Alt + Delete。您将看到一个对话框,提示“快捷键…已用于注销”,单击“重新分配”,您就完成了!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.