Estou hospedando muitos hosts virtuais usando o Apache em um LAMP básico configurado com a ajuda do Webmin / Virtualmin. Estou procurando uma ferramenta top-like na qual eu possa monitorar as conexões atuais. A parte de hospedagem virtual parece estar me causando problemas aqui. Aqui está o que eu tentei:
netstat
- Eu posso ver as conexões, mas elas me mostram como se todas estivessem usando meu domínio principal, por exemplomydomain.com:www
.iftop
- Gosto muito, mas o lado negativo énetstat
: não mostra o host virtual.apachetop
- parece não mostrar informações para todos os meus hosts virtuais. Estou efetuando logon para separar arquivos de log personalizados, o que, suspeito, é a causa do motivo pelo qual não funciona.ntop
,darkstat
,MRTG
,bwm-ng
,IPTraf
- não funcionando.
Então, basicamente, eu estou procurando algo semelhante ao corrente de saída netstat
, mas para incluir o host virtual a solicitação é para, por exemplo: avirtualsite.com:www
.
apache2
websites
virtualhost
webmin
Piotr Kula
fonte
fonte
apachetop
- mas que apenas monitora o arquivo i fornecer .. damnit- nem todos os servidores ...Respostas:
A resposta de Andrea Corbellini explica por que não funciona com as ferramentas que você está usando e como funciona a Hospedagem Virtual. Aqui está a maneira mais simples que eu posso pensar para fazer isso no Apache ...
mod_status
irá ajudá-lo.Isenção de responsabilidade: não sei dizer como isso é feito no Webmin - uso arquivos de configuração simples para configurar servidores. Aqui está apenas uma visão geral básica das etapas.
É uma
top
ferramenta parecida, mas representada como uma página da web. Ele lista o estado atual consultado diretamente no Apache, portanto, não depende da análise dos arquivos de log comoapachetop
faz.Ativar
mod_status
:Conceda-se acesso.
/etc/apache2/mods-enabled/status.conf
e editar:ExtendedStatus
comoOn
(opcional, mas mais impressionante e um pouco mais lento)No diretório
<Location /server-status>
, anexe seu endereço IP à linha com aAllow
diretiva. Exemplo:Reinicie o Apache:
Aproveite a ferramenta no seu navegador, por exemplo:
http://1.2.3.4/server-status
Será parecido com este exemplo de captura de tela .
Continue pressionando F5para obter atualizações. Ou obtenha um incrível plugin para o navegador e assista à atualização!
Webmin
adendo do OP para futuros visitantes
No Webmin, as etapas básicas sobre o módulo Status podem ser encontradas aqui:
fonte
Todas as ferramentas que você está tentando nunca fornecerão a resposta certa. O motivo é que as informações solicitadas são perdidas quando a conexão é feita.
Vamos usar um exemplo: suponha que seu servidor Web tenha um endereço IP ( 1.2.3.4 ) e dois nomes de host ( a.mydomain.com e b.mydomain.com ) resolvidos para esse endereço IP.
O que acontece quando você usa seu navegador favorito quando visita a.mydomain.com ?
So
netstat
& co. só sabemos que há uma conexão de entrada feita para 1.2.3.4 . A razão pela qual você vê um nome de host em vez de um endereço IP é que o endereço IP possui um registro rDNS, portanto,netstat
prefere mostrar isso em vez do IP, porque é melhor. Experimentenetstat -n
(ou remova o registro rDNS) e você verá o endereço IP.Mas isso não é tudo: quando eu disse que as informações sobre o nome do host usado para fazer a conexão foram perdidas, eu não estava totalmente certa. Do ponto de vista da pilha TCP / IP, essa frase é verdadeira. Mas se vemos as coisas do ponto de vista do protocolo HTTP, as coisas são diferentes. Em toda solicitação HTTP, há um
Host:
cabeçalho que contém o nome do host que foi usado pelo navegador para fazer a solicitação.Portanto, resumindo, você deve examinar os arquivos de log do seu servidor web. O servidor da web é o serviço que lida com as solicitações HTTP e, portanto, o único serviço que conhece o nome do host "original".
fonte
Outra maneira é digitar
no seu terminal
fonte
access.log
ele não contém todas as solicitações. Em vez disso, olho/usr/local/apache/domlogs/
para ver solicitações por host virtual (dividido entre SSL, não SSL e até FTP). O caminho pode ser diferente no Ubuntu cPanel./var/log/httpd/access_log
Você pode verificar todos os ips conectados na porta 80 com este bash
Nota: se você quiser ver outra porta, altere 80
SAÍDA:
fonte
Você pode verificar isso com:
fonte
Se você quiser pid, usuário e comando:
fonte
Você também pode usar o GoAccess interativamente para visualizar seus visitantes atuais. Ele analisa o log de acesso do Apache para esse fim e mostra várias estatísticas sobre o seu site.
fonte