Usar SSH para encontrar acceso a un script problemático en registros de múltiples dominios

Usar SSH para encontrar acceso a un script problemático en registros de múltiples dominios

Administro varios (~20) sitios en un VPS Dreamhost. Últimamente maximizo mi asignación de memoria para el VPS y quiero encontrar el problema.

Me gustaría tener un script SSH que escanee todos los archivos de registro de todos los dominios y me muestre qué objeto (imagen, script php, etc.) recibe muchas llamadas.

Contará las llamadas en cada /logs/*/http/access.log, realizará una clasificación descendente y me mostrará las 10 principales en todos los dominios.

Pero no sé cómo hacer eso.

Se puede hacer?

¿Alguien puede sugerir un guión que haga eso?

Respuesta1

La parte en la que solicitaste un script para "... contar las llamadas en cada /logs/*/http/access.log, hacer una clasificación descendente y mostrarme las 10 principales en todos los dominios". se puede lograr con esto:

grep -o " /[^ ]*" /logs/*/http/access.log | sort | uniq -c | sort -rn | head

Pero puedes obtener la misma información de AWStats o Google Analytics. En realidad, es solo una lista de todas las URL agregadas y ordenadas por la cantidad de veces que se accedió a cada una.

Ese mismo patrón de comandos de Unix se puede utilizar para agregar sus errores de PHP y errores de Apache, lo que podría ser más útil en su situación particular. Por ejemplo lo siguiente:

grep -o " PHP.*" /logs/*/php/error.log | sort | uniq -c | sort -rn | head

Encontrará todos los errores de PHP en su registro de errores de PHP (supuse dónde podría guardarlos) y enumerará los 10 más frecuentes.

Otro útil es:

grep -o " PHP Fatal error: Allowed memory size.*" /logs/*/php/error.log | sed 's/tried to allocate [0-9]* bytes/tried to allocate N bytes/' | sort | uniq -c | sort -rn | head

Que encontrará todos sus errores de falta de memoria y los agrupará.

Respuesta2

En lugar de adoptar ese enfoque, le recomendaría que considere configurar un servidor de registro centralizado. Tiene múltiples opciones para hacerlo, desde el antiguo almacenamiento basado en archivos hasta las herramientas de análisis más basadas en web que almacenan los registros en una base de datos y le permiten buscar entre ellos, crear cuadros/gráficos, etc.

Aquí hay un enlace a un excelente documento técnico de Cisco Systems que le ayudará:

Creación de soluciones de gestión de Syslog escalables

Respuesta3

En lugar de esta complicada solución manual, le recomendaría que utilice una herramienta comoSplunkServidor.

Splunk es en realidad un increíble análisis de registros, en el que puedes analizar los registros de la forma que desees, incluso con alertas.

Splunk recopila, indexa y aprovecha los volúmenes masivos de valiosos datos de las máquinas generados por su compleja infraestructura de TI, ya sea física, virtual o en la nube.

información relacionada