ubuntu 下系统监视器_Ubuntu系统监控工具
问题描述
我正在寻找系统监视工具,它们是GUI和Cli或基于Web的工具,其中包括基本功能,例如
CPU使用率
公羊使用
交换使用
磁盘使用情况(空间/I /O)
热监测
我知道有很多工具可以使用,但我正在寻找一种具有这些基本功能的工具。
最佳解决方案
浏览 – 关注你的系统
Glances是一款免费软件(根据LGPL授权),可通过文本界面监控您的GNU /Linux或BSD操作系统。 Glances使用库libstatgrab从您的系统中检索信息,并使用Python开发。
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。
通过浏览,您可以看到关于系统资源的大量信息:默认情况下,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-only))
glances -e
配置文件
您可以在Glances配置文件中设置阈值,在GNU /Linux上,默认配置文件位于/etc/glances/glances.conf中。
客户端/服务器模式
此监视工具的另一个有趣功能是,只需键入glances -s即可在服务器模式下启动它,这将为Glances服务器运行在0.0.0.0:61209上提供输出,现在可以使用glance从另一台计算机连接到它–c @server其中@server是服务器的IP地址或主机名。
Glances使用XML /RPC服务器,可以被其他客户端软件使用。在服务器模式下,您可以设置绑定地址(-B ADDRESS)和侦听TCP端口(-p PORT),默认绑定地址为0.0.0.0(Glances将监听所有网络接口),并且TCP端口为61209.在客户端模式下,可以设置服务器的TCP端口(-p端口)。在客户端/服务器模式下,服务器端设置限制。版本1.6引入了一个可选的密码来访问服务器(-P密码),如果在服务器上设置的话,也必须在客户端上使用。
Update
举例来说,监控juju容器是如何看起来像Large Image
在终端号1中,Glances在服务器模式下运行,在终端号2中,juju容器正在运行apt-get update&在终端3中glances -c 192.168.1.103 Glances已连接到容器IP
次佳解决方案
indicator-SysMonitor
Indicator-SysMonitor做了一些,但做得很好。一旦安装并运行,它将显示顶部面板上CPU和RAM的使用情况。简单。
Conky的
我个人的最爱之一
Screenlet可以在Ubuntu软件中心的screenlets-all软件包中找到一堆不同风格的CPU和RAM监视器。
眼神
安装:
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-based用户界面的应用程序。
使用以下命令安装它:
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,iotop,sar,netstat等等。当您调试问题时,没有任何东西在这些linux实用程序附近出现。这些命令为您提供了一个清晰的画面,它将进入您的服务器
SeaLion:代理执行#1(也是用户定义的)中提到的所有命令,这些命令的输出可以在漂亮的Web界面中访问。当您在数百台服务器上进行调试时,此工具非常方便,因为安装非常简单。它的免费
Nagios:它是所有监视/警报工具的母亲。这是非常多的定制,但非常难以为初学者设置。有几套叫做nagios插件的工具涵盖了几乎所有重要的Linux指标
穆宁
服务器密度:一种基于云计算的付费服务,可收集重要的Linux指标并为用户编写自己的插件提供支持。
New Relic:另一个众所周知的托管监控服务。
ZABBIX
第四种方案
在过去的几年中,我使用了:
可从软件中心获得
第五种方案
最佳
top是监控软件,列出所有CPU /RAM使用情况,整体CPU /RAM使用情况等等。大多数情况下默认安装
HTOP
htop就像顶级的扩展版本。它具有上述所有功能,但您可以看到子进程并自定义显示的所有内容。它也有颜色。
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_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)
但您也可以只收到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')行可能不适用于您的硬件配置。
从命令行运行该程序。将要监视的磁盘作为参数从命令行传递。
$ 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的工具,可以满足您的所有需求。它还可以收集历史数据,以便您可以查看前一段时间发生的情况。
第八种方案
SeaLion可以很方便使用,因为它具有内置命令来监视您的服务器性能以及您可以添加自己的自定义命令,scirpts和日志输出。这是非常容易设置,并找出在特定时间出了什么问题。
参考资料
ubuntu 下系统监视器_Ubuntu系统监控工具相关推荐
- 第二十章 使用系统监视器 - 定义系统监视器组件
文章目录 第二十章 使用系统监视器 - 定义系统监视器组件 `Sensor Classes` Subscriber Classes `Notifier Classes` 健康监测 运行状况监视器概述 ...
- 第十八章 使用系统监视器 -设置系统监视器选项
文章目录 第十八章 使用系统监视器 - 设置系统监视器选项 设置系统监视器选项 配置系统监视器组件 配置系统监视器类 第十八章 使用系统监视器 - 设置系统监视器选项 设置系统监视器选项 要更改全局系 ...
- ubuntu 下系统监视器_Ubuntu下,用Pyinstaller打包桌面系统时,你踩坑了没?
前几天,在Ubuntu下,用Pyinstaller打包wxPython开发的桌面系统时,遇到不少坑.趁这两天有时间,整理出来并分享给你. 1 好在Ubuntu新版本,比之前的完善了n多倍,安装方便了很 ...
- ubuntu下安装wps出现系统缺失字体问题?
出现原因:本人在ubuntu下安装WPS后,从windows下拷贝了.doc文件,出现了系统缺失字体的问题,上网查找解决办法,都是要从百度云盘里下载字体,放到/usr/share/fonts下的,非常 ...
- ubuntu分屏软件_Ubuntu系统入门教程-终端分屏软件Terminator
说明 本教程介绍如何在Ubuntu系统下安装和使用终端分屏软件-Terminator 测试环境: Ubuntu 1604 and Ubuntu 1804 软件安装 打开新终端,下载且安装Termina ...
- ubuntu mysql5.7配置_ubuntu系统mysql5.7忘记/设置root的坑
关于修改root的密码有很多笔记了,但是在mysql5.7下面无效,后来找到同样是5.7的笔记,才真正修改好.现在记录下来. 第一步,修改mysql配置文件让Mysql跳过认证 我的mysql是通过a ...
- ubuntu下mysql语句_Ubuntu安装mysql及常用SQL操作语句
Ubuntu安装mysql及常用SQL操作语句:安装mysql,在终端运行如下三条命令. sudo apt-get install mysql-server sudo apt-get install ...
- ubuntu 将某个目录下的文件复制到_Ubuntu系统简单美化
概要 我的笔记本上装的是win10和Ubuntu18.04双系统,双系统装好后引导界面和Ubuntu界面都感觉不是很好看,所以打算对界面进行一个简单的美化,主要分为引导界面美化.主题美化.图标美化.用 ...
- 实时屏幕监控 linux面板,分享|LXDE、Xfce 及 MATE 桌面环境下的又一系统监视器应用:Multiload-ng...
Multiload-ng 是一个 GTK2 图形化系统监视器应用,可集成到 Xfce.LXDE 及 MATE 的桌面面板中, 它 fork 自原来的 GNOME Multiload 应用.它也可以运行 ...
- Windows 7 下直接硬盘安装 Ubuntu 10.04成为双系统的方法
我这只下载Ubuntu10.04的ISO文件,又不想刻盘从光盘安装,麻烦又浪费一张光盘,又没有USB用,做不成LIVEUSB来启动安装,然后又不想用WUBI安装,觉得WUBI安装的方法系统的性能有所下 ...
最新文章
- dell新服务器安装系统
- 独家 | 使用高斯混合模型,让聚类更好更精确(附数据代码学习资源)
- 后缀数组的学习(三):SA数组实现代码分析
- vue 多页面iframe不刷新_Vue中iframe保持活动状态(不刷新)
- 使用JSON JavaScriptSerializer 进行序列化或反序列化时出错。字符串的长度超过了为 maxJsonLength属性...
- Effective C++ 读书笔记(八)
- unity ppr_智能自动PPR更改事件策略
- 前端使用正则表达式获取地址栏URL参数的值并将需要的参数值展示在页面
- 局域网网管软件_局域网安全管理面临的4大挑战
- 阻塞会话_使用根会话解决SQL阻塞链并进行故障排除
- vista的启动修复........
- 《剑指offer》第三十三题(二叉搜索树的后序遍历序列)
- JDBC连接池技术与Druid
- SPPnet论文总结
- 安装magicdrawUML出现的问题
- Markdown教程常用语法随笔
- 读JQuery 有感
- 正态分布在数据分析中的应用
- 和ChatGPT聊了聊BDOS Online,结果……
- RGB,YUV的来历及其相互转换