谈到系统性能监控和分析工具,就不得不提 Brendan Gregg 的系统分析,他的图非常系统化的展示了应用程式,系统呼叫,核心,协议栈,硬体等各块之间的互动。 有兴趣的朋友可以根据这张图里的命令进行组合进行系统问题的监控,分析,定位。
1. top — Linux 系统程序监控
top 命令是效能监控程式,它可以在很多 Linux/Unix 版本下使用,并且它也是 Linux 系统管理员经常使用的监控系统性能的工具。 Top 命令可以定期显示所有正在执行和实际执行并且更新到列表中,它显示出CPU 的使用、记忆体的使用、交换记忆体、快取大小、缓冲区大小、过程控制、使用者和更多命令 。 它也会显示记忆体和 CPU 使用率过高的正在执行的程序。 当我们对 Linux 系统需要去监控和采取正确的行动时,top 命令对于系统管理员是非常有用的。 让我们看下 top 命令的实际操作。
2. vmstat — 虚拟记忆体统计
vmstat 命令是用于显示虚拟记忆体、核心执行绪、磁碟、系统程序、I/O 模组、中断、CPU 活跃状态等更多资讯。 在预设的情况下,Linux 系统是没有 vmstat 这个命令的,如果你要使用它,必须安装一个包名叫 sysstat 的程式包。
3. lsof — 开启档案列表
lsof 命令对于很多 Linux/Unix 系统都可以使用,主要以列表的形式显示开启的档案和程序。
开启的档案主要包括磁碟档案、网络套接字、管道、装置和程序。 使用这个命令的主要原因是一个一个盘不能解除安装并且显示档案正在使用或者开启的错误资讯。 这个命令很容易看出哪些档案正在使用。 这个命令最常用的格式:
# lsof
4. tcpdump — 网络资料包分析器
tcpdump 是一种使用最广泛的命令列网络资料包分析器或资料包嗅探程式,主要用于捕获和过滤 TCP/IP 包收到或者转移在一个网络的特定借口资讯。 它也提供了一个选项引数去储存将捕获的包在一个档案中用于以后分析使用,tcpdump 几乎在所有的 Linux 版本中都是可用的。
# tcpdump -i eth0
5. netstat — 网络统计
netstat 命令是一个监控网络资料包传入和传出的统计介面的命令列工具。 它对于许多系统管理员去监控网络效能和解决网络相关问题是一个非常有用的工具。
# netstat -a | more
6. htop — 程序监控
htop 是一个更加先进的互动式的实时监控工具。 htop 与 top 命令非常相似,但是他有一些非常丰富的功能,如使用者友好介面管理程序、快捷键、横向和纵向程序等更多的。 htop 是一个第三方工具并不包括在 Linux 系统中,需要使用包管理工具进行安装。
# htop
7. iotop — 监控 Linux 磁碟 I/O
iotop 也是和 top 和 htop 命令相似,但是它会有一个报告功能去监控和显示实时的磁碟 I/O 输入和输出和程式程序。 这个工具对于查询精确的高的磁碟读/写过程是非常有用的。
# iotop
8. iostat — 输入/输出统计
iostat 是收集和展示系统输入和输出储存装置统计的简单工具。 这个工具通常用于查询储存装置效能问题,包括装置、本地磁碟、例如 NFS 远端磁碟。
# iostat
9. IPTraf —实时IP区域网监控
IPTraf 是一个基于开源的 Linux 系统实时网络(IP 网络)监测的工具。 它能收集到各种各样的资讯,如通过网络对 IP 流量监测,包括 TCP 标志资讯、ICMP 详细细节、TCP/UDP 流量故障、TCP 连线的资料包和拜恩计数。 并且它还收集 TCP,UDP,ICMP,IP,非 IP,IP 校验错误,介面活性等一般资讯和详细资讯的介面统计资料。
10. Psacct 或者 Acct — 监视使用者活动
Psacct 或者 Acct 是用于监测每个使用者对系统的活跃状态的一个非常有用的工具。 在后台有两个守护程序在执行,一个是密切关注系统上每个使用者的整体活动,另一个程序关注有哪些资源被它们消耗。
这个工具对于系统管理员是非常有用的去跟踪每个使用者的活动,可以知道使用者正在做什么,发出了什么样的命令,占用了多少资源,多长时间活跃在系统上。
11. Monit — 程式和服务监测
这是一个免费的开源的基于 web 程式的自动监控和管理系统程序、程式、档案、目录、许可权、校验档案系统。 它监控的服务包括 Apache、MYSQL、Mail、FTP、Nginx 等等。 系统状态是可以从命令列或者自己的网络介面来检视。
12. NetHogs — 监视每个程序的网络频宽
NetHogs 是一个开源的漂亮的小程式(类似于 Linux 上面的 top 命令),在您的系统上保持每个程序的网络活动状态。 它也保持了一个程式或者应用实时的网络流量频宽使用情况。
13. iftop — 网络频宽监控
iftop 是另一个基于终端的开源的系统监测工具,主要功能是通过你自己系统上的网络介面显示一个经常更新的网络频宽利用率的列表(即源主机和目的主机)。 iftop 监控的是网络的使用情况,而 top 监控的是 CPU 的使用情况。 iftop 监视一个选定的介面并且显示两台主机之间当前宽频的使用情况。
14. Monitorix — 系统和网络监控
Monitorix 是一个尽可能多的在 Linux/Unix 上一个轻量级监控工具,主要设计是监控正在执行的系统和网络资源。 它有一个内建的 HTTP web 服务去定期收集系统和网络资讯并显示成图片。 它可以监视系统的平均负载使用、记忆体的分配、磁碟驱动器、系统服务、网络埠、邮件统计(Sendmail、Postfix、Dovecot 等等)、MYSQL 资料库等等更多的服务。 它的主要目的是监控整个系统的效能,并且有助于监测故障、瓶颈、异常活动等状况。
15. Arpwatch — 乙太网活动监控器
Arpwatch是一种用来监视 Linux 网络的乙太网的网络流量的地址解析(网络地址转换)的一个程式。 它一直随着网络时间戳的变化监视乙太网流量和产生日志的 IP 和 MAC 地址对。 当一个 IP 地址或 MAC 地址对发生变化的时候,它会发送电子邮件通知管理员。
并且它在检测 ARP 攻击是非常有用的。
16. Suricata — 网络安全监控
Suricata 是一个高效能的开源的网络安全与入侵检测与预防 Linux、FreeBSD、Windows 等作业系统的监控工具。 它是一个非营利基金 OISF(Open Information Security Foundation)拥有的。
17. VnStat PHP — 监测网络频宽
VnStat PHP 是一个 web 前端应用最流行的社交工具叫“vnstat”。 VnStat PHP 使用了很好的图形模式监控网络流量的使用情况。 它显示了每时、每天、每月的总结报告中的网络流量使用情况。
18. Nagios — 网络/伺服器监控
Nagios 是一个领先的开源的强大的监控系统,网络/系统管理员在他们影响主要业务流程之前识别和解决伺服器相关的问题。 Nagios 可以监控远端 Linux、Windows、开关、单视窗的路由器和印表机。 它能显示你的网络和伺服器关键的告警,有利于在错误反生之前帮助你解决问题。
19. Nmon — 监控Linux系统性能
Nmon(即奈吉尔效能监视器)工具用来监视 Linux 系统的所有资源包括:CPU、记忆体、磁碟使用率、网络上的程序、NFS、核心等等。 这个工具有两个模式:即线上模式和捕捉模式。 线上模式适用于实时监控,捕捉模式用于储存输出为 CSV 格式后的处理。
20. Collectl — 一体化效能检测工具
Collectl 是另一个功能强大的基于命令列的监控工具,它可用于收集有关系统资源的资讯,包括 CPU 使用率、记忆体、网络、节点、程序、NFS、TCP 套接等等。
21.tsar- Linux程序和服务监控工具
tsar是淘宝自己开发的一个采集工具,主要用来收集伺服器的系统资讯(如cpu,io,mem,tcp等),以及应用资料(如squid haproxy nginx等)。 收集到的资料储存在磁碟上,可以随时查询历史资讯,输出方式灵活多样,另外支援将资料储存到MySQL中,也可以将资料传送到nagios报警伺服器。 tsar在展示资料时,可以指定模组,并且可以对多条资讯的资料进行merge输出,带–live引数可以输出秒级的实时资讯。
22. free
free命令报告记忆体资讯
23. mpstat
mpstat检视多执行绪处理情况
24. sar – sar 1
sar实用工具提供监视每一事件的能力。 它至少有15个单独的报告类别,包括CPU、磁碟、网络、程序、交换区等等。
免责声明:
1.本影像档案皆从网上搜集转载,不承担任何技术及版权问题。
2.如有下载连结仅供宽频测试研究用途,请下载后在24小时内删除,请勿用于商业。
3.若侵犯了您的合法权益,请来信通知我们,我们会及时删除,给您带来的不便,深表歉意。