游戏迷提供最新游戏下载和手游攻略!

30个必备的Linux系统监控工具:系统管理员必看指南

发布时间:2024-10-22浏览:26

与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 -a

w – 了解谁登录以及他们在做什么

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 w

uptime – 告诉Linux系统运行了多长时间

可以使用uptime命令查看服务器运行了多长时间。当前时间、系统运行时间、当前登录的用户数以及过去1、5和15分钟的系统平均负载。

# uptime

输出样例:

18:02:41 up 41 days, 23:42, 1 user, load average: 0.00, 0.00, 0.00

1可被视为最佳负荷值。负载情况在每个系统上是有差异的,不能一概而论。对于单个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 ps

ps命令和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 1052248

iostat – 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 0

sar – 监视、收集和报告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.70

mpstat – 在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.89

pmap – 在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包包含多个用于监控流程活动的实用程序,包括:

  • ac命令:显示有关用户连接时间的统计信息
  • lastcomm命令:显示有关以前执行的命令的信息
  • accton命令:打开或关闭进程记帐
  • sa命令:汇总会计信息
  • 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系统监控程序

    用户评论

    疯人疯语疯人愿

    这个清单太棒了!我一直在寻找一些新的工具来提升我的系统监控效率,这篇博文的推荐对我非常有帮助。我已经试用了几样看起来很实用的工具,期待能看到更好的效果。

        有8位网友表示赞同!

    男神大妈

    这篇文章把我给惊到了,居然这么多Linux系统监控工具?我好像还只听说过其中一小部分。作为一名还在学习的管理员,这份清单简直就是我的福音!

        有7位网友表示赞同!

    从此我爱的人都像你

    同意很多朋友的看法,这个清单很有参考价值,但是文章没有详细介绍每个工具的使用方法和功能特点,对于新手来说可能有点缺乏帮助性。

        有14位网友表示赞同!

    青衫故人

    作为一个资深的Linux管理员,我觉得这份清单有些过于基础了,没有包含一些更先进、更专业的监控工具。希望能看到更多关于高级监控和自动化运维的探讨。

        有6位网友表示赞同!

    七夏i

    学习linux越来越重要了,这篇博文让我了解到很多新工具。之前我还不知道有这么多可以用来监控系统运行情况的工具呢!

        有18位网友表示赞同!

    ー半忧伤

    我一直用的是Nagios和Zabbix,但看了这份清单后发现还有很多其他值得一试的工具。尤其是那些功能更轻量级的工具非常适合我当前的需求。

        有20位网友表示赞同!

    娇眉恨

    作为一名企业级系统管理员,我需要监控多个服务器节点,希望能看到一些关于集群管理和分布式监控工具的介绍,这样能更加提高管理效率。

        有6位网友表示赞同!

    逃避

    学习linux,感觉这篇文章真是太棒了!这么多工具,不知道哪一个适合自己的需求呢?有没有推荐哪个比较易于上手的工具啊?

        有15位网友表示赞同!

    心安i

    系统监控工具一直是我在工作中遇到的难题,这篇博文虽然列出了不少工具,但却没有给出清楚的使用指南和最佳实践,这对于缺乏经验的人来说有些困难。

        有13位网友表示赞同!

    抚涟i

    这个清单很有用!但是我觉得很多工具的介绍比较简单,缺少一些更具体的案例和使用场景分析,能更有利于读者更好地理解每个工具的功能和用途。

        有7位网友表示赞同!

    孤独症

    我非常喜欢这份清单对各种常用Linux系统监控工具的概览,对于初学者来说,可以快速了解到不同工具的特性和适用场景。但希望能看到更多深入的比较分析,帮助读者更准确地选择合适的工具。

        有11位网友表示赞同!

    太易動情也是罪名

    这篇博文虽然列出了很多工具,但没有介绍如何选择适合自身需求的工具,对于一个想要入门Linux系统监控的新手来说不太实用。

        有14位网友表示赞同!

    何必锁我心

    作为一名软件工程师,我经常需要了解服务器健康状况。希望能看到更多关于性能监控和日志分析工具的介绍,这对他非常有帮助。

        有20位网友表示赞同!

    北朽暖栀

    系统监控一直是一项非常重要的工作。这份清单让我对一些常用的监控工具有了更深层次的理解,也让我意识到还有很多新的工具可以尝试使用。

        有6位网友表示赞同!

    有阳光还感觉冷

    对于我们正在迁移到Linux环境的操作部门来说,这篇博文简直太及时了!这份清单能帮助我们快速了解并选择合适的监控工具,大大提高部署效率。

        有7位网友表示赞同!

    伤离别

    作为一个系统管理员,我一直都在寻找更好的监控工具来提升工作效率。这篇文章让我看到了很多新工具和解决方案,非常期待能深入尝试一下!

        有16位网友表示赞同!

    绳情

    尽管这清单涵盖了很多常用工具,但我发现一些热门的监控平台比如 Prometheus 和 Grafana 没有被列入其中。也许可以考虑在未来版本的博文中添加这些工具的介绍?

        有6位网友表示赞同!

    热点资讯