Apache 定期超时,SIGTERM

Apache 定期超时,SIGTERM

我在一家专业托管公司运行了自己的虚拟机服务器半年了。几个月来我没有做过任何更改。

几天前,我的第三方网站监控系统突然给我发邮件,说我的所有网站都瘫痪了。我重启了 Apache,它又恢复了运行,但第二天又发生了同样的事情。现在我已经连续三天遇到这种情况了。至少在过去两天里,这种情况发生在我所在的时间早上 7 点到 8 点之间。

我在 Apache 错误日志(/var/log/apache2/error_log)中得到的全部内容是:

[Mon May 27 00:33:17.764703 2019] [core:notice] [pid 5405] AH00094: Command line: '/usr/sbin/apache2'
[Mon May 27 00:33:17.927290 2019] [mpm_prefork:notice] [pid 5405] AH00169: caught SIGTERM, shutting down
[Mon May 27 00:52:55.866838 2019] [mpm_prefork:notice] [pid 848] AH00163: Apache/2.4.25 (Debian) OpenSSL/1.0.2r configured -- resuming normal operations
[Mon May 27 00:52:55.879748 2019] [core:notice] [pid 848] AH00094: Command line: '/usr/sbin/apache2'
[Mon May 27 12:47:22.759575 2019] [mpm_prefork:notice] [pid 848] AH00169: caught SIGTERM, shutting down
[Mon May 27 12:47:28.041888 2019] [mpm_prefork:notice] [pid 5572] AH00163: Apache/2.4.25 (Debian) OpenSSL/1.0.2r configured -- resuming normal operations
[Mon May 27 12:47:28.041936 2019] [core:notice] [pid 5572] AH00094: Command line: '/usr/sbin/apache2'
[Mon May 27 12:47:28.212269 2019] [mpm_prefork:notice] [pid 5572] AH00169: caught SIGTERM, shutting down
[Mon May 27 15:54:59.721916 2019] [mpm_prefork:notice] [pid 6550] AH00163: Apache/2.4.25 (Debian) OpenSSL/1.0.2r configured -- resuming normal operations
[Mon May 27 15:54:59.721963 2019] [core:notice] [pid 6550] AH00094: Command line: '/usr/sbin/apache2'

我认为,当系统崩溃时,它是倒数第三行。看起来 Apache 关闭了,但没有重新启动。

我对 Linux 的了解足以应付危险,但我不知道该去哪里寻找。

您建议检查哪些其他日志文件,我还可以采取哪些其他故障排除步骤,例如添加额外的日志记录等?

它运行在 Debian 9 上,没有其他人可以访问服务器上的任何内容。它运行 Apache2、MySQL 和 PHP7。

谢谢!

答案1

向 httpd 发送 SIGTERM 意味着现在停止. 找出发送此信号的东西。

杀死是一个简单的脚本来执行此操作。但是,BPF 在 Debian 9 上不可用。(有时挖掘bcc 仓库揭示了其他预 BPF 实现,但并非总是如此。)

或者,您可以设置 auditd 来记录终止系统调用。

在 crontabs 和其他任何地方寻找反模式:

  • 停止 httpd 但不启动它的脚本
  • 错误地命中 httpd 的脚本中的 kill、killall、fuser 命令

相关内容