linux动态监控dstat&&glances&&psutil&&bottle

Posted sunshinekimi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux动态监控dstat&&glances&&psutil&&bottle相关的知识,希望对你有一定的参考价值。

安装dstat
yum install dstat

安装glances
yum install python-devel
pip install glances
如果我们安装了 Bottle 这个 web 框架,还能够通过 web 浏览器显示和命令行终端相同的监控界面。
安装bottle
pip install bottle


  1.dstat 使用

man dstat 

DSTAT(1)DSTAT(1)



名称
       dstat  - 用于生成系统资源统计信息的通用工具

概要
       dstat [-afv] [options ..] [延迟[count]]


描述
       Dstat是vmstat,iostat和ifstat的多功能替代品。 Dstat克服了一些限制并增加了一些额外的功能。

       Dstat允许您立即查看所有系统资源,例如。比较磁盘使用情况和中断
       您的IDE控制器,或直接将网络带宽数与磁盘吞吐量进行比较(在相同的时间间隔内)。

       Dstat还巧妙地为您提供了列中最详细的信息,并清楚地表明了输出的大小和单位
       显示。减少混乱,减少错误,提高效率。

       Dstat在让您为一组接口聚合某个磁盘集或网络带宽的块设备吞吐量方面是独一无二的,
       即。您可以看到构成单个文件系统或存储系统的所有块设备的吞吐量。

       Dstat允许将其数据直接写入CSV文件,以便由OpenOffice,Gnumeric或Excel导入和使用以创建图形。


       注意
       Sleuthkit的用户可能会发现Sleuthkit将dstat重命名为datastat以避免名称冲突。有关更多信息,请参阅Debian bug#283709
       信息。


OPTIONS
       -c, -  cpu
              enable cpu stats(系统,用户,空闲,等待,硬件中断,软件中断)

       -C 0,3,总计
              包括cpu0,cpu3和total(当使用-c /  -  cpu时)

       -d, -  disk
              启用磁盘统计信息(读取,写入)

       -D total,hda
              包括total和hda(当使用-d /  -  disk时)

       -g, -  page
              启用页面统计信息(页面输入,页面输出)

       -i, -  int
              启用中断统计信息

       -I 5,10
              包括中断5和10(当使用-i /  -  int时)

       -l, -  load
              启用负载平均值统计(1分钟,5分钟,15分钟)

       -m, -  mem
              启用内存统计(使用,缓冲,缓存,免费)

       -n, -  net
              启用网络统计(接收,发送)

       -N eth1,总计
              包括eth1和total(当使用-n /  -  net时)

       -p, -  proc
              启用流程统计(可运行,不可中断,新)

       -r,--io
              启用I / O请求统计信息(读取,写入请求)

       -s, -  swap
              启用交换统计(使用,免费)

       -S swap1,总计
              包括swap1和total(当使用-s /  -  swap时)

       -t, -  time
              启用时间/日期输出

       -T, -  och
              启用时间计数器(自纪元以来的秒数)

       -y, -  sys
              启用系统统计信息(中断,上下文切换)

       --aio启用aio stats(异步I / O)

       --fs, -  filesystem
              启用文件系统统计信息(打开文件,inode)

       --ipc enable ipc stats(消息队列,信号量,共享内存)

       --lock enable file lock stats(posix,flock,read,write)

       --raw enable raw stats(原始套接字)

        - 插座
              启用套接字统计信息(total,tcp,udp,raw,ip-fragments)

       --tcp enable tcp stats(listen,established,syn,time_wait,close)

       --udp enable udp stats(listen,active)

       --unix启用unix stats(数据报,流,监听,活动)

       --vm enable vm stats(硬页面故障,软页面故障,已分配,免费)

       --plugin名
              通过插件名称启用(外部)插件,请参阅PLUGINS了解选项

       可能的内部统计数据是
              aio,cpu,cpu24,disk,disk24,disk24old,epoch,fs,int,int24,io,ipc,load,lock,mem,net,page,page24,proc,raw,socket,
              swap,swapold,sys,tcp,time,udp,unix,vm

       --list列出内部和外部插件名称

       -a, -  all
              equals -cdngy(默认)

       -f, -  fulll
              展开-C,-D,-I,-N和-S发现列表

       -v, -  vmstat
              equals -pmgdsc -D total

        - 比特强制位以字节表示的值

        - 浮动
              在屏幕上强制浮动值(与--integer互斥)

        - 整数
              在屏幕上强制整数值(与--float互斥)

       --bw, -  blackwhite
              改变白色背景终端的颜色

       --nocolor
              禁用颜色(暗示--noupdate)

       --noheaders
              禁用重复标头

       --noupdate
              延迟> 1时禁用中间更新

        - 输出文件
              将CSV输出写入文件

        - 轮廓
              退出dstat时显示性能分析统计信息

PLUGINS
       虽然任何人都可以创建他们自己的dstat插件(并贡献他们)dstat船上有许多插件已经扩展其
       C

  

1、查看全部内存都有谁在占用
dstat -g -l -m -s --top-mem

  

[[email protected] src]# dstat -g -l -m -s --top-mem
---paging-- ---load-avg--- ------memory-usage----- ----swap--- --most-expensive-
  in   out | 1m   5m  15m | used  buff  cach  free| used  free|  memory process
  67k   63k|   0 0.02 0.06|1624M    0   128M 67.1M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 66.7M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 66.7M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 66.6M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 66.5M| 836M 1212M|sidekiq 5.0. 305M
8192B    0 |   0 0.02 0.06|1625M    0   128M 66.6M| 836M 1212M|sidekiq 5.0. 305M
  40k    0 |   0 0.02 0.06|1625M    0   128M 66.6M| 836M 1212M|sidekiq 5.0. 305M
4096B    0 |   0 0.02 0.06|1625M    0   128M 66.2M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 66.4M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 66.4M| 836M 1212M|sidekiq 5.0. 305M
  32k    0 |   0 0.02 0.06|1625M    0   128M 66.4M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 66.1M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 66.1M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1621M    0   128M 69.9M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1621M    0   128M 69.9M| 836M 1212M|sidekiq 5.0. 305M
8192B    0 |   0 0.02 0.06|1625M    0   128M 66.6M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 66.1M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 66.0M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 65.9M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 65.9M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 65.9M| 836M 1212M|sidekiq 5.0. 305M
  32k    0 |   0 0.02 0.06|1625M    0   128M 65.9M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 65.9M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 65.8M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 65.7M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 66.0M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.06|1625M    0   128M 65.9M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.05|1625M    0   128M 66.0M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.05|1622M    0   128M 68.9M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.05|1622M    0   128M 69.2M| 836M 1212M|sidekiq 5.0. 305M
  28k    0 |   0 0.02 0.05|1625M    0   128M 65.8M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |   0 0.02 0.05|1626M    0   128M 65.1M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |0.08 0.04 0.06|1626M    0   128M 65.1M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |0.08 0.04 0.06|1626M    0   128M 65.3M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |0.08 0.04 0.06|1626M    0   128M 65.6M| 836M 1212M|sidekiq 5.0. 305M
   0     0 |0.08 0.04 0.0

  

2、显示一些关于CPU资源损耗的数据:
dstat -c -y -l --proc-count --top-cpu

  

[[email protected] src]# dstat -c -y -l --proc-count --top-cpu
----total-cpu-usage---- ---system-- ---load-avg--- proc -most-expensive-
usr sys idl wai hiq siq| int   csw | 1m   5m  15m |tota|  cpu process
  0   1  99   0   0   0| 676   717 |0.06 0.04 0.06| 291|sidekiq 5.0.40.3
  0   0 100   0   0   0| 386   434 |0.06 0.04 0.06| 291|sidekiq 5.0.40.2
  0   1  99   0   0   0| 529   642 |0.06 0.04 0.06| 291|unicorn worke0.2
  0   0  99   0   0   0| 337   431 |0.06 0.04 0.06| 291|sidekiq 5.0.40.1
  1   1  99   0   0   0| 443   561 |0.06 0.04 0.06| 291|sidekiq 5.0.41.2
  0   0 100   0   0   0| 401   458 |0.06 0.04 0.06| 291|kworker/5:2  0.1
  0   0  99   0   0   0| 442   561 |0.06 0.04 0.06| 291|sidekiq 5.0.40.4
  1   0  99   0   0   0| 421   475 |0.06 0.04 0.06| 291|unicorn maste0.1
  0   0  99   0   0   0| 374   498 |0.05 0.04 0.06| 292|sidekiq 5.0.40.1
  1   2  97   0   0   0|1096  1265 |0.05 0.04 0.06| 289|gitlab-mon   1.1
  0   0  99   0   0   0| 430   576 |0.05 0.04 0.06| 289|sidekiq 5.0.40.1
  2   1  97   0   0   0|1096  1240 |0.05 0.04 0.06| 292|gitlab-mon   0.6
  1   0  99   0   0   0| 654   693 |0.05 0.04 0.06| 292|redis_exporte0.2
  1   1  98   0   0   0| 830   898 |0.05 0.04 0.06| 293|prometheus   0.5
  1   1  98   0   0   0| 717   631 |0.05 0.04 0.06| 292|sidekiq 5.0.40.4
  1   1  99   0   0   0| 490   535 |0.05 0.04 0.06| 292|sshd: [email protected]
  0   0 100   0   0   0| 388   535 |0.05 0.04 0.06| 292|sidekiq 5.0.40.2
  0   0  99   0   0   0| 443   520 |0.05 0.04 0.06| 292|unicorn worke0.4
  0   0  99   0   0   0| 425   546 |0.05 0.04 0.06| 292|sidekiq 5.0.40.4

  

 3、查看当前占用I/O、CPU、内存等最高的进程信息
 dstat --top-mem --top-io --top-cpu

  

[[email protected] src]# dstat --top-mem --top-io --top-cpu
--most-expensive- ----most-expensive---- -most-expensive-
  memory process |     i/o process      |  cpu process
sidekiq 5.0. 305M|systemd     144k   31k|sidekiq 5.0.40.3
sidekiq 5.0. 305M|redis-serve  24k   65B|unicorn worke0.4
sidekiq 5.0. 305M|redis-serve  28k   73B|sidekiq 5.0.40.4
sidekiq 5.0. 305M|redis-serve  26k  221B|sidekiq 5.0.40.2
sidekiq 5.0. 305M|redis-serve  27k   65B|prometheus   0.4
sidekiq 5.0. 305M|redis-serve  22k   50B|sidekiq 5.0.40.4
sidekiq 5.0. 305M|redis-serve  31k   75B|sidekiq 5.0.40.2
sidekiq 5.0. 305M|redis-serve  22k   50B|xfsaild/dm-0 0.2
sidekiq 5.0. 305M|gitaly      390k    6B|gitlab-mon   1.0
sidekiq 5.0. 305M|postgres: g  31k    0 |watchdog/6   0.5
sidekiq 5.0. 305M|postgres    421k    0 |gitlab-mon   0.4
sidekiq 5.0. 305M|prometheus   26k 6583B|node_exporter0.8
sidekiq 5.0. 305M|gitlab-mon 1060k 1554B|sidekiq 5.0.40.2
sidekiq 5.0. 305M|unicorn mas  44k    0 |sidekiq 5.0.40.2
sidekiq 5.0. 305M|redis-serve  29k   70B|sidekiq 5.0.40.2
sidekiq 5.0. 305M|redis-serve  24k   55B|sidekiq 5.0.40.2
sidekiq 5.0. 305M|redis-serve  28k   75B|unicorn worke0.2
sidekiq 5.0. 305M|redis-serve  23k   55B|sshd: [email protected]
sidekiq 5.0. 305M|redis-serve  31k 8517B|sidekiq 5.0.40.9
sidekiq 5.0. 305M|redis-serve  26k   60B|sidekiq 5.0.40.4
sidekiq 5.0. 305M|redis-serve  26k   60B|sidekiq 5.0.40.1
sidekiq 5.0. 305M|redis-serve  26k   60B|sidekiq 5.0.40.4
sidekiq 5.0. 305M|redis-serve  24k   63B|sidekiq 5.0.40.2
sidekiq 5.0. 305M|gitaly      390k    6B|gitlab-mon   0.9

  

4、将结果输出到CSV文件
dstat --output ./dstat_output.csv
Dstat 0.7.2 CSV output													
Author:	Dag Wieers <[email protected]>				URL:	http://dag.wieers.com/home-made/dstat/							
Host:	hostuser				User:	root							
Cmdline:	dstat --output ./dstat_output.csv				Date:	19 May 2019 00:01:32 CST							
													
total cpu usage						dsk/total		net/total		paging		system	
usr	sys	idl	wai	hiq	siq	read	writ	recv	send	in	out	int	csw
0.312	0.717	98.48	0.443	0	0.048	817221.645	203607.757	0	0	73861.799	71079.351	680.597	718.495
0	0.375	99.625	0	0	0	0	20480	60	194	0	0	421	566
0.629	0.126	99.245	0	0	0	0	0	60	122	0	0	307	364
0	0.251	99.749	0	0	0	0	0	60	114	0	0	337	488
0.126	0.252	99.623	0	0	0	98304	0	60	106	98304	0	362	436
0.125	0.251	99.624	0	0	0	0	0	60	114	0	0	372	504
0	0.251	99.749	0	0	0	0	0	60	98	0	0	300	398
0.126	0.378	99.496	0	0	0	49152	13312	252	286	32768	0	427	560
0	0.251	99.749	0	0	0	0	0	182	190	0	0	289	368
0	0.252	99.748	0	0	0	0	0	120	106	0	0	395	522
0	0.25	99.625	0	0	0.125	0	0	120	106	0	0	285	381
0.508	1.396	98.096	0	0	0	0	0	60	98	0	0	1025	1322
0.126	0.379	99.369	0	0	0.126	147456	0	60	106	0	0	525	637
0.504	1.008	98.489	0	0	0	0	0	60	114	0	0	739	816

  

二、交互性监控工具glances

glances可以在用户终端上实时显示重要的系统信息,并动态刷新内容。glances每隔3秒钟对其进行刷新,我们也可以使用命令行参数修改刷新的频率。与dstat相同的是,glances可以将捕获到的数据保存到文件中;而不同的是glances提供了API接口以便应用程序从glances中获取数据

glances 提供的系统信息

1 CPU使用率;
 2 内存使用情况;
 3 内核统计信息和运行队列信息;
 4 磁盘I/O速度、传输和读/写比率;
 5 文件系统中的可用空间;
 6 磁盘适配器;
 7 网络I/O速度、传输和读/写比率;
 8 页面空间和页面速度;
 9 消耗资源最多的进程;
10 计算机信息和系统资源。
glances的使用非常简单,直接输入glances命令便进入了一个类似于top命令的交互式界面。在这个界面中,显示了比top更加全面,更加具有可读性的信息。

  为了增加可读性,glances会以不同的颜色表示不同的状态。其中,绿色表示性能良好,元须做任何额外工作;蓝色表示系统性能有一些小问题,用户应当开始关注系统性能;紫色表示性能报警,应当采取措施;红色表示性能问题严重,应当立即处理。
  glances是一个交互式的工具.因此,我们也可以输入命令来控制glances的行为。

  

 如果我们安装了 Bottle 这个 web 框架,还能够通过 web 浏览器显示和命令行终端相同的监控界面。

  glances还支持将采集的数据导人到其他服务中心,包括InfluxDB,Cassandra,CouchDB,OpenTSDB,Prometheus,StatsD,ElasticSearch,RabbitMQ/ActiveMQ,ZeroMQ,Kafka和Riemann。

 

[[email protected] src]#  glances -w
Glances Web User Interface started on http://0.0.0.0:61208/

开放61208端口

 firewall-cmd --zone=public --add-port=61208/tcp --permanent

重启防火墙
firewall-cmd --reload
执行ifconfig 获取本机ipv4,然后http://ip:61208/

页面会动态刷新监控数据

  技术图片

 

以上是关于linux动态监控dstat&&glances&&psutil&&bottle的主要内容,如果未能解决你的问题,请参考以下文章

Linux 终端下 dstat 监控工具

Linux终端下 dstat 监控工具

Linux终端下 dstat 监控工具

Linux 终端下全能系统监控工具 dstat

使用Python监控Linux系统

dstat下性能监控工具之----dstat