Como Monitorar Carga do Servidor Web Apache e Estatísticas de Página

Neste artigo, você aprenderá como monitorar a carga e as solicitações do servidor web Apache usando o módulo mod_status em suas distribuições Linux, como CentOS, RHEL e Fedora.

O que é mod_status?

mod_status é um módulo do Apache que ajuda a monitorar a carga do servidor web e as conexões httpd atuais com uma interface HTML que pode ser acessada via navegador web.

O mod_status do Apache mostra uma página HTML simples contendo informações sobre as estatísticas atuais do servidor web, incluindo:

  • Número total de solicitações recebidas
  • Número total de bytes e contagens do servidor
  • O uso da CPU do servidor web
  • Carga do servidor
  • Tempo de atividade do servidor
  • Traffic total
  • Número total de trabalhadores inativos
  • PIDs com os respectivos clientes e muito mais.

O Projeto Apache padrão habilitou a página de estatísticas do servidor para o público em geral. Para ver uma demonstração da página de status de um site ocupado, visite:

Ambiente de Teste

Nós utilizamos o seguinte Ambiente de Teste para este artigo, a fim de explorar mais sobre o mod_status com alguns exemplos práticos e capturas de tela.

  1. Sistema Operacional – CentOS 8/7
  2. <Application – Servidor Web Apache
  3. Endereço IP – 5.175.142.66
  4. DocumentRoot – /var/www/html
  5. Arquivo de Configuração do Apache – /etc/httpd/conf/httpd.conf
  6. Porta HTTP Padrão – 80 TCP
  7. Testar Configurações – httpd -t

Os pré-requisitos para este tutorial são que você já saiba como instalar e configurar um Servidor Apache Básico. Se você não sabe como configurar o Apache, leia o seguinte artigo que pode ajudá-lo a configurar seu próprio Servidor Web Apache.

  1. Crie Seu Próprio Servidor Web e Hospede um Site no Linux

Como Habilitar o mod_status no Apache

A instalação padrão do Apache vem com o mod_status habilitado. Se não estiver, certifique-se de habilitá-lo no arquivo de configuração do Apache.

[root@tecmint ~]# vi /etc/httpd/conf/httpd.conf

Procure pela palavra “mod_status” ou continue rolando para baixo até encontrar uma linha contendo.

#LoadModule status_module modules/mod_status.so

Se você ver um caractere ‘#’ no início de “LoadModule”, isso significa que o mod_status está desativado. Remova o ‘#‘ para habilitar o mod_status.

LoadModule status_module modules/mod_status.so

Configurar mod_status

Agora procure novamente pela palavra “Localização” ou role para baixo até encontrar uma seção para mod_status que deve se parecer com o seguinte.

# Allow server status reports generated by mod_status,
# with the URL of http://servername/server-status
# Change the ".example.com" to match your domain to enable.
#
#<Location /server-status>
#    SetHandler server-status
#    Order deny,allow
#    Deny from all
#    Allow from .example.com
#</Location>

Na seção acima, descomente as linhas para a diretiva de Localização, SetHandler e as restrições de diretório de acordo com suas necessidades. Por exemplo, estou mantendo simples com a Ordem Permitir, negar e é permitido para todos.

<Location /server-status>
   SetHandler server-status
   Order allow,deny
   Deny from all
   Allow from all 
</Location>

Nota: A configuração acima é a configuração padrão para o site da web Apache padrão (site único). Se você criou um ou mais Hosts Virtuais Apache, a configuração acima não funcionará.

Basicamente, você precisa definir a mesma configuração para cada host virtual para quaisquer domínios que você configurou no Apache. Por exemplo, a configuração do host virtual para mod_status ficará assim.

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot /var/www/html/example.com
    ServerName example.com
    ErrorLog logs/example.com-error_log
    CustomLog logs/example.com-access_log common
<Location /server-status>
   SetHandler server-status
   Order allow,deny
   Deny from all
   Allow from example.com 
</Location>
</VirtualHost>

Habilitar ExtendedStatus

As configurações de “ExtendedStatus” adicionam mais informações à página de estatísticas como uso da CPU, requisições por segundo, tráfego total, etc. Para habilitar, edite o mesmo arquivo httpd.conf e procure pela palavra “Extended” e descomente a linha e defina o status “On” para a diretiva ExtendedStatus.

# ExtendedStatus controls whether Apache will generate "full" status
# information (ExtendedStatus On) or just basic information (ExtendedStatus
# Off) when the "server-status" handler is called. The default is Off.
#
ExtendedStatus On

Reinicie o Apache

Agora certifique-se de ter habilitado e configurado corretamente a página de status do servidor Apache. Você também pode verificar os erros na configuração do httpd.conf usando o seguinte comando.

[root@tecmint ~]# httpd -t

Syntax OK

Uma vez que você obtiver a sintaxe OK, você poderá reiniciar o serviço httpd.

[root@tecmint ~]# service httpd restart
OR
[root@tecmint ~]# systemctl restart httpd
Stopping httpd:                                          [  OK  ]
Starting httpd:                                          [  OK  ]

Acesse a página mod_status

A página de status do Apache estará acessível através do seu nome de domínio com “/server-status” nos seguintes URLs.

http://serveripaddress/server-status

OR

http://serev-hostname/server-status

Você verá algo semelhante à página a seguir com ExtendedStatus habilitado.

Apache mod_status View

Na captura de tela acima, você pode ver uma interface HTML, que mostra todas as informações sobre o tempo de atividade do servidor, Id do processo com seu cliente respectivo, a página que estão tentando acessar.

Também mostra o significado e uso de todas as abreviações usadas para exibir o status, o que nos ajuda a entender melhor a situação.

Você também pode atualizar a página a cada segundos (digamos 5 segundos) para ver as estatísticas atualizadas. Para definir a atualização automática, adicione “?refresh=N” ao final do URL. Onde N pode ser substituído pelo número de segundos que você deseja que sua página seja atualizada.

http://serveripaddress/server-status/?refresh=5
Apache mod_status Refresh

Visualização da Página de Status da Linha de Comando

Você também pode visualizar a página de status do Apache a partir da interface de linha de comando usando os navegadores de linha de comando especiais chamados links ou lynx. Você pode instalá-los usando o utilitário padrão do gerenciador de pacotes chamado yum conforme mostrado abaixo.

# yum install links

OR

# yum install lynx

Uma vez que você tenha instalado, você pode obter as mesmas estatísticas no seu terminal usando o seguinte comando.

[root@tecmint ~]# links http://serveripaddress/server-status
OR
[root@tecmint ~]# lynx http://serveripaddress/server-status
OR
[root@tecmint ~]#  /etc/init.d/httpd fullstatus
                     Apache Server Status for localhost
   Server Version: Apache/2.2.15 (Unix) DAV/2 PHP/5.3.3
   Server Built: Aug 13 2013 17:29:28

   --------------------------------------------------------------------------
   Current Time: Tuesday, 14-Jan-2014 04:34:13 EST
   Restart Time: Tuesday, 14-Jan-2014 00:33:05 EST
   Parent Server Generation: 0
   Server uptime: 4 hours 1 minute 7 seconds
   Total accesses: 2748 - Total Traffic: 9.6 MB
   CPU Usage: u.9 s1.06 cu0 cs0 - .0135% CPU load
   .19 requests/sec - 695 B/second - 3658 B/request
   1 requests currently being processed, 4 idle workers
 .__.__W...

   Scoreboard Key:
   "_" Waiting for Connection, "S" Starting up, "R" Reading Request,
   "W" Sending Reply, "K" Keepalive (read), "D" DNS Lookup,
   "C" Closing connection, "L" Logging, "G" Gracefully finishing,
   "I" Idle cleanup of a worker, "." Open slot with no current process

Srv PID     Acc    M CPU   SS  Req Conn Child Slot     Client        VHost             Request
0-0 -    0/0/428   . 0.30 5572 0   0.0  0.00  1.34 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0
                                                                               GET
1-0 5606 0/639/639 _ 0.46 4    0   0.0  2.18  2.18 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
                                                                               GET
2-0 5607 0/603/603 _ 0.43 0    0   0.0  2.09  2.09 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
3-0 -    0/0/337   . 0.23 5573 0   0.0  0.00  1.09 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0
                                                                               GET
4-0 5701 0/317/317 _ 0.23 9    0   0.0  1.21  1.21 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
                                                                               GET
5-0 5708 0/212/213 _ 0.15 6    0   0.0  0.85  0.85 115.113.134.14 5.175.142.66 /server-status?refresh=5
                                                                               HTTP/1.1
6-0 5709 0/210/210 W 0.16 0    0   0.0  0.84  0.84 127.0.0.1      5.175.142.66 GET /server-status
                                                                               HTTP/1.1
7-0 -    0/0/1     . 0.00 5574 0   0.0  0.00  0.00 127.0.0.1      5.175.142.66 OPTIONS * HTTP/1.0

   --------------------------------------------------------------------------

    Srv  Child Server number - generation
    PID  OS process ID
    Acc  Number of accesses this connection / this child / this slot
     M   Mode of operation
    CPU  CPU usage, number of seconds
    SS   Seconds since the beginning of the most recent request
    Req  Milliseconds required to process most recent request
   Conn  Kilobytes transferred this connection
   Child Megabytes transferred this child
   Slot  Total megabytes transferred this slot
   --------------------------------------------------------------------------

    Apache/2.2.15 (CentOS) Server at localhost Port 80

Conclusão

O módulo mod_status do Apache é uma ferramenta de monitoramento muito útil para acompanhar o desempenho da atividade de um servidor web e pode destacar problemas por si só. Para mais informações, leia a página de status que pode ajudá-lo a se tornar um administrador de servidor web mais bem-sucedido.

  1. Página Inicial do Apache mod_status

Isso é tudo para o mod_status por agora, voltaremos com mais dicas e truques sobre o Apache em futuros tutoriais. Até lá, mantenha-se Geek e sintonizado no Tecmint.com e não se esqueça de adicionar seus comentários valiosos.

Source:
https://www.tecmint.com/monitor-apache-web-server-load-and-page-statistics/