30个必备的Linux系统监控工具:系统管理员必看指南
与top监控工具一起使用的常用热键,下面是一个有用的热键列表:
t - 关闭和打开显示摘要信息。
M- 显示关闭和打开内存信息。
a - 按不同系统资源的顶级使用者对显示进行排序。有助于快速识别系统中需要性能的任务。
F - 进入顶部的交互式配置屏幕。有助于为特定任务设置top。
o - 使您能够交互选择顶部的顺序。
r - 发出renice命令。
k - 发出kill命令。
Z - 打开或关闭颜色/单声道
vmstat – 虚拟内存统计
vmstat命令报告有关进程、内存、分页、块IO、陷阱和CPU活动的信息。
# vmstat 3输出样例:
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------ r b swpd free buff cache si so bi bo in cs us sy id wa st 0 0 0 2540988 522188 5130400 0 0 2 32 4 2 4 1 96 0 0 1 0 0 2540988 522188 5130400 0 0 0 720 1199 665 1 0 99 0 0 0 0 0 2540956 522188 5130400 0 0 0 0 1151 1569 4 1 95 0 0 0 0 0 2540956 522188 5130500 0 0 0 6 1117 439 1 0 99 0 0 0 0 0 2540940 522188 5130512 0 0 0 536 1189 932 1 0 98 0 0 0 0 0 2538444 522188 5130588 0 0 0 0 1187 1417 4 1 96 0 0 0 0 0 2490060 522188 5130640 0 0 0 18 1253 1123 5 1 94 0 0显示Slab内存利用率
# vmstat -m获取有关活动/非活动内存页的信息
# vmstat -aw – 了解谁登录以及他们在做什么
w命令显示有关计算机上的当前用户及其进程的信息。
# w username# w vivek输出样例:
17:58:47 up 5 days, 20:28, 2 users, load average: 0.36, 0.26, 0.24USER TTY FROM LOGIN@ IDLE JCPU PCPU WHATroot pts/0 10.1.3.145 14:55 5.00s 0.04s 0.02s vim /etc/resolv.confroot pts/1 10.1.3.145 17:43 0.00s 0.03s 0.00s wuptime – 告诉Linux系统运行了多长时间
可以使用uptime命令查看服务器运行了多长时间。当前时间、系统运行时间、当前登录的用户数以及过去1、5和15分钟的系统平均负载。
# uptime输出样例:
18:02:41 up 41 days, 23:42, 1 user, load average: 0.00, 0.00, 0.001可被视为最佳负荷值。负载情况在每个系统上是有差异的,不能一概而论。对于单个CPU的系统1–3认为是良好的,而对于具体多个CPU的SMP系统,6-10负载值也是可接受的。
ps – 显示Linux的进程列表
ps命令将报告当前进程的快照。要选择所有进程,请使用-A或-e选项:
# ps -A输出样例:
PID TTY TIME CMD 1 ? 00:00:02 init 2 ? 00:00:02 migration/0 3 ? 00:00:01 ksoftirqd/0 4 ? 00:00:00 watchdog/0 5 ? 00:00:00 migration/1 6 ? 00:00:15 ksoftirqd/1......... 4881 ? 00:53:28 java 4885 tty1 00:00:00 mingetty 4886 tty2 00:00:00 mingetty 4887 tty3 00:00:00 mingetty 4888 tty4 00:00:00 mingetty 4891 tty5 00:00:00 mingetty 4892 tty6 00:00:00 mingetty 4893 ttyS1 00:00:00 agetty12853 ? 00:00:00 cifsoplockd12854 ? 00:00:00 cifsdnotifyd14231 ? 00:10:34 lighttpd14232 ? 00:00:00 php-cgi54981 pts/0 00:00:00 vim55465 ? 00:00:00 php-cgi55546 ? 00:00:00 bind9-snmp-stat55704 pts/1 00:00:00 psps命令和top类似,但提供了更多的信息。
显示长格式输出
# ps -Al
要打开额外的完整模式(它将显示传递给进程的命令行参数)
# ps -AlF
显示线程 ( LWP and NLWP)
# ps -AlFH
在进程后监视线程
# ps -AlLm
显示系统上的所有进程
# ps ax
# ps axu
显示进程树
# ps -ejH
# ps axjf
# pstree
获取Linux进程的安全信息
# ps -eo euser,ruser,suser,fuser,f,comm,label
# ps axZ
# ps -eM
让我们打印作为用户vivek运行的每个进程
# ps -U vivek -u vivek u
以用户定义的格式配置ps命令输出
# ps -eo pid,tid,class,rtprio,ni,pri,psr,pcpu,stat,wchan:14,comm
# ps axo stat,euid,ruid,tty,tpgid,sess,pgrp,ppid,pid,pcpu,comm
# ps -eopid,tt,user,fname,tmout,f,wchan
尝试只显示lighttpd的进程ID
# ps -C lighttpd -o pid=
或者
# pgrep lighttpd
或者
# pgrep -u vivek php-cgi
打印PID 55977的名称
# ps -p 55977 -o comm=
前10个内存消耗进程
# ps -auxf | sort -nr -k 4 | head -10
向我们展示10大消耗CPU的进程
# ps -auxf | sort -nr -k 3 | head -10
free – 显示Linux服务器内存使用情况
free命令显示系统中可用和已用物理内存和交换内存的总量,以及内核使用的缓冲区。
# free
输出样例:
total used free shared buffers cachedMem: 12302896 9739664 2563232 0 523124 5154740-/+ buffers/cache: 4061800 8241096Swap: 1052248 0 1052248iostat – Montor Linux average CPU load and disk activity
iostat命令报告设备、分区和网络文件系统(NFS)的中央处理器(CPU)统计信息和输入/输出统计信息。
# iostat输出样例:
Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/2009avg-cpu: %user %nice %system %iowait %steal %idle 3.50 0.09 0.51 0.03 0.00 95.86Device: tps Blk_read/s Blk_wrtn/s Blk_read Blk_wrtnsda 22.04 31.88 512.03 16193351 260102868sda1 0.00 0.00 0.00 2166 180sda2 22.04 31.87 512.03 16189010 260102688sda3 0.00 0.00 0.00 1615 0sar – 监视、收集和报告Linux系统活动
sar命令用于收集、报告和保存系统活动信息。要查看网络统计信息,输入如下命令:
# sar -n DEV | more
从0点开始的网络统计信息:
# sar -n DEV -f /var/log/sa/sa24 | more
显示实时利用率信息:
# sar 4 5
输出样例:
Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/200906:45:12 PM CPU %user %nice %system %iowait %steal %idle06:45:16 PM all 2.00 0.00 0.22 0.00 0.00 97.7806:45:20 PM all 2.07 0.00 0.38 0.03 0.00 97.5206:45:24 PM all 0.94 0.00 0.28 0.00 0.00 98.7806:45:28 PM all 1.56 0.00 0.22 0.00 0.00 98.2206:45:32 PM all 3.53 0.00 0.25 0.03 0.00 96.19Average: all 2.02 0.00 0.27 0.01 0.00 97.70mpstat – 在Linux上监视多处理器的使用情况
mpstat命令显示每个可用处理器的活动,处理器0是第一个。mpstat-p all显示每个处理器的平均CPU利用率:
# mpstat -P ALL输出样例:
Linux 2.6.18-128.1.14.el5 (www03.nixcraft.in) 06/26/200906:48:11 PM CPU %user %nice %sys %iowait %irq %soft %steal %idle intr/s06:48:11 PM all 3.50 0.09 0.34 0.03 0.01 0.17 0.00 95.86 1218.0406:48:11 PM 0 3.44 0.08 0.31 0.02 0.00 0.12 0.00 96.04 1000.3106:48:11 PM 1 3.10 0.08 0.32 0.09 0.02 0.11 0.00 96.28 34.9306:48:11 PM 2 4.16 0.11 0.36 0.02 0.00 0.11 0.00 95.25 0.0006:48:11 PM 3 3.77 0.11 0.38 0.03 0.01 0.24 0.00 95.46 44.8006:48:11 PM 4 2.96 0.07 0.29 0.04 0.02 0.10 0.00 96.52 25.9106:48:11 PM 5 3.26 0.08 0.28 0.03 0.01 0.10 0.00 96.23 14.9806:48:11 PM 6 4.00 0.10 0.34 0.01 0.00 0.13 0.00 95.42 3.7506:48:11 PM 7 3.30 0.11 0.39 0.03 0.01 0.46 0.00 95.69 76.89pmap – 在Linux上监控进程内存使用情况
pmap命令报告进程的内存映射。使用此命令查找内存性能瓶颈的原因。
# pmap -d PID
要显示PID 47394的进程内存信息,请输入:
# pmap -d 47394
输出样例:
47394: /usr/bin/php-cgiAddress Kbytes Mode Offset Device Mapping0000000000400000 2584 r-x-- 0000000000000000 008:00002 php-cgi0000000000886000 140 rw--- 0000000000286000 008:00002 php-cgi00000000008a9000 52 rw--- 00000000008a9000 000:00000 [ anon ]0000000000aa8000 76 rw--- 00000000002a8000 008:00002 php-cgi000000000f678000 1980 rw--- 000000000f678000 000:00000 [ anon ]000000314a600000 112 r-x-- 0000000000000000 008:00002 ld-2.5.so000000314a81b000 4 r---- 000000000001b000 008:00002 ld-2.5.so000000314a81c000 4 rw--- 000000000001c000 008:00002 ld-2.5.so000000314aa00000 1328 r-x-- 0000000000000000 008:00002 libc-2.5.so000000314ab4c000 2048 ----- 000000000014c000 008:00002 libc-2.5.so.............00002af8d48fd000 4 rw--- 0000000000006000 008:00002 xsl.so00002af8d490c000 40 r-x-- 0000000000000000 008:00002 libnss_files-2.5.so00002af8d4916000 2044 ----- 000000000000a000 008:00002 libnss_files-2.5.so00002af8d4b15000 4 r---- 0000000000009000 008:00002 libnss_files-2.5.so00002af8d4b16000 4 rw--- 000000000000a000 008:00002 libnss_files-2.5.so00002af8d4b17000 768000 rw-s- 0000000000000000 000:00009 zero (deleted)00007fffc95fe000 84 rw--- 00007ffffffea000 000:00000 [ stack ]ffffffffff600000 8192 ----- 0000000000000000 000:00000 [ anon ]mapped: 933712K writeable/private: 4304K shared: 768000K最后一行非常重要
- mapped: 933712K 映射到文件的内存总量
- writeable/private: 4304K 专用地址空间的数量
- shared: 768000K 此进程与其他进程共享的地址空间量
netstat – Linux网络和统计监控工具
netstat命令显示网络连接、路由表、接口统计信息、伪装连接和多播成员身份。
# netstat -tulpn
# netstat -nat
ss – 网络统计
ss命令用于转储套接字统计信息。它允许显示类似于netstat的信息。请注意,netstat基本上是过时的。因此需要使用ss命令。要在Linux上SS所有TCP和UDP套接字,请执行以下操作:
# ss -t -a
或者
# ss -u -a
显示具有进程selinux安全上下文的所有TCP套接字:
# ss -t -a -Z
iptraf – 获取Linux上的实时网络统计信息
iptraf命令是交互式彩色IP LAN监视器。它是一个基于ncurses的IP LAN监视器,可以生成各种网络统计信息,包括TCP信息、UDP计数、ICMP和OSPF信息、以太网负载信息、节点状态、IP校验和错误等。它可以以易于阅读的格式提供以下信息:
- TCP连接的网络流量统计
- 按网络接口的IP流量统计
- 按协议的网络流量统计
- 按TCP/UDP端口和数据包大小统计的网络流量
- 按第2层地址列出的网络流量统计信息
图2. iptraf一般接口统计
图3 通过TCP连接统计网络传输情况
tcpdump –详细的网络流量分析
tcpdump命令是在网络上转储数据的简单命令。但是,您需要很好地理解TCP/IP协议才能使用此工具。例如,要显示有关DNS的流量信息,请输入:
# tcpdump -i eth1 'udp port 53'
查看进出端口80的所有IPv4 HTTP数据包,即仅打印包含数据的数据包,而不是syn和fin数据包和ack-only数据包,输入:
# tcpdump 'tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0)'
显示到202.54.1.5的所有ftp会话,输入:
# tcpdump -i eth1 'dst 202.54.1.5 and (port 21 or 20'
显示到192.168.1.5的所有HTTP会话:
# tcpdump -ni eth0 'dst 192.168.1.5 and tcp and port http'
使用wireshark查看有关文件的详细信息,输入:
# tcpdump -n -i eth1 -s 0 -w output.txt src or dst port 80
iotop – Linux I/O 监控
iotop命令监视器I/O利用率信息,基于Linux内核。它显示了按服务器上的进程或线程排序的当前I/O使用情况表。
$ sudo iotop
输出样例:
htop – interactive process viewer
htop是一个基于ncurses的免费开源Linux进程查看器。它比top命令要好用得多。非常容易使用,您可以在不使用PIDS或离开htop接口的情况下选择要终止或重新冻结的进程。
$ htop
输出样例:
atop – 高级Linux系统和进程监视器
atop是一个非常强大的交互式监视器,可以查看Linux系统上的负载。它从性能角度显示最关键的硬件资源。您可以快速看到CPU、内存、磁盘和网络性能。它显示了在进程级别上,哪些进程负责与CPU和内存负载相关的指示负载。
$ atop
ac and lastcomm
您必须监视Linux服务器上的进程和登录活动。psacct或acct包包含多个用于监控流程活动的实用程序,包括:
monit – 过程监督
monit是一个免费开源的软件,充当进程的看门狗。它具有重新启动失败服务的能力。您可以使用systemd、daemontools或任何其他类似的工具来实现相同的目的。
nethogs- 找出在Linux上占用带宽最多的pids
NetHogs是一种小型但方便的网络top工具。它按进程名(如firefox、wget等)对带宽进行分组。如果网络流量突然爆发,启动网管。您将看到哪个PID导致带宽激增。
$ sudo nethogs
iftop – 按主机显示接口上的带宽使用情况
iftop命令监听给定接口名(如eth0)上的网络流量。它按主机对显示当前带宽使用情况的列表。
$ sudo iftop
vnstat – 基于控制台的网络流量监视器
vnstat 是一个易于使用的基于控制台的Linux网络流量监视器。它为所选接口保留每小时、每天和每月网络流量的日志。
$ vnstat
nmon – Linux系统管理员、调优者、基准测试工具
nmon是linux系统管理员的终极工具,它主要用于性能调优。它可以从控制台显示CPU、内存、网络、磁盘、文件系统、NFS、顶级进程资源和分区信息。
$ nmon
glances – 给Linux系统按一个眼睛
glances是一个开源的跨平台监控工具。它在小屏幕上提供大量信息。它还可以在客户机/服务器模式下工作。
$ glances
strace – 在Linux上监视系统调用
要跟踪Linux系统调用和信号吗?尝试strace命令。这对于调试Web服务器和其他服务器问题很有用。了解如何使用跟踪流程并了解它在做什么。
/proc/ 文件系统 – 各种Linux内核统计信息
/proc file system提供有关各种硬件设备和其他Linux内核信息的详细信息。有关更多详细信息,请参阅Linux内核/proc文档。常见/过程示例:
# cat /proc/cpuinfo
# cat /proc/meminfo
# cat /proc/zoneinfo
# cat /proc/mounts
Nagios – Linux服务器/网络监控
Nagios是一款流行的开源计算机系统和网络监控应用软件。您可以轻松地监视所有主机、网络设备和服务。它可以在出现问题时发出警报,在情况好转时再次发出警报。风扇是“全自动Nagios”。Fan的目标是提供Nagios安装,包括Nagios社区提供的大多数工具。Fan以标准ISO格式提供了一个cdrom映像,使安装Nagios服务器变得容易。此外,为了改善Nagios周围的用户体验,发行版中还包括了大量工具。
Cacti – 基于Web的Linux监控工具
Cacti是一个完整的网络绘图解决方案,旨在利用rrdtool的数据存储和绘图功能。Cacti提供了快速轮询、高级图形模板、多种数据采集方法和开箱即用的用户管理功能。所有这些都被包装在一个直观、易于使用的界面中,这对于局域网大小的安装(包括具有数百个设备的复杂网络)是有意义的。它可以提供关于网络、CPU、内存、登录用户、Apache、DNS服务器等的数据。请参阅centos/rhel下的如何安装和配置cacti网络绘图工具。
KDE 系统守卫 –实时Linux系统报告和绘图
ksysguard是一个用于KDE桌面的网络化的任务和系统监控应用程序。这个工具可以在ssh会话上运行。它提供了许多功能,例如客户端/服务器体系结构,可以监视本地和远程主机。图形前端使用所谓的传感器来检索它显示的信息。传感器可以返回简单的值或更复杂的信息,如表。对于每种类型的信息,提供一个或多个显示器。在工作表中组织显示,这些工作表可以相互独立地保存和加载。因此,ksysguard不仅是一个简单的任务管理器,而且是一个非常强大的工具来控制大型服务器场。
图 KDE系统监控软件
Gnome Linux 系统监控
系统监视器应用程序使您能够显示基本的系统信息和监视系统进程、系统资源的使用情况和文件系统情况。还可以使用系统监视器修改系统的行为。虽然不如KDE系统保护功能强大,但它提供了对新用户有用的基本信息。
- 显示有关计算机硬件和软件的各种基本信息。
- Linux内核版本
- GNOME 版
- 硬件
- 已安装内存
- 处理器和速度
- 系统状态
- 当前可用磁盘空间
- 过程
- 内存和交换空间
- 网络使用
- 文件系统
- 列出所有安装的文件系统以及每个文件系统的基本信息。
Gnome系统监控程序
-
盖世小鸡X2游戏控制器:轻巧便携掌上游戏神器 10-27
-
快速下载视频与音频——轻松操作尽在nPlayer 10-27
-
一款神奇的海洋探索和管理冒险游戏 10-27
-
微信安卓版8.0.37测试版最新更新一览 10-27
-
《三国群英传3》——详尽解析各军师技能学习条 10-27
-
传奇3微改版官网下载:七元素十三魔法的传奇之旅 10-27
-
手机助手必备,安卓系统优化神器 10-27
用户评论
这个清单太棒了!我一直在寻找一些新的工具来提升我的系统监控效率,这篇博文的推荐对我非常有帮助。我已经试用了几样看起来很实用的工具,期待能看到更好的效果。
有8位网友表示赞同!
这篇文章把我给惊到了,居然这么多Linux系统监控工具?我好像还只听说过其中一小部分。作为一名还在学习的管理员,这份清单简直就是我的福音!
有7位网友表示赞同!
同意很多朋友的看法,这个清单很有参考价值,但是文章没有详细介绍每个工具的使用方法和功能特点,对于新手来说可能有点缺乏帮助性。
有14位网友表示赞同!
作为一个资深的Linux管理员,我觉得这份清单有些过于基础了,没有包含一些更先进、更专业的监控工具。希望能看到更多关于高级监控和自动化运维的探讨。
有6位网友表示赞同!
学习linux越来越重要了,这篇博文让我了解到很多新工具。之前我还不知道有这么多可以用来监控系统运行情况的工具呢!
有18位网友表示赞同!
我一直用的是Nagios和Zabbix,但看了这份清单后发现还有很多其他值得一试的工具。尤其是那些功能更轻量级的工具非常适合我当前的需求。
有20位网友表示赞同!
作为一名企业级系统管理员,我需要监控多个服务器节点,希望能看到一些关于集群管理和分布式监控工具的介绍,这样能更加提高管理效率。
有6位网友表示赞同!
学习linux,感觉这篇文章真是太棒了!这么多工具,不知道哪一个适合自己的需求呢?有没有推荐哪个比较易于上手的工具啊?
有15位网友表示赞同!
系统监控工具一直是我在工作中遇到的难题,这篇博文虽然列出了不少工具,但却没有给出清楚的使用指南和最佳实践,这对于缺乏经验的人来说有些困难。
有13位网友表示赞同!
这个清单很有用!但是我觉得很多工具的介绍比较简单,缺少一些更具体的案例和使用场景分析,能更有利于读者更好地理解每个工具的功能和用途。
有7位网友表示赞同!
我非常喜欢这份清单对各种常用Linux系统监控工具的概览,对于初学者来说,可以快速了解到不同工具的特性和适用场景。但希望能看到更多深入的比较分析,帮助读者更准确地选择合适的工具。
有11位网友表示赞同!
这篇博文虽然列出了很多工具,但没有介绍如何选择适合自身需求的工具,对于一个想要入门Linux系统监控的新手来说不太实用。
有14位网友表示赞同!
作为一名软件工程师,我经常需要了解服务器健康状况。希望能看到更多关于性能监控和日志分析工具的介绍,这对他非常有帮助。
有20位网友表示赞同!
系统监控一直是一项非常重要的工作。这份清单让我对一些常用的监控工具有了更深层次的理解,也让我意识到还有很多新的工具可以尝试使用。
有6位网友表示赞同!
对于我们正在迁移到Linux环境的操作部门来说,这篇博文简直太及时了!这份清单能帮助我们快速了解并选择合适的监控工具,大大提高部署效率。
有7位网友表示赞同!
作为一个系统管理员,我一直都在寻找更好的监控工具来提升工作效率。这篇文章让我看到了很多新工具和解决方案,非常期待能深入尝试一下!
有16位网友表示赞同!
尽管这清单涵盖了很多常用工具,但我发现一些热门的监控平台比如 Prometheus 和 Grafana 没有被列入其中。也许可以考虑在未来版本的博文中添加这些工具的介绍?
有6位网友表示赞同!