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.
- Sistema Operacional – CentOS 8/7
- <Application – 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ê 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.
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.

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

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.
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/