Ubuntu的系统监控工具

我正在寻找GUI和Cli基于Web的系统监控工具,其中包括基本 function

  • CPU使用率

  • Ram用法

  • 交换使用

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

  • 热监测

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

一瞥 – 关注您的系统

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 

截图

截图

配置文件

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

客户/服务器模式

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

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

其他来源: PyPI , Github , Linuxaria

更新

监控juju容器只是例如大图像的样子

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

截图

了解CPU使用情况

在内置系统监视器使用情况图表中可以看出,Glance本身似乎需要在活动期间使用cpu时间段的峰值。 如果图表是准确的 – 那么通过使用一瞥就可以放弃系统中大约1/4的CPU。 这对于监视服务器上的CPU负载的人来说是有效的。

扫视cpu使用情况

指标-sysmonitor所在行

指标-SysMonitor做了一点,但做得很好。 安装并运行后,它会在顶部面板上显示CPU和RAM使用情况。 简单。

在此处输入图像描述

从这里下载

Conky的

我最喜欢的一个

在此处输入图像描述

您可以在Screenlet中找到一些不同风格的CPU和RAM监视器,这些监视器包含在Ubuntu软件中心提供的screenlets-all软件包中。

在此处输入图像描述

眼神

安装:

 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 

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

 iostat -c 

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

 iostat --help 

MPSTAT

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

 mpstat 

对于每个处理器的CPU使用率,请使用此命令:

 mpstat -P ALL 

Saidar

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

在此处输入图像描述

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

 sudo apt-get install saidar 

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

 saidar -c -d 1 

统计数据将每秒刷新一次。

的gkrellm

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/ 

以下是监控Linux系统的工具

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

在过去的几年里我使用过:

系统负载指示器

在此处输入图像描述

可从软件中心获得

最佳

top是监控软件,列出所有进程的CPU / RAM使用情况,总体CPU / RAM使用情况等等它也主要是默认安装的

HTOP

htop就像是顶级的扩展版本。 它具有上面的所有function,但您可以查看子进程并自定义所有内容的显示。 它也有颜色。

iotop

iotop专门用于监控硬件I / O它列出了所有进程并显示了它们用于读写的硬盘使用情况。

您可能想尝试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()仅向我们提供有关以字节为单位发送和接收的数据包的信息,因此需要进行一些转换。

要获取有关交换空间的一些信息,请添加此function。

 def swap_perc(): swap = psutil.swap_memory() swap_perc = swap.percent 

这个很简单。

温度很难做到,因此您可能需要对自己进行一些研究,以找出适用于您的硬件的方法。 您必须显示某个文件的内容。

磁盘使用比温度容易得多。 您需要做的就是通过某个function传递您想要监视的磁盘(即: / )。

 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) 

但你也可以收到totalusedfreepercent

完成的计划:(上述function合并)

 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

软件包systat有一个名为sar的工具sar您的所有需求。 它还可以收集历史数据,以便您可以看到前一段时间发生的事情。

SeaLion可以是一个方便的工具,因为它具有监视服务器性能的内置命令,您还可以添加自己的自定义命令,scirpts和日志输出。 设置很容易,找出特定时间出了什么问题。

2

我推荐http://conky.sourceforge.net/

非常容易配置和最少的资源使用。

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

Nagios似乎是最流行和最可定制的,但我不会选择它用于GUI。

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

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

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

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

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

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

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

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

     sudo dmidecode -t 17 

检查eginnovations Linux监控工具 – http://www.eginnovations.com/web/linux-server-monitoring.htm

基于Web,易于安装,甚至支持Linux虚拟化。

我想你应该看看AppPerfect的Agentless Monitor ,它涵盖了JAVA / J2EE应用程序监控,服务器监控,数据库监控,事务监控,网络监控,日志监控和系统监控等各个方面的监控。 它免费且易于使用。

我喜欢使用conky ,无论如何你可以配置:

在此处输入图像描述

你可以google conky并找到787,000次点击。 有适合每个人的东西。

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

有关设置“Indicator-Sysmonitor”的教程,请参阅: BASH可以在系统托盘中显示为应用程序指示器吗?