Linux工程师必备的88个监控工具
注解
本文是一篇译文,原文是: 80 Linux Monitoring Tools 。
Linux性能监控及调试并不是个容易事,在 合适的时机 使用 正确的工具 却可事半功倍!
以下是史上整理最全的 Linux 监控工具集:
命令行工具
1. top
这是一个预装在很多 Unix 系统的小工具。 当你想要查看在系统中运行的进程或者线程时, top 就是一个不错的工具。 你可以用不同的方式对这些进程进行排序,默认是以 CPU 使用率进行排序的。
4. apachetop
apachetop 用于监视 apache 网络服务器的整体性能。 它主要是基于 mytop 。 apachetop 展示服务器当前读写数以及总处理请求数,非常有用。
5. ftptop
ftptop 用于监控 FTP 服务器,提供的信息非常丰富: 当前 FTP 连接总数 、 会话总数 ( session )、 上传下载总数 以及 登录用户 等等。
7. powertop
powertop 可以帮你诊断与 电源消耗 以及 电源管理 相关的问题。 powertop 也可以帮你 试验电源管理设置 ,以达到最优。 按制表键( Tab )可以切换标签页。
8. iotop
iotop 检查 I/O 使用情况并以一种类似 top 的界面展示。 它按列展示读和写的速率,每行代表一个进程。 它也展示了进程花在内存页换入( swapping in )以及等待 I/O 时间的百分比。
桌面监控
10. iftop
iftop 命令与 top 类似,但与 top 主要用于检查 CPU 使用率不同, iftop 监听 选定网卡网络流量 并以表格的形式展示当前使用量。 因此,它可以轻松回答像“为什么我的网络这么慢呢?”这样的问题。
12. bandwidthd
bandwidthd 追踪 TCP/IP 网络子网的使用情况,并通过 png 图片构建一个形象化 HTML 页面在浏览器中展示。 它由数据库系统驱动,支持搜索、过滤、多传感器以及定制化报告。
21. IPTState
IPTState 可以让你观察流量通过 iptables 后去往何处,并根据你给定的条件进行排序。 该工具还支持从 iptables 表中删除状态信息。
23. vnStat
vnStat 也是一个 网络流量监控 工具。 它直接使用内核提供的统计数据,占用系统资源更少。 由于统计数据经过 持久化 ,机器重启后依旧可用。 另外,有艺术气质的系统管理员可以使用它提供的 颜色选项 。
25. ss
netstat 是一个古老的工具,现在更推荐使用 ss 命令。 ss 比 netstat 更能干,显示信息更全面,更重要的是速度更快。 举个例子,运行 ss -s
可以输出一个 汇总统计 。
26. nmap
nmap 是一个 扫描工具 ,用于扫描服务器端口,探测操作系统类型。 你也可以将 nmap 用于 SQL注入漏洞 ( SQL injection vulnerabilities )、 网络发现 ( network discovery )以其他 渗透测试 ( penetration testing )场景。
27. mtr
mtr 将 traceroute 以及 ping 的功能组合起来,形成一个更强大的网络诊断工具。 使用 mtr 时,它会限制每个数据包的跳数( TTL ),然后根据过期回包判断数据包达到的位置。 它不断重复这个探测过程,每秒一次。
28. tcpdump
tcpdump 是一个 抓包工具 ,根据你提供的 条件表达式 ( expression )抓取匹配的 网络数据包 ( packet )并展示。 你也可以将数据保存下来,做进一步分析。
29. Justniffer
Justniffer 是一个 TCP 包 嗅探器 。 使用该嗅探器,你可以选择嗅探 低层数据 ( low-level data )还是 高层数据 ( high level data )。 你也可以生成日志,格式可以自定义。 例如,你可以模仿 apache 的访问日志( access log )格式。
基础设施监控
32. SysUsage
SysUsage 通过 sar 以及其他系统命令持续对系统进行监控。 它允许你设置告警阈值,指标超过设定值时便发送告警信息。 SysUsage 本身可以部署在中央服务器,所有采集到的统计数据也存在那。 它提供一个 Web 界面,可以查看到所有的统计数据。
34. PCP
PCP 是 Performance Co-Pilot 的简写。 它可以非常高效地从多台主机收集指标数据。 它提供一个编写插件的框架,借此你可以写插件采集你认为重要的指标。 你可以通过 Web 界面或者一个 GUI 界面查看数据图表。 监控大型系统, PCP 是一个不错的选择。
35. KSysGuard
KSysGuard 这个工具既是 系统监视器 ,又是 任务管理器 。 通过 KSysGuard 你可以在一个工作表里查询多台服务器的系统指标,也可以杀死或者启动一个服务器进程。
36. Munin
Munin 是一个 网络监控 和 系统监控 工具,可以为指标设置告警阈值。 它使用 RRDtool 生成图表,并提供一个 Web 界面来展示图表。 它主打插件扩展能力,提供了不少可用插件。
38. Zenoss
Zenoss 支持对 系统 和 网络 指标进行监控,而且提供了 Web 界面。 它还支持 网络资源 以及 网络配置变更 自动发现。 它也支持告警功能,而且兼容 Nagios 插件。
39. Cacti
Cacti 是一个网络画图工具,使用 RRDtool 做数据存储。 它允许用户定期拉取服务指标,并以图表展示。 用户可以通过 shell 脚本来扩展 Cacti ,实现对指定资源的监控。
40. Zabbix
Zabbix 是一个开源的 基础设施监控 ( infrastructure monitoring )解决方案。 Zabbix 核心部分是用 C 实现的,前端则是 PHP ,数据存储部分则可以对接大部分现有数据库。 此外, agent 不是必要的。 如果你不想安装 agent ,那么 Zabbix 应该一个不错的选择。
47. Linux进程管理器
Linux进程管理器 与 OSX 活动监视器以及 Windows 进程管理器类似。 它的设计目标是,做比 top 或 ps 更好用的工具。 通过它,你可以查看到每个系统进程,以及它们占用了多少内存和 CPU 资源。
网络监控
下一步
订阅更新,获取更多学习资料,请关注我们的 微信公众号 :