Como solucionar problemas do Apache httpd que ficou em silêncio?

4

Eu tive um dos nossos servidores httpd Apache "die" de uma maneira estranha durante a noite. Eu olhei todos os logs relevantes e não consigo encontrar nada fora do comum.

Isso aconteceu em nosso ambiente de desenvolvimento, felizmente, mas estou bastante preocupado porque nosso ambiente de desenvolvimento quase espelha de maneira idêntica o nosso ambiente de produção.

Alguém pode me dizer o que poderia ter acontecido aqui?

Sintomas & Etapas de solução de problemas

  • O Apache httpd não respondia completamente
  • Carga média de 0,0 no quadro
  • Sem anomalias no registro
  • ps aux | grep httpd parecia normal
  • iptables -L mostrou a porta 80 aberta
  • O SELinux está habilitado e configurado corretamente: nenhum AVC logado
  • Nenhuma alteração de configuração foi feita em nenhum componente do sistema, independentemente de quão insignificante
  • O httpd Apache foi recarregado em 17:11:25 tempo do servidor para limpar o cache APC (php)
    • Solicitações bem-sucedidas foram feitas depois de recarregar por 17:20 , depois das quais saí do dia
    • Nada de notável aconteceu depois de recarregar
  • Na manhã seguinte, os processos do httpd não responderam
  • Telnet para a porta 80 conectada com sucesso
    • As solicitações manuais GET, POST, OPTIONS e HEAD não receberam resposta alguma; nada logado

Registros

access_log

172.22.44.41 - - [03/Mar/2011:17:20:18 -0600] "GET /admin.php?type=notifications HTTP/1.0" 200 44326 "http://umc.dev.example.com/admin.php" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13"
172.22.44.41 - - [04/Mar/2011:14:45:16 -0600] "GET / HTTP/1.0" 200 62921 "-" "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_6; en-US) AppleWebKit/534.13 (KHTML, like Gecko) Chrome/9.0.597.107 Safari/534.13"

error_log

[Thu Mar 03 17:11:25 2011] [notice] SIGHUP received.  Attempting to restart
[Thu Mar 03 17:11:25 2011] [notice] Digest: generating secret for digest authentication ...
[Thu Mar 03 17:11:25 2011] [notice] Digest: done
[Thu Mar 03 17:11:25 2011] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations
[Fri Mar 04 14:45:05 2011] [notice] caught SIGTERM, shutting down
[Fri Mar 04 14:45:05 2011] [notice] SELinux policy enabled; httpd running as context user_u:system_r:httpd_t:s0
[Fri Mar 04 14:45:05 2011] [notice] suEXEC mechanism enabled (wrapper: /usr/sbin/suexec)
[Fri Mar 04 14:45:05 2011] [notice] Digest: generating secret for digest authentication ...
[Fri Mar 04 14:45:05 2011] [notice] Digest: done
[Fri Mar 04 14:45:05 2011] [notice] Apache/2.2.3 (CentOS) configured -- resuming normal operations

ps aux | grep httpd

USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root      8477  0.0  1.9 408748  9876 ?        Ss   Feb24   0:03 /usr/sbin/httpd
apache   19933  0.4 14.6 436436 74692 ?        S    Mar03   0:01 /usr/sbin/httpd
apache   19936  0.4  8.4 419708 43148 ?        S    Mar03   0:01 /usr/sbin/httpd

/ var / log / messages

Feb 27 04:02:01 webdev1 syslogd 1.4.1: restart.
Mar  4 14:43:35 webdev1 yum: Installed: strace-4.5.18-5.el5_5.5.x86_64

Versões

SO e & Kernel

  • Lançamento do CentOS 5.5 (Final)
  • Linux webdev1.int.example.com 2.6.18-194.32.1.el5 # 1 SMP quarta-feira 5 de janeiro 17:52:25 EST 2011 x86_64 x86_64 x86_64 GNU / Linux

Apache httpd

Server version: Apache/2.2.3
Server built:   Aug 30 2010 12:28:40
Server's Module Magic Number: 20051115:3
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   64-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"

PHP

  • php53u-5.3.5-3.ius.el5

Repositórios usados

CentOS Base & Atualizações para todos os pacotes com a seguinte exceção: php53u do repositório IUS Community .

    
por hobodave 04.03.2011 / 22:30

1 resposta

4

Além do disco cheio acontecendo, não há muito para onde ir. Se isso não acontecer de novo, então cairá na categoria estranheza . Você tem a saída dmesg para ver se havia algo errado com o sistema operacional (oom killer, por exemplo).

Se isso acontecer novamente, você deverá usar strace seguindo os garfos para ver exatamente o que está bloqueando os processos.

    
por 04.03.2011 / 22:43