systemd (Português)/Journal (Português)
systemd tem o seu próprio sistema de registro chamado de o journal e, portanto, a execução de uma daemon syslog
não é mais necessário. Para ler o registro, utilize:
# journalctl
No Arch Linux, o diretório /var/log/journal/
faz parte do pacote systemd e o journal (quando Storage=
está definido para auto
em /etc/systemd/journald.conf
) vai escrever para /var/log/journal/
. Se você ou algum programa excluir esse diretório, systemd não vai recriá-lo automaticamente e, em vez disso,vai escrever seus logs em /run/systemd/journal
em uma forma não persistente. Porém, a pasta será recriada quando você definir Storage=persistent
e reiniciar systemd-journald.service
(ou reinicializar o sistema).
O journal do systemd classifica mensagens por nível de prioridade e facilidade. A classificação de registro de logs corresponde ao clássico protocolo do Syslog (RFC 5424).
Nível de prioridade
Um código de severidade do syslog (em systemd chamado de prioridade) é usado para marcar a importância de uma mensagem RFC 5424 Seção 6.2.1.
Valor | Severidade | Palavra-chave | Descrição | Exemplos |
---|---|---|---|---|
0 | Emergência | emerg | Sistema não está usável | BUG de kernel severo, núcleo do systemd despejado. Esse nível não deve ser usado por aplicativos. |
1 | Alerta | alert | Deve ser corrigido imediatamente | Subsistema vital parou de funcionar. Perda de dados. . |
2 | Crítico | crit | Condições críticas | Travamentos, despejos de núcleo. Como flash familiar: Falha no aplicativo de sistema principal, como o X11. |
3 | Erro | err | Condições de erro | Erro não severo relatado:kernel: usb 1-3: 3:1: cannot get freq at ep 0x84 ,, . |
4 | Aviso | warning | Pode indicar que um erro vai ocorrer se uma ação não for tomada. | Um sistema de arquivos não raiz tem apenas 1GB livre.org.freedesktop. Notifications[1860]: (process:5999): Gtk-WARNING **: Locale not supported by C library. Using the fallback 'C' locale . |
5 | Nota | notice | Eventos que são incomuns, mas não condições de erro. | . . |
6 | Informacional | info | Mensagens de operação normais que exigem nenhuma ação. | . |
7 | Depuração | debug | Informações úteis para desenvolvedores para depurar o aplicativo. | . |
Se você não encontrar uma mensagem no nível de prioridade esperado, pesquise também alguns níveis acima e abaixo: essas regras são recomendações, e o desenvolvedor do aplicativo afetado pode ter uma percepção diferente da importância do problema.
Facilidade
Um código de facilidade syslog é usado para especificar o tipo de programa que está registrando a mensagem RFC 5424 Seção 6.2.1.
Código de facilidade | Palavra-chave | Descrição | Informação |
---|---|---|---|
0 | kern | mensagens de kernel | |
1 | user | mensagens de nível de usuário | |
2 | sistema de correio | O POSIX arcaico ainda tem suporte e é por vezes usado (para mais ) | |
3 | daemon | daemons de sistemas | Todos os daemons, incluindo systemd e seus subsistemas |
4 | auth | mensagens de segurança/autorização | Também monitora a facilidade 10 |
5 | syslog | mensagens geradas internamente pelo syslogd | Padronizado para syslog, não sendo usado pelo systemd (veja facilidade 3) |
6 | lpr | subsistema de impressora de linha (subsistema arcaico) | |
7 | news | subsistema de notícias de rede (subsistema arcaico) | |
8 | uucp | subsistema UUCP (subsistema arcaico) | |
9 | daemon de relógio | systemd-timesyncd | |
10 | authpriv | mensagens de segurança/autorização | Também monitora a facilidade 4 |
11 | ftp | daemon FTP | |
12 | - | subsistema NTP | |
13 | - | auditoria de log | |
14 | - | alerta de log | |
15 | cron | daemon de agendamento | |
16 | local0 | uso local 0 (local0) | |
17 | local1 | uso local 1 (local1) | |
18 | local2 | uso local 2 (local2) | |
19 | local3 | uso local 3 (local3) | |
20 | local4 | uso local 4 (local4) | |
21 | local5 | uso local 5 (local5) | |
22 | local6 | uso local 6 (local6) | |
23 | local7 | uso local 7 (local7) |
Então, facilidades que é útil monitorar: 0,1,3,4,9,10,15.
Filtrando saída
journalctl permite filtrar a saída por campos específicos. Esteja ciente de que, se houver muitas mensagens para exibir ou filtrar um grande intervalo de tempo, a saída desse comando poderá ser atrasada por algum tempo.
Exemplos:
- Mostrar todas mensagens desta inicialização: No entanto, muitas vezes, alguém está interessado em mensagens que não são da atual, mas da inicialização anterior (por exemplo, se uma falha irrecuperável de sistema ocorrer). Isso é possível através do parâmetro de deslocamento opcional da opção
-b
: mostra mensagens da inicialização atual,journalctl -b -1
da inicialização anterior, da segunda anterior e por aí vai – você pode ver a lista de inicializações com seus números usando . Veja para descrição completa, a semântica é muito mais poderosa. - Mostrar todas as mensagens da data (e hora opcional):
- Mostrar todas as mensagens desde 20 minutos atrás:
- Seguir novas mensagens:
- Mostrar novas mensagens por um executável específico:
- Mostrar todas as mensagens por um processo específico:
- Mostrar todas as mensagens por uma unit específica:
- Mostrar o ring buffer do kernel:
# journalctl -k
- Mostrar apenas mensagens de prioridade de erro, crítico e alerta
# journalctl -p err..alert
Números também podem ser usados, . Se somente um número/uma palavra-chave usado(a), - todos os níveis de prioridade maiores também são incluídos. - Mostrar equivalente a auth.log filtrando na facilidade do syslog:
- Se o diretório do journal (por padrão, localizado sob ) contém quantidade imensa de dados de log, então pode levar vários minutos filtrando a saída. Você pode acelerar significativamente usando a opção para forçar o a procurar apenas no journal mais recente:
Veja , ou a publicação de blogue do Lennart para detalhes.
SYSTEMD_LESS
, que contém opções passadas ao less (o paginador padrão) e usa como padrão FRSXMK
(veja less(1) e journalctl(1) para detalhes).
Ao omitir a opção S
, a saída estará sob wrap em vez de truncamento. Por exemplo, inicie journalctl da seguinte forma:
$ SYSTEMD_LESS=FRXMK journalctlSe você quiser definir esse comportamento como padrão, exporte a variável a partir de
~/.bashrc
ou ~/.zshrc
.Limite no tamanho do journal
Se o journal é persistente (não volátil), seu tamanho limite é definido para um valor padrão de 10% do tamanho do respectivo sistema de arquivos, mas limitado a 4 GB. Por exemplo, com o localizado em uma partição de 20 GB, o journal pode usar até 2 GB. Em uma partição de 50 GB, ela usaria no máximo até 4 GB.
O tamanho máximo do journal persistente pode ser controlado removendo o comentário e alterando o seguinte:
Também é possível usar o mecanismo de substituição de configuração de snippets de drop-in, em vez de editar o arquivo de configuração global. Neste caso, não esqueça de colocar as sobrescrições no cabeçalho :
/etc/systemd/journald.conf.d/00-journal-size.conf
[Journal] SystemMaxUse=50M
Reinicie o systemd-journald.service
após alterar essa configuração para aplicar imediatamente o novo limite.
Veja para mais informações.
Limpar arquivos de journal manualmente
Os arquivos de journal podem ser removidos globalmente de /var/log/journal/
usando, por exemplo, ou podem ser aparados de acordo com vários critérios usando . Exemplos:
- Remova arquivos de journal armazenados até que o espaço em disco que eles usam fique abaixo de 100 MB:
- Faça com que todos os arquivos de diário não contenham dados com mais de 2 semanas.
Veja para mais informações.
Journald em conjunto com o syslog
Compatibilidade com uma implementação clássica, sem journald, do syslog pode ser fornecida deixando o systemd encaminhar todas as mensagens pelo soquete . Para fazer funcionar o daemon do syslog com o journal, ele tem que associar a este soquete em vez de (anúncio oficial).
O journald.conf
padrão para encaminhar para o soquete é para evitar sobrecarga de sistema, porque rsyslog ou syslog-ng obtêm as mensagens do journal eles mesmo.
Veja Syslog-ng#Overview e Syslog-ng#syslog-ng and systemd journal e rsyslog, para detalhes sobre a configuração.
Encaminhar journald para /dev/tty12
Crie um diretório de drop-in e crie um arquivo fw-tty12.conf
nele:
Então, reinicie systemd-journald.service
.
Especificar um journal diferente para ver
Pode ser necessário verificar os logs de outro sistema que esteja inativo na água, como a inicialização de um sistema ativo para recuperar um sistema de produção. Nesse caso, pode-se montar o disco em, p. ex., e especificar o caminho do journal via /, assim:
$ journalctl -D /mnt/var/log/journal -xe