Usando SSH para encontrar acesso a um script problemático em logs de vários domínios

Usando SSH para encontrar acesso a um script problemático em logs de vários domínios

Eu administro vários (~20) sites em um Dreamhost VPS. Ultimamente, maximizei minha alocação de memória para o VPS e quero encontrar o problema.

Eu gostaria de ter um script SSH que verificasse todos os arquivos de log de todos os domínios e me mostrasse qual objeto (imagem, script php etc.) recebe muitas chamadas.

Ele contará as chamadas em cada /logs/*/http/access.log, fará uma classificação decrescente e mostrará as 10 principais em todos os domínios.

Mas não sei como fazer isso.

Isso pode ser feito?

Alguém pode sugerir um script que faça isso?

Responder1

A parte em que você solicitou um script para "... contar as chamadas em cada /logs/*/http/access.log, fazer uma classificação decrescente e mostrar-me os 10 principais entre domínios". pode ser alcançado com isso:

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

Mas você pode obter as mesmas informações do AWStats ou do Google Analytics. Na verdade, é apenas uma lista de todos os URLs agregados e classificados pelo número de vezes que cada um foi acessado.

Esse mesmo padrão de comandos Unix pode ser usado para agregar seus erros de PHP e erros de Apache, que podem ser mais úteis em sua situação específica. Por exemplo o seguinte:

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

Encontrará todos os erros de PHP em seu log de erros de php (adivinhei onde você poderia mantê-los) e listará os 10 mais frequentes.

Outro útil é:

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 os seus erros de falta de memória e os agrupará.

Responder2

Em vez de adotar essa abordagem, recomendo que você configure um servidor de registro centralizado. Você tem várias opções para fazer isso, desde o antigo armazenamento baseado em arquivo até as ferramentas de análise mais baseadas na Web que armazenam os logs em um banco de dados e permitem pesquisá-los, criar tabelas/gráficos, etc.

Aqui está um link para um excelente whitepaper da Cisco Systems que ajudará:

Construindo soluções escalonáveis ​​de gerenciamento de syslog

Responder3

Em vez desta solução manual complicada, recomendo que você use uma ferramenta comoSplunkServidor.

Splunk é na verdade uma análise de log incrível, na qual você pode analisar logs da maneira que desejar, até mesmo com alertas.

O Splunk coleta, indexa e aproveita os enormes volumes de dados valiosos de máquinas gerados pela sua complexa infraestrutura de TI, seja ela física, virtual ou na nuvem.

informação relacionada