Apache2 parou sem nenhum motivo óbvio

0

Esta manhã eu recebi uma ligação dizendo que em um dos servidores o servidor da web não está funcionando. Reiniciar o processo do apache2 resolveu o problema, mas não consigo entender o motivo da falha.

Eu verifiquei todos os registros e a única informação relevante sobre o acidente está no error.log :

[Tue Feb 07 06:25:39.804775 2017] [mpm_prefork:notice] [pid 16376] AH00171: Graceful restart requested, doing restart
AH00557: apache2: apr_sockaddr_info_get() failed for ourdomain.com
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message
[Tue Feb 07 06:25:59.749847 2017] [unique_id:alert] [pid 16376] (EAI 2)Name or service not known: AH01564: unable to find IPv4 address of "ourdomain.com"
[Tue Feb 07 06:26:09.760784 2017] [:emerg] [pid 16376] AH00020: Configuration Failed, exiting
[Tue Feb 07 11:44:50.000663 2017] [:notice] [pid 4841] ModSecurity for Apache/2.8.0 (http://www.modsecurity.org/) configured.
[Tue Feb 07 11:44:50.001311 2017] [:notice] [pid 4841] ModSecurity: APR compiled version="1.5.1"; loaded version="1.5.1"
[Tue Feb 07 11:44:50.001317 2017] [:notice] [pid 4841] ModSecurity: PCRE compiled version="8.35 "; loaded version="8.39 2016-06-14"
[Tue Feb 07 11:44:50.001324 2017] [:warn] [pid 4841] ModSecurity: Loaded PCRE do not match with compiled!
[Tue Feb 07 11:44:50.001326 2017] [:notice] [pid 4841] ModSecurity: LUA compiled version="Lua 5.1"
[Tue Feb 07 11:44:50.001328 2017] [:notice] [pid 4841] ModSecurity: LIBXML compiled version="2.9.1"
[Tue Feb 07 11:44:50.001330 2017] [:notice] [pid 4841] Original server signature: Apache/2.4.10 (Debian) OpenSSL/1.0.1t
[Tue Feb 07 11:44:50.001364 2017] [:notice] [pid 4841] ModSecurity: StatusEngine call: "2.8.0,StanSoftWeb 6.22,1.5.1/1.5.1,8.35/8.39 2016-06-14,Lua 5.1,2.9.1,82"
[Tue Feb 07 11:44:51.420554 2017] [:notice] [pid 4841] ModSecurity: StatusEngine call successfully sent. For more information visit: http://status.modsecurity.org/
[Tue Feb 07 11:44:52.000688 2017] [core:warn] [pid 4848] AH00098: pid file /var/run/apache2/apache2.pid overwritten -- Unclean shutdown of previous Apache run?

Nós não pedimos intencionalmente um reinício greceful com certeza. O servidor é uma instância do AWS EC2, se isso for importante. Estou vendo essa reinicialização normal nos registros a cada poucas horas, mas sem problemas - o servidor da Web estava funcionando bem por meses, sem alterações de configuração nesse meio tempo.

AH00020: Configuration Failed, exiting é a linha que não consigo explicar para mim mesmo.

Estou sem ideias, alguém pode sugerir qual é o motivo do acidente?

    
por Stanimir Stoyanov 07.02.2017 / 07:33

1 resposta

1

As primeiras linhas em seu log mostram que seu DNS não estava disponível, que o Apache precisa estar disponível para que ele possa procurar o site FQDN dado o (s) endereço (s) IP que você disse para se ligar. (E precisa que para manipular o cabeçalho HTTP / 1.1 Host , entre outras coisas.)

Isso fornece várias soluções possíveis:

  1. Use a diretiva ServerName para fornecer explicitamente o FQDN do Apache, como sugere a entrada de log. Então você não precisa de DNS.

  2. Certifique-se de que o seu DNS permaneça ativo. A prática padrão é usar pelo menos dois servidores DNS , idealmente separados geograficamente, de modo que, se um servidor ou rota para esse servidor ficar inativo, o outro ainda estará disponível.

    O DNS fica mais lento quando isso acontece, pois o tempo limite dos sistemas é esperado antes que os primeiros pacotes DNS sejam expirados antes de tentar o segundo, mas pelo menos as coisas acabam prosseguindo. O cache do DNS ajuda aqui.

    Existem muitas empresas que não fazem nada além de fornecer DNS secundário para você, portanto, não é necessário configurar um outro datacenter ou alugar uma instância do EC2 inteira ou VPS apenas para manter um servidor DNS secundário. Muitas outras empresas fornecem DNS secundário como um de seus pacotes gerais de serviços de hospedagem na Internet.

  3. Use o arquivo /etc/hosts do seu sistema operacional para mapear os IPs aos nomes de domínio e informe ao resolvedor de nomes do sistema operacional como use essa informação preferencialmente para o DNS. Isso não é apenas mais rápido que o DNS, seu tempo de vida é inerentemente vinculado ao de sua máquina host Apache. A única maneira de "descer" é fazer com que alguém edite uma edição em /etc/hosts .

    Se você escolher essa opção, considere também as opções acima. Você quer o DNS secundário de qualquer maneira, e não há nenhum motivo particular para forçar o Apache a fazer pesquisas reversas em IPs para descobrir nomes de host, já que não é uma informação que possa mudar.

por 07.02.2017 / 09:26