PHP-FPM sinaliza para a rotação error_log do pool

4

Estou movendo todas as tarefas de rotação de log do meu servidor para logrotate. O servidor tem vários pools PHP-FPM, cada um deles configurado com uma diretiva error_log separada.

A receita de logrotate para os logs é bastante simples:

/var/log/php/*.log
{
        rotate 7
        daily
        missingok
        notifempty
        delaycompress
        compress
        dateext
        sharedscripts
        postrotate
                # Need for signaling the php-fpm process?
        endscript
}

Devo enviar algum sinal para os pools php-fpm para capturar as novas identificações dos arquivos error_log (no script postrotate )? Se sim, qual sinal?

    
por Ville Mattila 02.11.2012 / 09:23

2 respostas

5

Além dos sinais normais, o PHP-FPM reconhece dois sinais 'definidos pelo usuário': SIGUSR1 e SIGUSR2.

  • SIGUSR1 - fará o ciclo dos arquivos de log
  • SIGUSR2 - recarga graciosa de todos os trabalhadores + recarregamento de fpm conf / binary

Para a rotação do arquivo de log, o SIGUSR1 seria bem adequado. Com referência específica ao seu cenário, um exemplo de configuração do logrotate está detalhado em esta página . O sinal é transmitido da seguinte forma:

kill -USR1 'cat /path/to/php-fpm.pid'

Os sinais PHP-FPM são definidos em: link

    
por 02.11.2012 / 09:42
1

Sim, você precisa enviar este sinal, mas em vez de fazê-lo manualmente, é melhor adicionar a chamada no seguinte script:

...
postrotate
    /usr/lib/php5/php5-fpm-reopenlogs
endscript
...
    
por 10.08.2015 / 05:35