对于系统和网络管理员来说每天监控和调试Linux系统的性能问题是一项繁重的工作。在IT领域作为一名Linux系统的管理员工作5年后,我逐渐认识到监控和保持系统启动并运行是多么的不容易。
基于此原因,我们已编写了最常使用的命令行工具列表,这些工具将有助于每个Linux/Unix
系统管理员的工作。
这些命令行工具可以在各种Linux系统下使用,可以用于监控和查找产生性能问题的原因。
这个命令行工具列表提供了足够的工具,您可以挑选适用于您的监控场景的工具。
Linux Top 命令是一个性能监视程序,许多系统管理员经常使用它来监视Linux的性能,它可以在许多Linux / Unix 操作系统下使用。顶部命令用于减少有序列表中的所有正在运行和活动的实时进程,并定期更新它。它显示 CPU使用情况,内存使用情况,交换内存,缓存大小,缓冲区大小,进程PID,用户, 命令等等。它还显示高 内存 和 CPU 运行流程的利用。top命令对系统管理员来说非常有用,可以在需要时监视和采取正确的操作。让我们看看最高命令的实际效果。
Linux VmStat 命令用于显示 虚拟内存, kernerl线程,磁盘, 系统进程, I / O块, 中断, CPU活动 等的统计信息。默认情况下,vmstat命令在Linux系统下不可用,您需要安装名为sysstat的软件包 ,其中包含vmstat程序。命令格式的常见用法是。
nginx procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free inact active si so bi bo in cs us sy id wa st 1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0
许多Linux / Unix 系统中使用的Lsof命令 ,用于显示所有打开文件和进程的列表。包含的开放文件是 磁盘文件, 网络套接字,管道, 设备 和 进程。使用此命令的主要原因之一是无法卸载磁盘并显示正在使用或打开文件的错误。使用此命令,您可以轻松识别哪些文件正在使用中。这个命令最常用的格式是。
nginx procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu----- r b swpd free inact active si so bi bo in cs us sy id wa st 1 0 0 810420 97380 70628 0 0 115 4 89 79 1 6 90 3 0
Tcpdump 是使用最广泛的命令行 网络数据包分析器 或 数据包嗅探器 程序之一,用于捕获或过滤 通过网络在特定接口上接收或传输的TCP / IP数据包。它还提供了一个选项,可以将捕获的包保存在文件中供以后分析。tcpdump几乎可用于所有主要的Linux发行版。
nginx tcpdump: verbose output suppressed, use -v or -vv for full protocol decode listening on eth0, link-type EN10MB (Ethernet), capture size 96 bytes 22:08:59.617628 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 2532133365:2532133481(116) ack 3561562349 win 9648 22:09:07.653466 IP tecmint.com.ssh > 115.113.134.3.static-mumbai.vsnl.net.in.28472: P 116:232(116) ack 1 win 9648 22:08:59.617916 IP 115.113.134.3.static-mumbai.vsnl.net.in.28472 > tecmint.com.ssh: . ack 116 win 64347
Netstat 是一个命令行工具,用于监视 传入 和 传出网络 数据包统计信息以及接口统计信息。对于每个系统管理员来说,监视网络性能并排除网络相关问题是非常有用的工具。
nginx Active Internet connections (servers and established) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:mysql *:* LISTEN tcp 0 0 *:sunrpc *:* LISTEN tcp 0 0 *:realm-rusd *:* LISTEN tcp 0 0 *:ftp *:* LISTEN tcp 0 0 localhost.localdomain:ipp *:* LISTEN tcp 0 0 localhost.localdomain:smtp *:* LISTEN tcp 0 0 localhost.localdomain:smtp localhost.localdomain:42709 TIME_WAIT tcp 0 0 localhost.localdomain:smtp localhost.localdomain:42710 TIME_WAIT tcp 0 0 *:http *:* LISTEN tcp 0 0 *:ssh *:* LISTEN tcp 0 0 *:https *:* LISTEN
Htop 是一款非常先进的交互式和实时Linux过程监控工具。这与Linux top命令非常相似, 但它具有一些丰富的功能,如 用户友好的界面来管理进程, 快捷键, 进程的垂直和水平视图 等等。Htop是第三方工具,不包含在Linux系统中,您需要使用YUM 包管理器工具进行安装 。有关安装的更多信息,请阅读我们的文章。
Iotop 也与顶级命令 和 Htop程序非常相似 ,但它具有记帐功能来监视和显示实时的 磁盘I / O 和 进程。此工具对于查找进程的确切进程和高使用率磁盘读取/写入非常有用。
IoStat 是一个简单的工具,它将收集并显示系统 输入 和 输出 存储设备的统计信息。此工具通常用于跟踪存储设备性能问题,包括设备, 本地磁盘和 远程磁盘 (如 NFS)。
```nginx Linux 2.6.18-238.9.1.el5 (tecmint.com) 09/13/2012
avg-cpu: %user %nice %system %iowait %steal %idle 2.60 3.65 1.04 4.29 0.00 88.42
Device: tps Blkread/s Blkwrtn/s Blkread Blkwrtn cciss/c0d0 17.79 545.80 256.52 855159769 401914750 cciss/c0d0p1 0.00 0.00 0.00 5459 3518 cciss/c0d0p2 16.45 533.97 245.18 836631746 384153384 cciss/c0d0p3 0.63 5.58 3.97 8737650 6215544 cciss/c0d0p4 0.00 0.00 0.00 8 0 cciss/c0d0p5 0.63 3.79 5.03 5936778 7882528 cciss/c0d0p6 0.08 2.46 2.34 3847771 3659776 ```
IPTraf 是一个针对Linux的基于控制台的开放式实时网络(IP LAN)监控工具。它收集各种信息,例如通过网络传输的IP流量监视器,包括TCP标记信息,ICMP详细信息,TCP / UDP流量故障,TCP连接数据包和通过计数。它还收集TCP,UDP,IP,ICMP,非IP,IP校验和错误,接口活动等通用和详细的接口统计信息。
psacct或acct工具对于监视系统中的每个用户活动非常有用。这两个守护进程都在后台运行,并密切关注系统上每个用户的整体活动以及他们正在使用哪些资源。
这些工具对系统管理员来说非常有用,可以跟踪每个用户的活动,比如他们正在做什么,他们发布了哪些命令,他们使用了多少资源,他们在系统上活跃多久等等。
有关命令的安装和示例用法,请阅读有关使用psacct或acct监视用户活动的文章
Monit 是一款免费的开源和基于Web的进程监督工具,可自动监控和管理系统进程,程序,文件,目录,权限,校验和和文件系统。
它监控Apache,MySQL,Mail,FTP,ProFTP,Nginx,SSH等服务。系统状态可以从命令行查看或使用它自己的网络界面。
NetHogs 是一个开源的漂亮的小程序(类似于Linux的 顶级命令),可以在系统上保存每个进程网络活动的选项卡。它还可以跟踪每个程序或应用程序使用的实时网络流量带宽。
iftop 是另一种基于终端的免费开源系统监控实用程序,可显示经过系统网络接口的经常更新的网络带宽利用率(源和目标主机)列表。iftop被考虑用于网络使用,对于CPU使用情况来说,' 最高 '会做什么。iftop是一个“ 顶级 ”家庭工具,用于监控选定的接口并在两台主机之间显示当前的带宽使用情况。
Monitorix 是一个免费的轻量级实用程序,旨在尽可能多地在Linux / Unix 服务器上运行和监视系统和网络资源 。它内置了 HTTP Web服务器,可定期收集系统和网络信息并以图形形式显示。它监视系统负载平均和使用情况, 内存分配, 磁盘驱动器健康状况, 系统服务, 网络端口, 邮件统计信息 (Sendmail, Postfix, Dovecot等), MySQL统计信息 还有很多。它旨在监控整个系统的性能并帮助检测故障,瓶颈和异常活动等。
Arpwatch 是一种旨在监视 Linux网络上以太网网络流量的地址解析(MAC 和 IP地址更改)的 程序。它不断监视以太网流量并生成IP 和 MAC 地址对更改的日志以及 网络上的时间戳。它还具有在添加或更改配对时向管理员发送电子邮件警报的功能。它在检测 网络中的ARP欺骗时非常有用 。
Suricata 是一款 面向Linux, FreeBSD 和 Windows的高性能开源 网络安全 和 入侵检测和 预防监控系统。 它由非盈利性基金会OISF (开放信息安全基金会)设计和拥有 。
VnStat PHP 是一个基于网络的前端应用程序,用于最流行的网络工具“ vnstat ”。 VnStat PHP 以良好的图形模式监视网络流量使用情况。它 以小时, 每日, 每月 和 全部总结 报告的形式显示总的 IN 和 OUT网络流量使用情况 。
Nagios是领先的开源强大监控系统,使网络/系统管理员能够在影响主要业务流程之前识别并解决与服务器相关的问题。借助Nagios系统,管理员可以在单个窗口上监控远程Linux,Windows,交换机,路由器和打印机。它显示了严重警告,并指示您的网络/服务器中是否出现问题,从而间接地帮助您在发生修复过程之前开始修复过程。