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?
O 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 contagem 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 habilitou por padrão sua página de estatísticas do servidor para o público em geral. Para ver uma demonstração da página de status do site ocupado, visite:
Ambiente de Teste
Nós utilizamos o seguinte Ambiente de Teste para este artigo para explorar mais sobre o mod_status com alguns exemplos práticos e capturas de tela.
- Sistema Operacional – CentOS 8/7
- Aplicação – Servidor Web Apache
- Endereço IP – 5.175.142.66
- DocumentRoot – /var/www/html
- Arquivo de Configuração do Apache – /etc/httpd/conf/httpd.conf
- Porta HTTP Padrão – 80 TCP
- Testar Configurações – httpd -t
Os pré-requisitos para este tutorial são que você deve estar ciente de 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.
Como Habilitar o mod_status no Apache
A instalação padrão do Apache vem com o mod_status habilitado. Se não estiver, verifique se está habilitado 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 o mod_status
Agora busque 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 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 Virtual Hosts do 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ê tenha configurado 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>
Ativar ExtendedStatus
As configurações “ExtendedStatus” adicionam mais informações à página de estatísticas como uso da CPU, requisições por segundo, tráfego total, etc. Para ativá-lo, edite o mesmo arquivo httpd.conf e procure a 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 a sintaxe esteja 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 de Status do Mod_status
O status da página do Apache estará acessível via seu nome de domínio com “/server-status” nas seguintes URLs.
http://serveripaddress/server-status OR http://serev-hostname/server-status
Você verá algo semelhante à seguinte página com o ExtendedStatus habilitado.

Na captura de tela acima, você pode ver uma interface HTML, que mostra todas as informações sobre tempo de atividade do servidor, ID do processo com seu respectivo cliente, a página que estão tentando acessar.
Ele também mostra o significado e o 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 alguns segundos (digamos 5 segundos) para ver as estatísticas atualizadas. Para definir a atualização automática, adicione “?refresh=N” no final da 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

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 navegadores de linha de comando especiais chamados links ou lynx. Você pode instalá-los usando o utilitário padrão de gerenciamento de pacotes chamado yum como mostrado abaixo.
# yum install links OR # yum install lynx
Uma vez que você tenha instalado, você poderá obter as mesmas estatísticas em 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.
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/