journalctl é, em uma explicação rápida, um componente do systemd. É responsável por capturar as mensagens de log do Syslog, do Kernel, bem como as mensagens de boot do sistema e, também, as mensagens escritas para STDOUT/STDERR de todos os serviços indexando-as e deixando-as disponíveis para o usuário. Pode ser usado em paralelo ou no lugar de um daemon syslog tradicional, como o rsyslog ou o syslog-ng.Para ter uma visão geral sobre os logs, basta digitar:
- Código: Selecionar todos
# journalctl
A saída do
journalctl se parece muito com uma cópia bit-a-bit do arquivo /var/log/messages tradicional, porém, sua saída traz, na verdade, uma série de melhorias:- Linhas com o nível de prioridade error (ou superior) são destacadas em vermelho
- Linhas com nível de prioridade notice/warning são destacadas em negrito
- O timestamp do log é convertido para o seu fuso horário;
- A saída é autopaginada com o pager de sua escolha (o padrão é less)
- Ele mostra todos os dados disponíveis, incluindo os logs rotacionados
journalctl, entretanto, dessa forma, só terão acesso aos seus próprios registros. Para que um usuário comum possa visualizar os logs de todo o sistema, bem como de todos os usuários, é necessário adicioná-lo ao grupo adm.- Código: Selecionar todos
# usermod -a -G adm <username>
O comando
journalctl ao ser invocado sem a passagem de parâmetros retorna uma quantidade considerável de informações, porém, as vezes, é necessário observar os logs à medida que são gerados em real time. Temos assim o- Código: Selecionar todos
# journalctl -f
Similar ao
tail -f /var/log/messages, faz exatamente isso: mostra as últimas dez linhas de registro e espera por mudanças, mostrando-as a medida que estas ocorrem.Para visualizar os registros apenas da inicialização atual podemos emitir o seguinte comando:
- Código: Selecionar todos
# journalctl -b
Com isto, temos todas as mensagens de log não importando as facilidades e nem mesmo o nível de prioridade das mesmas. Entretanto, é possível fazer uma filtragem e escolher, com o parâmetro
-p, a prioridade emerge, alert, crit, err(error), warning, notice, info, debug.- Código: Selecionar todos
# journalctl -b -p err
É possível, também, mostar os logs de uma determinada data no formato
YYYY-MM-DD assim:- Código: Selecionar todos
# journalctl --since="2016-06-25"
ou entre um intervalo de tempo no formato
YYYY-MM-DD HH:MM:SS- Código: Selecionar todos
# journalctl --since="2016-06-29 06:30" --until="2016-06-29 06:45"
Se quiser, pode-se omitir o dia:
- Código: Selecionar todos
# journalctl --since="06:30" --until="06:45"
Para verificar a saída de log de um serviço específico usa-se a opção
-u mais o nome do serviço, assim:- Código: Selecionar todos
# journalctl -u smbd
Para verificar como anda a saúde dos discos basta digitar:
- Código: Selecionar todos
# journalctl /dev/sda
Ou, então, para verificar problemas em algum binário do sistema, basta apenas informar o caminho completo até mesmo:
- Código: Selecionar todos
# journalctl /bin/avahi-daemon
- Código: Selecionar todos
# journalctl /usr/bin/login
O
journalctl também possui um detalhamento muito grande de cada saída de log e, além do mais, é possível usar o parâmetro -o e formartar essa saída com os seguintes valores: short, short-iso, short-precise, verbose, export, json, json-pretty, json-sse e cat:- Código: Selecionar todos
# journalctl -o cat
Outra vantagem do
journalctl é a possibilidade de passar como parâmetro o UID, GID ou o PID. Para um usuário cujo UID é 1000 pode-se fazer o seguinte comando:
- Código: Selecionar todos
# journalctl _UID=1000
ou para um processo cujo PID seja 624 pode-se emitir o comando:
- Código: Selecionar todos
# journalctl _PID=624
Se quiser verificar o espaço do disco usado pelos arquivos de log basta digitar:
- Código: Selecionar todos
# journalctl --disk-usage
É possível, com esses recursos apresentados, combinar os diversos parâmetros em uma complexa expressão lógica capaz de detectar qualquer problema. Então, use sem moderação.
Adaptação e tradução de: Systemd for Administrator, Man page




















