Linux工程师必备的88个监控工具

    本文是一篇译文,原文是: 。

    Linux性能监控及调试并不是个容易事,在 合适的时机 使用 正确的工具 却可事半功倍!

    以下是史上整理最全的 Linux 监控工具集:

    top

    这是一个预装在很多 Unix 系统的小工具。当你想要查看在系统中运行的进程或者线程时, top 就是一个不错的工具。你可以用不同的方式对这些进程进行排序,默认是以 CPU 使用率进行排序的。

    2. htop

    htop

    htop 实质上是一个增强版的 top 。用它对进程进行排序更为容易。界面看上去也更容易理解,并且已经内置了很多通用操作。另外,它也是完全交互式的。

    3. atop

    top 和 类似, atop 也可以用来监控系统进程。不同的是, atop 可以按天记录进程日志,以便长期分析。

    4. apachetop

    用于监视 apache 网络服务器的整体性能。它主要是基于 mytopapachetop 展示服务器当前读写数以及总处理请求数,非常有用。

    5. ftptop

    ftptop 用于监控 FTP 服务器,提供的信息非常丰富:当前 FTP连接总数会话总数 ( session )、 上传下载总数 以及 登录用户 等等。

    6. mytop

    mytop

    mytop 是一个用于监控 MySQL 线程以及性能的小工具。它可以让你实时查看数据库正在处理哪些请求。

    7. powertop

    powertop

    powertop 可以帮你诊断与 电源消耗 以及 电源管理 相关的问题。powertop 也可以帮你 试验电源管理设置 ,以达到最优。按制表键( Tab )可以切换标签页。

    8. iotop

    iotop

    iotop 检查 I/O 使用情况并以一种类似 top 的界面展示。它按列展示读和写的速率,每行代表一个进程。它也展示了进程花在内存页换入( swapping in )以及等待 I/O 时间的百分比。

    桌面监控

    9. ntopng

    ntopng

    ntopngntop 的升级版,通过浏览器提供了一个用于网络监控的图形用户界面。它可以胜任的工作包括但不局限于:主机地理定位;采集网络流量;显示 IP 流量分布并分析。

    10. iftop

    iftop

    iftop 命令与 top 类似,但与 top 主要用于检查 CPU 使用率不同, 监听 选定网卡网络流量 并以表格的形式展示当前使用量。因此,它可以轻松回答像“为什么我的网络这么慢呢?”这样的问题。

    11. jnettop

    ../../../_images/defddeac0190c2e492ceb5f9a25fcf26.jpgjnettop

    也用于监测网络流量,但比 iftop 更形象。另外,它还支持自定义文本输出,以及可用于更深入分析的机器友好模式。

    12. bandwidthd

    bandwidthd

    追踪 TCP/IP 网络子网的使用情况,并通过 png 图片构建一个形象化 HTML 页面在浏览器中展示。它由数据库系统驱动,支持搜索、过滤、多传感器以及定制化报告。

    14. ethtool

    ../../../_images/91195036db50abff7ec2a354ea1d12da.jpgethtool

    命令用于展示和修改 网卡 参数。它也可以用来诊断 设备,以获取更多统计数据。

    15. NetHogs

    NetHogs

    对网络流量安装协议或者子网进行分解,然后按进程进行分组。因此,当网络流量猛增时,你可以使用 NetHogs 揪出肇事进程。

    16. iptraf

    ../../../_images/2fb7f5e885a4b03c6f57f7763590be44.jpgiptraf

    iptraf 收集不少指标: TCP接数据包以及字节计数接口统计活动指标TCP/IP通信故障 以及 站内数据包及字节计数 等等。

    17. ngrep

    ngrep

    ngrep 是为网络层设计的 grep 。它依赖 pcap ,支持通过 正则表达式十六进制表达式 来匹配数据包。

    18. MRTG

    MRTG

    MRTG 最初被开发来监控路由流量,但现在能够监控网络相关的东西。它每五分钟采集一次数据,然后生成一个 HTML 页面。它还具备发送邮件告警的能力。

    19. bmon

    bmon

    bmon 能够监控并帮你调试网络。它捕获网络相关统计数据,并以友好的方式进行展示。你还可以通过 curses 或脚本与 bmon 进行交互。

    20. traceroute

    traceroute 是一个内置工具,用于展示路由以及测量数据包经过网络的延迟。

    21. IPTState

    IPTState 可以让你观察流量通过 iptables 后去往何处,并根据你给定的条件进行排序。该工具还支持从 iptables 表中删除状态信息。

    22. darkstat

    ../../../_images/7e1c748d78d7044b65536009649e0908.jpgtraceroute

    采集网络流量并计算用量统计。统计报告由图表组成,通过一个简单的 HTTP 服务器对外提供。

    23. vnStat

    vnStat

    也是一个 网络流量监控 工具。它直接使用内核提供的统计数据,占用系统资源更少。由于统计数据经过 持久化 ,机器重启后依旧可用。另外,有艺术气质的系统管理员可以使用它提供的 颜色选项

    24. netstat

    ../../../_images/0aca727c7d65ea25b4886e10c84205c5.jpgnetstat

    netstat 是一个系统内置工具,可以查询 TCP 网络连接(套接字)、路由表以及网卡信息。它经常被用于排查网络问题。

    netstat 是一个古老的工具,现在更推荐使用 ss 命令。ssnetstat 更能干,显示信息更全面,更重要的是速度更快。举个例子,运行 可以输出一个 汇总统计

    26. nmap

    nmap

    nmap 是一个 扫描工具 ,用于扫描服务器端口,探测操作系统类型。你也可以将 nmap 用于 SQL注入漏洞 ( SQL injection vulnerabilities )、 网络发现 ( network discovery )以其他 渗透测试 ( penetration testing )场景。

    27. mtr

    mtr

    mtrtraceroute 以及 ping 的功能组合起来,形成一个更强大的网络诊断工具。使用 mtr 时,它会限制每个数据包的跳数( TTL ),然后根据过期回包判断数据包达到的位置。它不断重复这个探测过程,每秒一次。

    28. tcpdump

    tcpdump

    tcpdump 是一个 抓包工具 ,根据你提供的 条件表达式 ( expression )抓取匹配的 网络数据包 ( packet )并展示。你也可以将数据保存下来,做进一步分析。

    29. Justniffer

    Justniffer

    Justniffer 是一个 TCP嗅探器 。使用该嗅探器,你可以选择嗅探 低层数据 ( low-level data )还是 高层数据 ( high level data )。你也可以生成日志,格式可以自定义。例如,你可以模仿 apache 的访问日志( access log )格式。

    30. Server Density

    Server Density

    31. OpenNMS

    ../../../_images/72e94be22fff748eb1cbd86fbca0fd7d.jpgOpenNMS

    主要有四个功能: 事件管理和通知发现和配置服务监控 以及 数据采集 。它支持定制化以适应不同的网络环境。

    32. SysUsage

    SysUsage

    通过 sar 以及其他系统命令持续对系统进行监控。它允许你设置告警阈值,指标超过设定值时便发送告警信息。SysUsage 本身可以部署在中央服务器,所有采集到的统计数据也存在那。它提供一个 Web 界面,可以查看到所有的统计数据。

    33. brainypdm

    brainypdm

    brainypdm 是一个数据管理和监控工具,可以从 或者其他通用数据源收集数据并制作图表。它是跨平台的,基于 Web 的图表也支持自定义。

    34. PCP

    PCP

    Performance Co-Pilot 的简写。它可以非常高效地从多台主机收集指标数据。它提供一个编写插件的框架,借此你可以写插件采集你认为重要的指标。你可以通过 Web 界面或者一个 GUI 界面查看数据图表。监控大型系统, PCP 是一个不错的选择。

    35. KSysGuard

    kdesystemguard

    KSysGuard 这个工具既是 系统监视器 ,又是 任务管理器 。通过 KSysGuard 你可以在一个工作表里查询多台服务器的系统指标,也可以杀死或者启动一个服务器进程。

    36. Munin

    Munin

    Munin 是一个 网络监控系统监控 工具,可以为指标设置告警阈值。它使用 生成图表,并提供一个 Web 界面来展示图表。它主打插件扩展能力,提供了不少可用插件。

    37. Nagios

    ../../../_images/94c68cc7e13b1140c6bd8edd3d23980d.jpgNagios

    也是一个 系统和网络监控 工具,可以支撑监控大量服务器。它支持在发现异常时发送告警信息,也提供了非常丰富的插件。

    38. Zenoss

    Zenoss

    支持对 系统网络 指标进行监控,而且提供了 Web 界面。它还支持 网络资源 以及 网络配置变更 自动发现。它也支持告警功能,而且兼容 Nagios 插件。

    39. Cacti

    Cacti

    Cacti 是一个网络画图工具,使用 RRDtool 做数据存储。它允许用户定期拉取服务指标,并以图表展示。用户可以通过 shell 脚本来扩展 Cacti ,实现对指定资源的监控。

    40. Zabbix

    是一个开源的 基础设施监控 ( infrastructure monitoring )解决方案。Zabbix 核心部分是用 C 实现的,前端则是 PHP ,数据存储部分则可以对接大部分现有数据库。此外, agent 不是必要的。如果你不想安装 agent ,那么 Zabbix 应该一个不错的选择。

    41. nmon

    nmon

    43. Glances

    Glances

    44. saidar

    saidar

    45. RRDtool

    rrdtool

    46. monit

    monit

    47. Linux进程管理器

    Linux进程管理器

    Linux进程管理器OSX 活动监视器以及 Windows 进程管理器类似。它的设计目标是,做比 topps 更好用的工具。通过它,你可以查看到每个系统进程,以及它们占用了多少内存和 CPU 资源。

    48. df

    df

    df ( disk free 的缩写),是一个用于 查看文件系统使用量 的内置系统工具( Unix 系统 )。

    ../../../_images/402d1a1f8df5bd4866f6da94f95be262.jpgdiscus

    51. Dstat

    Dstat

    55. vmstat

    ../../../_images/7f77db054b15521a290a11a148980514.jpgvmstat

    57. mpstat

    mpstat

    58. pmap

    ../../../_images/2fb760e717bab336d56b2a529e4314a2.jpgpmap

    59. ps

    ps

    60. sar

    ../../../_images/e26348533d48fe0984e60d7499bc73b6.jpgsar

    61. collectl

    collectl

    62. iostat

    ../../../_images/3060c554c3d49b95b199b5f1c5f44de8.jpgiostat

    63. free

    free

    64. proc伪文件系统

    ../../../_images/f68a27629e0365509b03d6ab0e3d7d59.jpgproc伪文件系统

    66. Gnome系统监视器

    Gnome系统监视器

    日志监控

    67. GoAccess

    ../../../_images/bc237c25d604515d06b57d1b9a9f29d8.jpgGoAccess

    69. Swatch

    Swatch

    70. MultiTail

    ../../../_images/f677a8a29a205803025b9a57c8b258b5.jpgMultiTail

    73. strace

    strace

    74. DTrace

    ../../../_images/e0cc9c09300697628c95cd974d8f16c7.jpgDTrace

    75. webmin

    webmin

    76. stat

    ../../../_images/70114a1a5f6f3a059995dd056cfe41b5.jpgstat

    77. ifconfig

    ifconfig

    78. unlimit

    ../../../_images/790731a08b2e55404b767c9264767980.jpgunlimit

    79. cpulimit

    cpulimit

    80. lshw

    ../../../_images/0898e9597464f534e5a79c7fdfb61b9e.jpglshw

    lsof

    下一步

    订阅更新,获取更多学习资料,请关注我们的 微信公众号

    小菜学编程