我应该采取什么步骤来确定 Linux 服务器故障的根本原因?

我应该采取什么步骤来确定 Linux 服务器故障的根本原因?

如果这个问题之前已经得到解决,我很抱歉,我假设它已经得到解决,但是经过半个小时的搜索,我没有找到任何东西。

无论如何,对于这个问题:

我是一名 Windows 用户,也是一名自学成才的程序员,因此我对 Linux 还很陌生,但我比 Windows 更喜欢它。我们有一个小型 Wordpress 安装,它似乎会随机失败。当我安装失败时,我无法通过 SSH 登录,我唯一真正的选择是从 Rackspace Cloud 管理员进行硬重启。它总是能解决问题。

但我想知道我应该做什么来确定问题到底是什么原因造成的。这是一个简单的例子,但我们计划在明年左右在 Linux 上安装更多应用程序,我想达到这样的程度,即我可以用更科学的方式来处理问题,而不是“拔掉电源再插上电源”。

我应该从哪里开始?我愿意阅读书籍、博客文章、服务器故障问题、视频、研讨会、大学课程等任何内容。

谢谢!

答案1

这是一个通用的配方,它不仅适用于 Linux:

识别问题,顺序如下:

  1. 远程登录问题:
    1. 网络问题
    2. 远程登录守护进程问题(有时使用 ssh 登录可能需要几分钟)
  2. 负载问题 ( uptime;df -h;free -m)
  3. 阅读日志(它们位于/var/log/。系统范围的日志位于/var/log/messages/var/log/syslog对于您的情况,您可能会对 感兴趣/var/log/apache

如果您硬重启了服务器,请仔细记下重启时间。这样您就可以检查该时间之前的日志。

答案2

首先收集统计数据,看看挂起和系统活动之间是否有任何关联。例如,您可以使用:

  • 特区- 纯文本统计
  • 穆宁- 轻松获取时间图
  • 仙人掌- 像 munin 和更多,对你来说可能太多了

如果没有这些数据,您几乎就是盲目的,当您想要做一些容量规划或者只是想看看您的系统行为中是否存在任何明显的模式/异常时,它们也很方便。

从监控开始[使用 munin 你将获得大多数‘开箱即用’的功能]:

  • 平均负载
  • CPU 使用率/io 等待
  • 交换活动
  • 处理的 http 请求数
  • 网络流量
  • 每个分区上的可用磁盘空间
  • 对默认网关/互联网中某个参考点的 ping 响应
  • [my]sql 查询的数量

我最好的猜测是,您的机器正在交换数据失败/因磁盘访问速度慢而卡住,但我也可能错了。

诸如系统完全挂起之类的事情可能不会在您的日志中留下太多痕迹,但在其他情况下 - 检查系统日志或特定应用程序日志的内容总是值得的 - 也许您在某个地方用完了空间?也许是出现了段错误?

相关内容