Estoy alojando una gran cantidad de hosts virtuales que usan Apache en una configuración básica de LAMP con la ayuda de Webmin / Virtualmin. Estoy buscando una herramienta superior en la que pueda monitorear las conexiones actuales. La parte de alojamiento virtual parece estar dándome problemas aquí. Esto es lo que he intentado:
netstat
- Puedo ver las conexiones, pero me muestran como si todas estuvieran usando mi dominio principal, por ejemplomydomain.com:www
.iftop
- Me gusta mucho, pero una desventaja similar anetstat
: no muestra el host virtual.apachetop
- parece no mostrar información para todos mis hosts virtuales. Estoy iniciando sesión para separar archivos de registro personalizados, lo que sospecho es la causa de por qué no funciona.ntop
,darkstat
,MRTG
,bwm-ng
,IPTraf
- no funciona bien.
Así que, básicamente, estoy buscando algo similar a la salida de corriente de netstat
, pero para incluir la máquina virtual la solicitud es para, por ejemplo: avirtualsite.com:www
.
apache2
websites
virtualhost
webmin
Piotr Kula
fuente
fuente
apachetop
, pero eso solo monitorea el archivo que proporciono ... maldición, no todos los servidores ...Respuestas:
La respuesta de Andrea Corbellini le explica por qué no funcionará con las herramientas que está utilizando y cómo funciona Virtual Hosting. Aquí está la forma más simple que se me ocurre para hacerlo en Apache ...
mod_status
te ayudaráDescargo de responsabilidad: no puedo decir cómo se hace esto en Webmin: utilizo archivos de configuración simples para configurar servidores. Aquí hay solo una descripción básica de los pasos.
Es una
top
herramienta similar, pero representada como una página web. Enumera el estado actual consultado directamente desde Apache, por lo que no depende del análisis de archivos de registro como loapachetop
hace.Habilitar
mod_status
:Concédete el acceso.
/etc/apache2/mods-enabled/status.conf
y editar:ExtendedStatus
enOn
(opcional, pero más genialidad y un poco más lento)Dentro de
<Location /server-status>
, agregue su dirección IP a la línea con laAllow
directiva. Ejemplo:Reiniciar Apache:
Disfruta de la herramienta en tu navegador, por ejemplo:
http://1.2.3.4/server-status
Se verá como esta captura de pantalla de ejemplo .
Sigue presionando F5para obtener actualizaciones. ¡O consigue un plugin de navegador increíble y mira cómo se actualiza!
Webmin
anexo del OP para futuros visitantes
En Webmin, los pasos básicos sobre el módulo de estado se pueden encontrar aquí:
fuente
Todas las herramientas que está probando nunca le darán la respuesta correcta. La razón es que la información que solicita se pierde cuando se realiza la conexión.
Usemos un ejemplo: supongamos que su servidor web tiene una dirección IP ( 1.2.3.4 ) y dos nombres de host ( a.mydomain.com y b.mydomain.com ) que se resuelven en esa dirección IP.
¿Qué sucede cuando usa su navegador web favorito cuando visita a.mydomain.com ?
So
netstat
& co. Solo sé que hay una conexión entrante hecha a 1.2.3.4 . La razón por la que ve un nombre de host en lugar de una dirección IP es que la dirección IP tiene un registro rDNS, por lo quenetstat
prefiere mostrar eso en lugar de la IP, porque es mejor. Intentenetstat -n
(o elimine el registro rDNS) y verá la dirección IP.Pero eso no es todo: cuando dije que la información sobre el nombre de host que se usó para hacer la conexión se perdió, no estaba completamente en lo cierto. Desde el punto de vista de la pila TCP / IP, esa oración es verdadera. Pero si vemos las cosas desde el punto de vista del protocolo HTTP, las cosas son diferentes. En cada solicitud HTTP hay un
Host:
encabezado que contiene el nombre de host que utilizó el navegador para realizar la solicitud.Entonces, en resumen, debe mirar los archivos de registro de su servidor web. El servidor web es el servicio que maneja las solicitudes HTTP y, por lo tanto, el único servicio que conoce el nombre de host "original".
fuente
Otra forma es escribir
en tu terminal
fuente
access.log
no contiene todas las solicitudes. En cambio, miro/usr/local/apache/domlogs/
para ver las solicitudes de virtualhost (dividido entre SSL, no SSL e incluso FTP). La ruta puede ser diferente en Ubuntu cPanel./var/log/httpd/access_log
Puede verificar todos los ips conectados en el puerto 80 con este bash
Nota: si desea ver otro puerto, cambie 80
SALIDA:
fuente
Puede verificar esto con:
fuente
Si quieres pid, usuario y comando:
fuente
También puede usar GoAccess de forma interactiva para ver sus visitantes actuales. Analiza su registro de acceso de Apache para este propósito y muestra un montón de estadísticas sobre su sitio.
fuente