Trabalhando Nativamente com Logs no Linux
A maioria das distribuições Linux já tem um controle nativo dos arquivos de logs, mas ele depende de como o sistema está configurado.
Veremos como isso funciona.
Veremos como isso funciona.
Introdução
A maioria das distribuições Linux já tem um controle nativo dos arquivos de logs, mas ele depende de como o sistema está configurado.
Algum ou outro programa pode instalar seu log em outro lugar que não
Caso tenha um crescimento exagerado e por "crescimento exagerado" estou falando de coisa de GBs para cima, então é por que tem algum problema no sistema e você terá de identificar qual o problema de o sistema aumentar exageradamente os logs ou um log em específico.
Nas distribuições que tem o
Nas distribuições que não tem o
O
O
Uma boa prática básica para servidor é definir limites no
E confiar no
Sem
Nível do artigo: Básico.
Algum ou outro programa pode instalar seu log em outro lugar que não
/var/log ou você mesmo durante a instalação manual pode ter colocado o arquivo de log em outro lugar.
A maioria das distribuições Linux, não gera um número fixo de arquivos de log. Em vez disso, ele utiliza o diretório centralizado (/var/log) onde o sistema operacional, o kernel e os aplicativos instalados criam seus arquivos e o próprio sistema gerencia isso.
Caso tenha um crescimento exagerado e por "crescimento exagerado" estou falando de coisa de GBs para cima, então é por que tem algum problema no sistema e você terá de identificar qual o problema de o sistema aumentar exageradamente os logs ou um log em específico.
Nas distribuições que tem o
Systemd, quem controla logs no Linux hoje é o systemd-journald, no caso, Debian, Arch, Ubuntu, Mint, etc.
Nas distribuições que não tem o
Systemd, como, por exemplo, Slackware, Gentoo, Alpine, Void Linux, etc, entra um desses: syslog-ng, rsyslog, busybox, syslogd (sistemas mínimos) e metalog (menos comum), além de outros específicos de cada distribuição.
O
logrotate (logs em arquivos texto), comum na esmagadora maioria das distribuições com ou sem Systemd, cuida de logs como:
- /var/log/syslog
- /var/log/auth.log
- /var/log/apache2/*.log
- /var/log/nginx/*.log
O
logrotate gira logs (rotate), compacta (.gz), apaga logs antigos, roda automaticamente (cron ou systemd timer), etc.
A configuração fica, basicamente, em /etc/logrotate.conf e /etc/logrotate.d/.
Uma boa prática básica para servidor é definir limites no
/etc/systemd/journald.conf, por exemplo:
SystemMaxUse=100M SystemKeepFree=1G
E confiar no
logrotate para o resto.
Sem
Systemd podemos definir limites em /etc/logrotate.conf:
# see "man logrotate" for details # global options do not affect preceding include directives # rotate log files weekly weekly # keep 4 weeks worth of backlogs rotate 4 # create new (empty) log files after rotating old ones create # use date as a suffix of the rotated file #dateext # uncomment this if you want your log files compressed #compress # packages drop log rotation information into this directory include /etc/logrotate.d # system-specific logs may also be configured here.
Nível do artigo: Básico.