我的 Redhat 服务器大约每三周就会崩溃一次,时间大约在周日早上 4:15 左右。(当然,前两次都是周日,最近两次都是周四早上 4:15 左右)查看日志(mysql、httpd、消息)找不到原因。它们似乎就停止了。
我运行了一个小脚本,每 15 分钟读取一次内存读数,此时它也会停止(读数正常)。
服务器位于提供商的远程位置,因此我只能通过 Web 访问它。我使用 Plesk。
似乎是一个设定的任务或某件事导致了这个问题。我在 crontab 中看不到任何内容。
所以我的问题是...有没有其他人遇到过这种情况,可以提供建议?没有的话。
有人知道有什么方法可以获得比消息文件提供的更详细的日志记录吗?我在考虑一个黑匣子式的记录程序,或者可能是一个简单的东西,比如某个地方的选项,可以增加消息日志中的报告级别。
谢谢
答案1
这是安排 cron.daily 作业的时间,因此我将首先查看 /etc/cron.daily 或每周或每月
你可以安装 atop,它将每 10 分钟记录一次进程快照
或者,您可以安装 psacct 并使用 accton 和 lastcomm 来查看正在执行的内容
开启审计也是一个选项,请参阅 auditd(8)
答案2
您可以启用核心转储,当服务器崩溃时,它会将系统内存复制到文件中。
下一个问题是如何处理核心转储文件...如果您周围有人了解 gdb,他们也许能够做些什么...或者您可能能够使用“strings”命令从核心转储文件转储出所有文本,也许您就能找到一些东西。
答案3
登录到连接良好的另一个框,运行 screen,通过 ssh 进入服务器,并在单独的 screen 窗口上跟踪 kern.log、daemon.log、syslog 和消息。(control-A、c 创建新窗口,Control-A、D 分离,screen -r 恢复)
当服务器再次锁定时,您应该在屏幕会话中拥有日志的尾部,即使在机器挂起时它们还没有被正确地刷新到磁盘。
如果你怀疑出现内核崩溃或错误
内核.panic=5 内核.panic_on_oops=5
在您的 sysctl.conf 或等效文件中将等待 5 秒钟,可能允许驱动器刷新,然后重新启动。