通常,当我发现自己站在 unix/linux(或任何其他 *nix 变体)控制台前并必须快速诊断服务器的状况时,我只是记不住应该检查的所有内容。
我将尝试 vmstat、一些 ps/top 操作、读取 procinfo 和一些日志文件(boot 和 sys),但我真正想要的是一种快速查看 CPU、硬盘和物理内存状况的方法。
我似乎知道很多内容已经存在于 vmstat 中,但不知何故,我怀念服务器 2008 的便捷,在那里你可以找到一个很好的资源监视器,而任务管理器本身也可以快速查看系统状况(更不用说服务器 2008 的监控图形工具了)。
有什么建议吗,或者我只是因为 vmstat 真的是圣杯而感到无能为力?
编辑:非常感谢大家的反馈。我应该补充一点,我实际上并不是在谈论持续监控(nagios 是一个很好的选择),而是偶尔走到服务器(不一定是我的)进行快速系统状况查找(有时我恰好在某个地方,然后砰的一声,嘿,你能过来检查一下吗?)
坚持使用一些实用脚本确实很好,已经有一个适用于 Windows 机器的 sysinternals 应用程序。Htop 也很酷,尽管我不认为能够随时随地安装它。
答案1
顶部是一个很好的工具(如果安装了),但我喜欢的另一个可以快速查看是否有问题的工具是消息。这样您就可以知道服务器是否遇到了非常严重的问题(网卡断开、磁盘故障、内存故障等)。
答案2
答案3
答案4
当我登录到报告了问题的主机时,我通常会首先运行 top。它为您提供了 cpu、内存、运行队列长度的良好概览,然后我可以从中了解下一步要调查的内容。如果 iowait 已启动,我会查看 iostat,如果内存不足,我会查看 ps,看看哪些进程正在使用内存(或者只是按内存对 top 进行排序)等...
unix 的优点在于您不必接受所提供的工具。编写一个脚本来显示您想要的信息。
iostat vmstat top ps(记住您可以自定义 ps 的输出字段 - 使用 gnu ps 时相当困难)df dmesg /var/log/messages sar 您可以使用 syslogNG 将所有关键日志消息过滤到单独的日志文件中。
在 Linux 上值得检查的一个不寻常的事情是 /proc/mounts。有时文件系统变为只读,但 mount 不会显示,但 /proc/mounts 会显示。我在虚拟机和 FC 存储上都看到过这种情况(例如,路径以奇怪的方式消失)。