Necessidade de rodar logs de hosts virtuais no Ubuntu VPS

0

Eu tenho um VPS de 1GB executando o Ubuntu que eu instalei o Apache, MySQL e PHP.

Eu tenho 3 sites no meu diretório pessoal que usam hospedagem virtual baseada em nome. Eu criei três arquivos separados em /etc/apache2/sites-available e os habilitei através do a2ensite. Há também o site padrão em /var/www também.

Agora, minha preocupação é que cada um desses sites esteja executando cerca de 10.000 tarefas cronicas por dia. Como se certificar de que os logs de cada um deles não cresçam demais e comam toda a memória?

Como eu configuraria a rotação de log e com que frequência seria necessário executar essa tarefa com 1gb de RAM?

    
por user866190 19.12.2013 / 11:39

1 resposta

1

O Apache tem seu próprio script rotatelog . Do manual:

O comando e as opções para o rotatelog são:

rotatelogs [ -l ] [ -f ] logfile rotationtime|filesizeM [ offset ] 

onde as opções são ...

% bl0ck_qu0te%

Exemplos:

CustomLog "|bin/rotatelogs /var/logs/logfile 86400" common

Isto cria os arquivos /var/logs/logfile.nnnn onde nnnn é a hora do sistema na qual o log começa nominalmente (esse tempo sempre será um múltiplo do tempo de rotação, assim você pode sincronizar os scripts cron com ele). No final de cada tempo de rotação (aqui após 24 horas), um novo registro é iniciado.

CustomLog "|bin/rotatelogs -l /var/logs/logfile.%Y.%m.%d 86400" common

Isso cria os arquivos /var/logs/logfile.yyyy.mm.dd, em que yyyy é o ano, mm é o mês e dd é o dia do mês. O registro passará para um novo arquivo todos os dias à meia-noite, horário local.

CustomLog "|bin/rotatelogs /var/logs/logfile 5M" common

Esta configuração irá rotacionar o arquivo de log sempre que ele atingir um tamanho de 5 megabytes.

ErrorLog "|bin/rotatelogs /var/logs/errorlog.%Y-%m-%d-%H_%M_%S 5M"

Essa configuração rotacionará o arquivo de log de erros sempre que atingir um tamanho de 5 megabytes, e o sufixo para o nome do arquivo de log será criado na forma errorlog.YYYY-mm-dd-HH_MM_SS.

CustomLog "|bin/rotatelogs -t /var/logs/logfile 86400" common

Isso cria o arquivo / var / logs / logfile, truncando o arquivo na inicialização e, em seguida, truncando o arquivo uma vez por dia. Espera-se neste cenário que um processo separado (como o tail) processe o arquivo em tempo real.

Você pode colocar esses comandos no arquivo conf.

    
por Rinzwind 19.12.2013 / 12:36