As distribuições Linux são ideais para qualquer tipo de ambiente corporativo, graças à sua capacidade de se adaptar a novas funções e novas funções e, o melhor de tudo, de graça graças ao código aberto.
Temos milhares de aplicativos ou utilitários projetados para o controle centralizado de todos os aspectos do sistema e desta forma, como administradores ou pessoal de TI, saber com certeza quando ocorre uma falha e saber como resolvê-la.
Dentro deste amplo leque de possibilidades encontramos o Logrotate, que é um utilitário da distribuição e sua função é a rotação e compressão dos arquivos de log.
Esta tarefa é importante porque, ao não realizar nenhuma ação nestes arquivos, o espaço no disco rígido pode ser afetado, levando a outros tipos de erros gerais.
Para este caso, usaremos o Ubuntu 17.10 e o Logrotate é instalado por padrão e já está configurado para gerenciar as tarefas de rotação de log de todos os pacotes instalados, incluindo rsyslog, o processador de log do sistema padrão.
A seguir, veremos como instalar e usar este valioso utilitário.
1. Identifique a versão do Logrotate instalado no Linux
O primeiro passo é saber em detalhes em qual versão do Logrotate temos, neste caso, o Ubuntu 17.10. Para fazer isso, executamos o seguinte comando:
logrotate -versionO resultado será o seguinte:
PROLONGAR
Se o Logrotate não estiver instalado, obteremos um erro. Podemos instalar a ferramenta usando o gerenciador de pacotes da distribuição Linux usada.
Se o Logrotate estiver instalado, mas o número da versão for significativamente diferente, podemos ter problemas com algumas das configurações do utilitário. Podemos consultar a documentação da versão específica do Logrotate diretamente em sua página de manual:
homem logrotatePodemos ver a estrutura de configuração padrão do Logrotate na distribuição Linux:
PROLONGAR
2. Configuração do Logrotate Linux
As informações de configuração do Logrotate geralmente podem ser encontradas em dois lugares no caso do Ubuntu:
etc / logrotate.confEste arquivo contém algumas configurações padrão e define a rotação para alguns logs que não pertencem a nenhum pacote do sistema. Ele também usa uma instrução de inclusão para obter configurações de qualquer arquivo no diretório /etc/logrotate.d.
/etc/logrotate.d/Este diretório é onde qualquer pacote que instalarmos e precisarmos de ajuda com a rotação do log colocará sua configuração Logrotate. Em uma instalação padrão, os arquivos já devem existir aqui para ferramentas básicas do sistema, como apt, dpkg, rsyslog, etc.
Por padrão, logrotate.conf irá configurar rotações de log semanais (semanalmente), com arquivos de log pertencentes ao usuário root e o grupo syslog (su root syslog), com quatro arquivos de log que são mantidos (rotação 4) e novos arquivos são criados vazios registros. criado após a corrente ser girada (criar).
Podemos acessar o arquivo de configuração Logrotate de um pacote em /etc/logrotate.d usando o utilitário cat:
cat /etc/logrotate.d/apt
PROLONGAR
Este arquivo contém blocos de configuração para dois arquivos de log diferentes no diretório / var / log / apt /: term.log e history.log. Ambos têm as mesmas opções.
Qualquer opção não definida nesses blocos de configuração herdará os valores padrão ou aqueles definidos em /etc/logrotate.conf. As opções configuradas para logs do apt são:
girar 12Preserva doze arquivos de log antigos.
Por mêsGire uma vez por mês.
ComprimirEle se encarrega de compactar os arquivos girados. Isso usa gzip por padrão e resulta em arquivos que terminam com a extensão .gz. O comando de compactação pode ser alterado usando a opção compresscmd.
MissokEle não grava uma mensagem de erro se o arquivo de log estiver ausente.
notifemptyEle não gira o arquivo de log se estiver vazio.
Existem muitas outras opções de configuração disponíveis.
3. Configure um serviço Linux Logrotate e adicione configuração a /etc/logrotate.d/
A seguir, vamos configurar um arquivo de configuração para lidar com os logs de um serviço que iremos criar.
Para gerenciar os arquivos de registro de aplicativos fora dos serviços de sistema predefinidos e pré-configurados, temos duas opções:
- Crie um novo arquivo de configuração Logrotate e coloque-o no caminho /etc/logrotate.d/. Isso será executado diariamente como usuário root junto com todas as outras tarefas padrão do Logrotate.
- Crie um novo arquivo de configuração e execute-o fora da configuração Logrotate padrão do Ubuntu. Isso só é necessário se precisarmos executar o Logrotate como um usuário não root, ou se você quiser girar os logs com mais frequência do que diariamente (uma configuração de hora em hora em /etc/logrotate.d/ não seria eficaz, porque a configuração de Logrotate do sistema é executado apenas uma vez por dia).
Neste caso, queremos configurar a rotação de log para um servidor web que coloque um access.log e um error.log no caminho / var / log / solvetic-app /. Ele será executado como o usuário e grupo www-data.
Para adicionar alguma configuração a /etc/logrotate.d/, devemos primeiro abrir um novo arquivo da seguinte maneira:
sudo nano /etc/logrotate.d/solvetic-applá vamos adicionar as seguintes linhas:
/var/log/solvetic-app/*.log {daily missingok rotate 14 compress notifempty create 0640 www-data www-data sharedscripts postrotate systemctl reload solvetic-app endcript}
PROLONGAR
Podemos salvar as alterações usando a combinação de teclas Ctrl + O e sair do editor usando Ctrl + X.
Algumas das novas diretivas de configuração neste arquivo são:
criar 0640 www-data www-dataEste parâmetro cria um novo arquivo de log vazio após a rotação, com as permissões especificadas (0640), proprietário (dados www) e grupo (também dados www).
sharedscriptsEste sinalizador indica que os scripts adicionados à configuração são executados apenas uma vez por execução, em vez de para cada arquivo girado.
postrotate to endscriptEste bloco contém um script a ser executado após a rotação do arquivo de log. Neste caso, podemos recarregar nosso solvetic-app. Às vezes, isso é necessário para que o aplicativo alterne para o arquivo de log recém-criado.
Devemos contabilizar as execuções pós-rotação antes que os logs sejam verificados. A compactação pode levar muito tempo e o software deve alternar para o novo arquivo de log imediatamente. Para tarefas que devem ser executadas após os registros serem compactados, use o bloco de última ação.
Depois de personalizar a configuração que melhor atende às nossas necessidades e eles foram salvos em /etc/logrotate.d, podemos verificar executando a seguinte linha.
sudo logrotate /etc/logrotate.conf -debugIsso chama logrotate, aponta para o arquivo de configuração padrão e ativa o modo de depuração:
PROLONGAR
As informações sobre quais arquivos de log o Logrotate está manipulando e o que está sendo executado neles serão impressas. Se tudo estiver certo, estamos prontos. O trabalho Logrotate padrão será executado uma vez por dia e incluirá suas novas configurações.
4. Como criar uma configuração de registro independente Lograte Linux
Primeiro, criaremos um arquivo de configuração em nosso diretório inicial. Podemos abri-lo com um editor de texto:
sudo nano /home/solvetic/logrotate.confNo novo arquivo, colaremos o seguinte:
/home/solvetic/logs/*.log {hourly missingok rotate 24 compress create}
PROLONGAR
Podemos salvar as alterações e sair do arquivo.
Essa configuração girará os arquivos a cada hora, compactando e preservando vinte e quatro registros antigos e criando um novo arquivo de log para substituir o arquivo girado. Para testar se funciona corretamente, podemos criar um arquivo de log executando as seguintes linhas:
cd ~ sudo mkdir logs sudo touch logs / access.log
PROLONGAR
Agora que temos um arquivo de log em branco no lugar certo, executaremos o comando logrotate.
Vamos executar o seguinte:
logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state -verbose
PROLONGAR
O parâmetro --verbose imprimirá informações detalhadas sobre o que estamos executando com o Logrotate. Nesse caso, veremos que nada girou. Esta é a primeira vez que o Logrotate vê este arquivo de log e, como sabemos, o arquivo tem zero horas e não deve ser girado.
Se olharmos para o arquivo de status, veremos que Logrotate registrou certas informações sobre a execução que realizamos:
cat / home / solvetic / logrotate-stateVeremos o seguinte:
PROLONGAR
Logrotate anotou os registros que analisou e quando os considerou pela última vez para rotação. Se executarmos esse mesmo comando uma hora depois, o registro será girado conforme pretendido. Se você quiser forçar o Logrotate a girar o arquivo de log quando não deveria, podemos usar a sinalização --force:
sudo logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state --verbose -force
5. Criação de uma tarefa agendada no Achieve Linux
Finalmente, devemos configurar um cron job para executar o Logrotate a cada hora. Para fazer isso, abrimos o crontab de nosso usuário executando o seguinte:
crontab -eNo arquivo aberto, adicionaremos a seguinte linha:
14 * * * * / usr / sbin / logrotate /home/solvetic/logrotate.conf --state / home / solvetic / logrotate-state
PROLONGAR
Esta tarefa será executada no 14º minuto de cada hora, todos os dias. Ele basicamente funciona com o mesmo comando logrotate que executamos anteriormente, embora tenhamos expandido logrotate para o caminho completo de / usr / sbin / logrotate. Podemos salvar o arquivo usando a combinação de teclas Ctrl + O e sair dele usando Ctrl + X.
Assim, vimos como o Logrotate é um utilitário simples, mas eficaz quando se trata de gerenciar e controlar registros em qualquer distribuição Linux.