O sistema de logs da maioria das distribuições Linux é o
Journal, que faz parte do systemd tão criticado pelos mais "raiz" no uso do sistema. O Journal é o serviço que grava todos os logs gerados pelo sistema, desde o boot até a finalização do uso na máquina. Normalmente esses dados são carregados em memória e dinamicamente alocado no disco, podendo ser acessados pelo comando journalctl seguido de parâmetros que, para um usuário mais iniciante, pode ser um saco saber. Por exemplo, para saber os logs do ssh:journalctl -xe | grep ssh
Hint: You are currently not seeing messages from other users and the system.
Users in groups 'adm', 'systemd-journal' can see all messages.
Pass -q to turn off this notice.
abr 23 10:26:13 debian systemd[736]: Starting gcr-ssh-agent.socket - GCR ssh-agent wrapper...
abr 23 10:26:13 debian systemd[736]: Starting gpg-agent-ssh.socket - GnuPG cryptographic agent (ssh-agent emulation)...
abr 23 10:26:13 debian systemd[736]: Starting ssh-agent.socket - OpenSSH Agent socket...
abr 23 10:26:13 debian systemd[736]: Listening on gcr-ssh-agent.socket - GCR ssh-agent wrapper.
abr 23 10:26:13 debian systemd[736]: Listening on ssh-agent.socket - OpenSSH Agent socket.
abr 23 10:26:13 debian systemd[736]: Listening on gpg-agent-ssh.socket - GnuPG cryptographic agent (ssh-agent emulation).
abr 23 10:26:22 debian gpg-agent[971]: using fd 4 for ssh socket (/run/user/1001/gnupg/S.gpg-agent.ssh)
abr 23 10:26:22 debian gpg-agent[971]: listening on: std=3 extra=6 browser=5 ssh=4
abr 23 10:26:22 debian gpg-agent[976]: using fd 4 for ssh socket (/run/user/1001/gnupg/S.gpg-agent.ssh)
abr 23 10:26:22 debian gpg-agent[976]: listening on: std=3 extra=6 browser=5 ssh=4
Hint: You are currently not seeing messages from other users and the system.
Users in groups 'adm', 'systemd-journal' can see all messages.
Pass -q to turn off this notice.
abr 23 10:26:13 debian systemd[736]: Starting gcr-ssh-agent.socket - GCR ssh-agent wrapper...
abr 23 10:26:13 debian systemd[736]: Starting gpg-agent-ssh.socket - GnuPG cryptographic agent (ssh-agent emulation)...
abr 23 10:26:13 debian systemd[736]: Starting ssh-agent.socket - OpenSSH Agent socket...
abr 23 10:26:13 debian systemd[736]: Listening on gcr-ssh-agent.socket - GCR ssh-agent wrapper.
abr 23 10:26:13 debian systemd[736]: Listening on ssh-agent.socket - OpenSSH Agent socket.
abr 23 10:26:13 debian systemd[736]: Listening on gpg-agent-ssh.socket - GnuPG cryptographic agent (ssh-agent emulation).
abr 23 10:26:22 debian gpg-agent[971]: using fd 4 for ssh socket (/run/user/1001/gnupg/S.gpg-agent.ssh)
abr 23 10:26:22 debian gpg-agent[971]: listening on: std=3 extra=6 browser=5 ssh=4
abr 23 10:26:22 debian gpg-agent[976]: using fd 4 for ssh socket (/run/user/1001/gnupg/S.gpg-agent.ssh)
abr 23 10:26:22 debian gpg-agent[976]: listening on: std=3 extra=6 browser=5 ssh=4
Nesse exemplo que vou mostrar, mostra um usuário editando o GDM3 para ser o gerenciador de login gráfico:
journalctl -b | grep gdm
Hint: You are currently not seeing messages from other users and the system.
Users in groups 'adm', 'systemd-journal' can see all messages.
Pass -q to turn off this notice.
abr 23 10:27:25 debian sudo[1993]: sidserra : TTY=pts/0 ; PWD=/home/sidserra ; USER=root ; COMMAND=/usr/bin/nano /etc/gdm3/daemon.conf
abr 23 10:27:53 debian sudo[2655]: sidserra : TTY=pts/0 ; PWD=/home/sidserra ; USER=root ; COMMAND=/usr/bin/systemctl enable gdm3
abr 23 10:27:57 debian sudo[2938]: sidserra : TTY=pts/0 ; PWD=/home/sidserra ; USER=root ; COMMAND=/usr/bin/systemctl enable gdm
abr 23 10:28:22 debian sudo[3362]: sidserra : TTY=pts/0 ; PWD=/home/sidserra ; USER=root ; COMMAND=/usr/sbin/dpkg-reconfigure gdm3
Hint: You are currently not seeing messages from other users and the system.
Users in groups 'adm', 'systemd-journal' can see all messages.
Pass -q to turn off this notice.
abr 23 10:27:25 debian sudo[1993]: sidserra : TTY=pts/0 ; PWD=/home/sidserra ; USER=root ; COMMAND=/usr/bin/nano /etc/gdm3/daemon.conf
abr 23 10:27:53 debian sudo[2655]: sidserra : TTY=pts/0 ; PWD=/home/sidserra ; USER=root ; COMMAND=/usr/bin/systemctl enable gdm3
abr 23 10:27:57 debian sudo[2938]: sidserra : TTY=pts/0 ; PWD=/home/sidserra ; USER=root ; COMMAND=/usr/bin/systemctl enable gdm
abr 23 10:28:22 debian sudo[3362]: sidserra : TTY=pts/0 ; PWD=/home/sidserra ; USER=root ; COMMAND=/usr/sbin/dpkg-reconfigure gdm3
Também é possível "monitorar" o Journal em tempo real em busca de algum tipo de problema que não permitiu (ou não permite) algum programa ou recurso funcionar no sistema; o exemplo abaixo fica de olho no que acontece na sessão do usuário:
journalctl --user -f
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "640x480"x0.0 30.24 640 704 768 864 480 483 486 525 -hsync -vsync (35.0 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "640x480"x0.0 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "720x400"x0.0 28.32 720 738 846 900 400 412 414 449 -hsync +vsync (31.5 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "1024x768"x0.0 78.75 1024 1040 1136 1312 768 769 772 800 +hsync +vsync (60.0 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "1024x768"x0.0 75.00 1024 1048 1184 1328 768 771 777 806 -hsync -vsync (56.5 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "1024x768"x0.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "832x624"x0.0 57.28 832 864 928 1152 624 625 628 667 -hsync -vsync (49.7 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "800x600"x0.0 49.50 800 816 896 1056 600 601 604 625 +hsync +vsync (46.9 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "800x600"x0.0 50.00 800 856 976 1040 600 637 643 666 +hsync +vsync (48.1 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "640x480"x0.0 30.24 640 704 768 864 480 483 486 525 -hsync -vsync (35.0 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "640x480"x0.0 25.18 640 656 752 800 480 490 492 525 -hsync -vsync (31.5 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "720x400"x0.0 28.32 720 738 846 900 400 412 414 449 -hsync +vsync (31.5 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "1024x768"x0.0 78.75 1024 1040 1136 1312 768 769 772 800 +hsync +vsync (60.0 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "1024x768"x0.0 75.00 1024 1048 1184 1328 768 771 777 806 -hsync -vsync (56.5 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "1024x768"x0.0 65.00 1024 1048 1184 1344 768 771 777 806 -hsync -vsync (48.4 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "832x624"x0.0 57.28 832 864 928 1152 624 625 628 667 -hsync -vsync (49.7 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "800x600"x0.0 49.50 800 816 896 1056 600 601 604 625 +hsync +vsync (46.9 kHz e)
abr 23 18:17:18 debian /usr/libexec/gdm-x-session[680]: (II) modeset(0): Modeline "800x600"x0.0 50.00 800 856 976 1040 600 637 643 666 +hsync +vsync (48.1 kHz e)
De um modo geral, o usuário praticamente nunca vai usar esse tipo de recurso - verificar logs - pois normalmente quem faz esse tipo de coisa são usuários mais experientes ou mesmo aqueles que querem conhecer mais do sistema.
Há programas gráficos para isso e um deles é o
Há programas gráficos para isso e um deles é o
Gnome Logs e normalmente já vem instalado:
Apesar da moçada mais ligada na bagaça preferir linha de comando por já terem esse conhecimento, essa ferramenta gráfica é bastante útil e tem até procura e exportação de logs para arquivo de texto.
Uma coisa que pode ser problemática é que os logs podem ficar quilométricos já que registram tudo mas dá pra configurar certas coisas no recurso de modo a se adequar a máquinas mais antigas com poucos recuros (disco rígido lento, pouca memória ram e de baixa velocidade, processador modesto, etc). O arquivo de configuração fica em /etc/systemd/journald.conf. Uma configuração legal vai depender do tipo de uso da máquina e por quanto tempo se quer logs guardados para acesso posterior. O comando abaixo "mede" mais ou menos o quanto de dados são gerados em 24 horas:
Uma coisa que pode ser problemática é que os logs podem ficar quilométricos já que registram tudo mas dá pra configurar certas coisas no recurso de modo a se adequar a máquinas mais antigas com poucos recuros (disco rígido lento, pouca memória ram e de baixa velocidade, processador modesto, etc). O arquivo de configuração fica em /etc/systemd/journald.conf. Uma configuração legal vai depender do tipo de uso da máquina e por quanto tempo se quer logs guardados para acesso posterior. O comando abaixo "mede" mais ou menos o quanto de dados são gerados em 24 horas:
journalctl --since "24 hours ago" | wc -c
Hint: You are currently not seeing messages from other users and the system.
Users in groups 'adm', 'systemd-journal' can see all messages.
Pass -q to turn off this notice.
10203872
Hint: You are currently not seeing messages from other users and the system.
Users in groups 'adm', 'systemd-journal' can see all messages.
Pass -q to turn off this notice.
10203872
O número 10203872 mostra que um dia (últimas 24 horas) de uso da máquina geraram 10MB de logs; de posse desse dado dá pra dosar mais ou menos o tamanho dos logs para que não pese no uso da máquina. Edite o arquivo /etc/systemd/journald.conf:
sudo nano /etc/systemd/journald.conf
Bote # em todas as linhas e coloque esses parâmetros:
[journal]
Storage=persistent
SystemMaxUse=50M
SystemMaxFileSize=5M
RuntimeMaxUse=20M
Compress=yes
Seal=no
RateLimitIntervalSec=30s
RateLimitBurst=200
MaxRetentionSec=7day
SyncIntervalSec=5m
Storage=persistent
SystemMaxUse=50M
SystemMaxFileSize=5M
RuntimeMaxUse=20M
Compress=yes
Seal=no
RateLimitIntervalSec=30s
RateLimitBurst=200
MaxRetentionSec=7day
SyncIntervalSec=5m
Salve e reinicie a máquina. Esse parâmetro (SystemMaxUse=50M) limita o tamanho dos logs a 50MB e, comparando com a configuração de 10MB da máquina, é suficiente para aproximadamente 5 dias. Você pode mudar esse parâmetro de acordo com a situação mas normalmente os valores originais dão conta. A configuração "por fora" é mais para garantir logs mais simples e menores para não ocupar espaço em disco e que também não é aquela perda de espaço como pode parecer.
Para saber qual o tamanho dos logs do journal:
Para saber qual o tamanho dos logs do journal:
journalctl --disk-usage
Para a pasta de logs (espaço real usado em disco):
sudo du -sh /var/log/journal
Para dar uma "flushada" caso seus logs sejam grandes:
sudo journalctl --vacuum-size=50M
O comando dado vai fazer o journal "limpar" os logs mais antigos. Para SSD, bote no arquivo journald.conf as linhas (mostrando o que cada linha faz):
[Journal]
Storage=persistent
# Limite bem controlado no disco
SystemMaxUse=100M
SystemMaxFileSize=10M
# RAM como buffer
RuntimeMaxUse=30M
# Compressão ajuda a reduzir escrita total
Compress=yes
# Integridade desligada (menos escrita extra)
Seal=no
# Evita flood de logs
RateLimitIntervalSec=30s
RateLimitBurst=200
# Retenção moderada
MaxRetentionSec=7day
# Reduz frequência de sync (menos escrita no SSD)
SyncIntervalSec=10m
Storage=persistent
# Limite bem controlado no disco
SystemMaxUse=100M
SystemMaxFileSize=10M
# RAM como buffer
RuntimeMaxUse=30M
# Compressão ajuda a reduzir escrita total
Compress=yes
# Integridade desligada (menos escrita extra)
Seal=no
# Evita flood de logs
RateLimitIntervalSec=30s
RateLimitBurst=200
# Retenção moderada
MaxRetentionSec=7day
# Reduz frequência de sync (menos escrita no SSD)
SyncIntervalSec=10m
Salve e reinicie a máquina e veja como a máquina se comporta. Você pode zerar os logs pra começar as coisas de modo limpo:
sudo systemctl stop systemd-journald
sudo rm -rf /var/log/journal/*
sudo systemctl start systemd-journald
sudo rm -rf /var/log/journal/*
sudo systemctl start systemd-journald
Essas configurações, como dito antes, visam otimizar o uso do recurso de modo a não ficar com tudo gigantão, facilitando o gerenciamento dos logs em caso de problemas.
Nenhum comentário:
Postar um comentário