Generalidades
Este artículo muestra algunos comandos que puedes ejecutar a través de SSH para ayudar a identificar qué IP están afectando tu sitio.
Los registros se rotan diariamente, lo que significa que solo hay unos pocos días en cualquier momento. Si necesitas registros a largo plazo, debes respaldarlos continuamente. Por GDPR, DreamHost almacena registros HTTP de forma predeterminada durante 3 días.
Iniciar sesión en tu servidor
Para ejecutar los siguientes comandos, primero debes iniciar sesión en tu servidor a través de SSH:
Después de iniciar sesión, navega al directorio de registros correcto.
¿Qué directorio de registros debo ver?
Solo para Planes DreamPress
No necesitas incluir http/s en la ruta del archivo (como se menciona en los siguientes ejemplos) para ver los archivos de registro de los sitios DreamPress. Puedes encontrar los archivos de registro relacionados con DreamPress usando la ruta del archivo /exampleuser/logs/example.com.
Si has agregado un certificado SSL a tu sitio web, verás dos carpetas. Uno para /http y otro para /https. Por ejemplo:
- /logs/example.com/http
- /logs/example.com/https
Si visitas tu sitio y ves que está usando HTTPS en la URL (https://example.com), esto significa que debes ver el directorio /https. Si tu sitio muestra HTTP cuando lo visitas, deberías ver el directorio /http en su lugar. Los siguientes ejemplos asumen que tu sitio está usando HTTPS.
[server]$ cd ~/logs/example.com/https
Aquí es donde ejecutará los siguientes comandos.
Listado de visitas de IP
Comando | Descripción |
---|---|
[server]$ cat access.log| awk '{print $1}' | sort | uniq -c |sort -n |
Genera una lista de direcciones IP precedida por la cantidad de veces que llega a un sitio. |
[server]$ tail -10000 access.log| awk '{print $1}' | sort | uniq -c |sort -n |
Genera una lista que muestra los últimos 10,000 accesos a un sitio. |
[server]$ host 66.249.66.167 167.66.249.66.in-addr.arpa domain name pointer crawl-66-249-66-167.googlebot.com |
El comando 'host' determina la compañía de hosting desde la cual una IP específica está golpeando un sitio. En este ejemplo, la IP pertenece a Google. |
[server]$ tail -f -q access.log |
Revisa los registros de tu servidor en tiempo real para ver si el problema se presenta con una IP específica (para problemas intermitentes). |
order allow,deny deny from 66.249.66.167 allow from all |
Bloquea la IP en un archivo .htaccess. En este ejemplo, el archivo .htaccess bloquea la IP de Google anterior. |
Listado de archivos, carpetas y dominios principales
Comando | Descripción |
---|---|
[server]$ awk '{print $7}' access.log|cut -d? -f1|sort|uniq -c|sort -nk1|tail -n10 |
Genera una lista de archivos o directorios en tu sitio que se llaman más. |
[server]$ for k in `ls -S */https/access.log`; do wc -l $k | sort -r -n; done |
|
Usuarios SHELL en un VPS o Servidor Dedicado
Los siguientes comandos solo muestran sitios bajo un solo usuario Shell. Si necesitas ver todos los registros del sitio en tu servidor, dirígete la sección a continuación titulada Administrar usuarios en un Servidor Dedicado.
Comando | Descripción |
---|---|
[server]$ for k in `ls -S /home/*/logs/*/https/access.log`; do wc -l $k | sort -r -n; done |
|
[server]$ tail -f -q /home/*/logs/*/https/access.log |
|
Administrar usuarios en un Servidor Dedicado
Los siguientes comandos solo funcionan si tiene un usuario 'Admin' en tu Servidor Dedicado. Luego debes cambiar a tu usuario 'root'. Sólo entonces verás todos los registros de todos los sitios en tu servidor.
Cómo cambiar al usuario 'root' después de iniciar sesión como usuario 'admin'
Los siguientes pasos detallan cómo iniciar sesión como usuario 'root' en tu servidor DESPUÉS de iniciar sesión como tu usuario 'admin' primero.
- Inicia sesión en tu servidor como tu usuario 'admin'.
- Corre sudo su:
[server]$ sudo su [sudo] password for exampleuser:
- Ingresa tu contraseña para tu usuario 'admin'.
Ahora has iniciado sesión como usuario 'root'. Puedes ver esto en el símbolo del sistema:
root@ds123456#
Después de iniciar sesión como usuario 'root', corre los siguientes comandos para ver los registros de todos los sitios en tu servidor.
Comando | Descripción |
---|---|
[server]$ for k in `ls -S /home/*/logs/*/https/access.log`; do wc -l $k | sort -r -n; done |
|
[server]$ tail -f -q /home/*/logs/*/https/access.log |
|
Solución de problemas
Mi IP Única esta haciendo demasiadas conexiones
Puedes encontrar en tu access.log que la IP única de tu sitio está haciendo muchas conexiones. Esto no es un problema y puede ignorarse con seguridad.
Esto ocurre porque Apache está generando internamente estas conexiones para cerrar procesos innecesarios.
Puedes leer más al respecto aquí.
Solución de problemas
Puedes ver la siguiente respuesta de error después de correr el comando para ver todo el tráfico de todos los dominios en un servidor.
[server]$ for k in `ls -S /home/*/logs/*/https/access.log`; do wc -l $k | sort -r -n; done ls: cannot access /home/*/logs/*/https/access.log: No such file or directory
Este error ocurre cuando ejecuta el comando como un usuario SFTP. Debes ejecutarlo como usuario 'Shell' en un VPS o usuario 'Shell' o 'Admin' en un Servidor Dedicado.