Como filtrar logs do systemd usando journalctl com exemplos
Logs são arquivos que contêm informações importantes do sistema. Essas informações incluem serviços, aplicativos e o kernel. Existem vários arquivos de log que contêm informações diferentes. Por exemplo, há um arquivo de log do sistema contendo mensagens de segurança e tarefas agendadas.
Existem 3 métodos usados pelos serviços para gravar logs. Há:
- Gravação direta – Os serviços gravam informações diretamente nos arquivos de log. Isso inclui Apache, Samba etc.
- rsyslogd – pode ser descrito como um aprimoramento do syslogd. Syslogd é um gerenciador de daemon Linux tradicional instalado a partir do pacote sysklogd. Com diversas melhorias, o rsyslogd foi introduzido para gerenciar logs centralizados.
- jornal – veio junto com a introdução de sistemas. Este serviço é integrado aos sistemas e permite que os administradores do sistema obtenham informações detalhadas do diário ao gerenciar serviços com o comando
systemctl status
.
Compreendendo o systemd diário
O daemon systemd-journald
coleta e armazena informações de log provenientes de diversas fontes. Essas entradas de diário são normalmente coletadas de mensagens do servidor, mensagens do kernel e mensagens do programa no modo de usuário. Ele armazenou os lançamentos contábeis manuais, independentemente de seus metadados, tamanho ou formato. O diário de eventos é então armazenado em formato binário e pode ser acessado usando o comando journalctl
. Os arquivos binários são armazenados em /run/log/journal ou /var/log/journal.
Este guia oferece uma ilustração detalhada de como filtrar logs do systemd usando journalctl
com exemplos.
Configurando o Journalctl
Journalctl pode ser configurado para fornecer o serviço desejado. As configurações que você pode fazer são explicadas abaixo.
Permissões
Journalctl permite visualizar logs como usuário root. Para ver mensagens de outros usuários e realizar operações de log como um usuário normal, você precisa adicionar seu usuário ao grupo systemd-journal.
O comando usado é:
sudo usermod -aG systemd-journal $USER
Persistindo logs no Systemd Journald
Os logs normalmente são armazenados em um caminho persistente /var/log/journal. Se o caminho estiver presente, os logs sobreviverão à reinicialização do sistema. Caso contrário, você pode criar o caminho e ativar um diário persistente usando os comandos:
sudo mkdir -p /var/log/journal
sudo chown root:systemd-journal /var/log/journal
sudo chmod 2755 /var/log/journal
sudo killall -USR1 systemd-journald
Verifique se o caminho foi criado corretamente usando o comando tree
:
$ sudo yum -y install tree
$ tree /var/log/journal
/var/log/journal
└── 9f4f62f8fec1487b98405a80137dfcef
└── system.journal
1 directory, 1 file
Outro método para ativar o log persistente é editar o arquivo conf e definir o caminho de armazenamento:
Por padrão, o armazenamento é definido como automático conforme abaixo:
$ cat /etc/systemd/journald.conf | grep Storage
#Storage=auto
Edite isso para persistente como abaixo.
$ sudo vi /etc/systemd/journald.conf
[Journal]
Storage=persistent
Reinicie o serviço diário
sudo systemctl restart systemd-journald.service
Como usar Journalctl com Systemd no Linux
Agora com as configurações desejadas, você pode usar o Journalctl para visualizar e filtrar os logs do systemd.
1. Uso Básico
Para mostrar todos os lançamentos contábeis manuais, use o comando:
journalctl
Este comando gerará todos os logs gerados no sistema. O utilitário pode ser usado com vários sinalizadores para filtrar os logs. Algumas das bandeiras utilizadas são elucidadas abaixo.
2. Visualize o tempo de execução dos logs do diário
Assim como tail -f
você pode visualizar logs em modo ao vivo com Journalctl. O comando permite visualizar novas mensagens do systemd-journald em tempo real. O comando usado é:
journalctl -f
Para interromper o comando, use Ctrl+C.
3. Mostrar mensagens relacionadas à inicialização
Com o Journalctl, você pode visualizar mensagens relacionadas à inicialização. Para visualizar mensagens da inicialização atual, use:
journalctl -b
Você também pode listar as mensagens de inicialização anteriores usando o comando abaixo. Mas isso precisa de um diário persistente configurado.
$ journalctl --list-boots
0 8ce572d58a6247a9b9cf57c4efd67624 Fri 2022-04-15 09:27:55 EDT—Fri 2022-04-15 >
Uma vez listado, visualize informações detalhadas sobre a inicialização. Para seu guia, visualizaremos os logs do deslocamento 0:
$ journalctl -b 0
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:33:32 EDT. --
Apr 15 09:27:55 localhost.localdomain kernel: Linux version 4.18.0-348.20.1.el8_5.x86_64 ([email ) (gcc version >
Apr 15 09:27:55 localhost.localdomain kernel: Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-348.20.1.el8_5.x86_64 root=/dev/mapper/a>
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'compacted' format.
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-provided physical RAM map:
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000100000-0x000000007ffdbfff] usable
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x000000007ffdc000-0x000000007fffffff] reserved
.....
4. Filtre os logs do systemd com base no carimbo de data/hora
Você pode visualizar os logs do sistema filtrando-os com base no carimbo de data/hora. Alguns dos argumentos utilizados são;
$ journalctl --since today
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:33:32 EDT. --
Apr 15 09:27:55 localhost.localdomain kernel: Linux version 4.18.0-348.20.1.el8_5.x86_64 ([email ) (gcc version >
Apr 15 09:27:55 localhost.localdomain kernel: Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-348.20.1.el8_5.x86_64 root=/dev/mapper/a>
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'compacted' format.
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-provided physical RAM map:
Você também pode verificar os registros anteriores:
$ journalctl --since "2022-04-14 01:00:00"
-- Logs begin at Fri 2022-04-15 09:31:33 EDT, end at Fri 2022-04-15 09:31:33 EDT. --
Apr 15 09:31:33 localhost.localdomain systemd[2183]: Starting Mark boot as successful...
Apr 15 09:31:33 localhost.localdomain systemd[2183]: Started Mark boot as successful.
Visualize registros entre um determinado período de tempo.
journalctl --since "2022-04-14 01:00:00" --until "2022-04-15 11:00:00"
Veja os registros de ontem:
journalctl --since yesterday --until now
5. Filtre mensagens com base no arquivo da unidade
O sinalizador -u é usado para especificar o serviço que você está procurando. Por exemplo, verificando os logs do serviço SSHD:
$ journalctl -u sshd.service
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:37:54 EDT. --
Apr 15 09:28:01 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
Apr 15 09:28:01 localhost.localdomain sshd[1044]: Server listening on 0.0.0.0 port 22.
Apr 15 09:28:01 localhost.localdomain sshd[1044]: Server listening on :: port 22.
Apr 15 09:28:01 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
Apr 15 09:28:52 localhost.localdomain sshd[2177]: Accepted password for alma from 192.168.232.3 port 43500 ssh2
Apr 15 09:28:52 localhost.localdomain sshd[2177]: pam_unix(sshd:session): session opened for user alma by (uid=0)
Você também pode especificar o serviço usando o argumento _SYSTEMD_UNIT
.
$ journalctl _SYSTEMD_UNIT=sshd.service
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:37:54 EDT. --
Apr 15 09:28:01 localhost.localdomain sshd[1044]: Server listening on 0.0.0.0 port 22.
Apr 15 09:28:01 localhost.localdomain sshd[1044]: Server listening on :: port 22.
Apr 15 09:28:52 localhost.localdomain sshd[2177]: Accepted password for alma from 192.168.232.3 port 43500 ssh2
Apr 15 09:28:52 localhost.localdomain sshd[2177]: pam_unix(sshd:session): session opened for user alma by (uid=0)
6. Filtre os logs com base no arquivo binário
Você pode usar o arquivo binário que interage com a unidade de serviço para visualizar logs. Por exemplo, para a unidade sshd, o comando será:
$ journalctl /sbin/sshd
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:37:54 EDT. --
Apr 15 09:28:01 localhost.localdomain sshd[1044]: Server listening on 0.0.0.0 port 22.
Apr 15 09:28:01 localhost.localdomain sshd[1044]: Server listening on :: port 22.
Apr 15 09:28:52 localhost.localdomain sshd[2177]: Accepted password for alma from 192.168.232.3 port 43500 ssh2
Apr 15 09:28:52 localhost.localdomain sshd[2177]: pam_unix(sshd:session): session opened for user alma by (uid=0)
7. Veja mais detalhes do registro.
Mensagens detalhadas com explicações podem ser visualizadas adicionando o -x
para ajudar você a entender os logs. Por exemplo, uma mensagem detalhada do serviço SSHD pode ser visualizada abaixo;
$ journalctl -u sshd.service -x
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:37:54 EDT. --
Apr 15 09:28:01 localhost.localdomain systemd[1]: Starting OpenSSH server daemon...
-- Subject: Unit sshd.service has begun start-up
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit sshd.service has begun starting up.
Apr 15 09:28:01 localhost.localdomain sshd[1044]: Server listening on 0.0.0.0 port 22.
Apr 15 09:28:01 localhost.localdomain sshd[1044]: Server listening on :: port 22.
Apr 15 09:28:01 localhost.localdomain systemd[1]: Started OpenSSH server daemon.
-- Subject: Unit sshd.service has finished start-up
-- Defined-By: systemd
-- Support: https://access.redhat.com/support
--
-- Unit sshd.service has finished starting up.
--
-- The start-up result is done.
Apr 15 09:28:52 localhost.localdomain sshd[2177]: Accepted password for alma from 192.168.232.3 port 43500 ssh2
Apr 15 09:28:52 localhost.localdomain sshd[2177]: pam_unix(sshd:session): session opened for user alma by (uid=0)
8. Filtre os logs com Process PID| ID de usuários ou grupo
Você também pode filtrar os logs a serem visualizados com base no PID do processo. Por exemplo;
$ journalctl _PID=1044
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:39:49 EDT. --
Apr 15 09:28:01 localhost.localdomain sshd[1044]: Server listening on 0.0.0.0 port 22.
Apr 15 09:28:01 localhost.localdomain sshd[1044]: Server listening on :: port 22.
Para filtrar logs com base no usuário, comece identificando o ID do usuário conforme abaixo. Digamos para um usuário Thor.
$ id alma
uid=1000(alma) gid=1000(alma) groups=1000(alma),190(systemd-journal)
Agora você pode filtrar logs com base no ID do usuário.
$ journalctl _UID=1000
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:39:49 EDT. --
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Reached target Paths.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Listening on Multimedia System.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Listening on Sound System.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Starting D-Bus User Message Bus Socket.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Started Mark boot as successful after the user session has run 2 minutes.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Reached target Timers.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Listening on D-Bus User Message Bus Socket.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Reached target Sockets.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Reached target Basic System.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Starting Sound Service...
Apr 15 09:28:53 localhost.localdomain systemd[2183]: Started D-Bus User Message Bus.
Apr 15 09:28:53 localhost.localdomain systemd[2183]: Started Sound Service.
Apr 15 09:28:53 localhost.localdomain systemd[2183]: Reached target Default.
Apr 15 09:28:53 localhost.localdomain systemd[2183]: Startup finished in 652ms.
...
Você também pode visualizar os logs do usuário atual com o comando
$ journalctl _UID=$(id -u)
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:39:49 EDT. --
Apr 15 09:27:55 localhost.localdomain systemd-journald[311]: Journal started
Apr 15 09:27:55 localhost.localdomain systemd-journald[311]: Runtime journal (/run/log/journal/9f4f62f8fec1487b98405a80137dfcef) is 8.0M, m>
Apr 15 09:27:55 localhost.localdomain systemd-modules-load[307]: Inserted module 'fuse'
Apr 15 09:27:55 localhost.localdomain systemd-modules-load[307]: Module 'msr' is builtin
Apr 15 09:27:55 localhost.localdomain rngd[310]: Initializing available sources
Apr 15 09:27:55 localhost.localdomain rngd[310]: [hwrng ]: Initialization Failed
Apr 15 09:27:55 localhost.localdomain rngd[310]: [rdrand]: Enabling RDSEED rng support
Apr 15 09:27:55 localhost.localdomain rngd[310]: [rdrand]: Initialized
Apr 15 09:27:55 localhost.localdomain rngd[310]: [jitter]: Initializing AES buffer
Apr 15 09:27:56 localhost.localdomain systemd[1]: systemd-vconsole-setup.service: Succeeded.
Apr 15 09:27:56 localhost.localdomain systemd[1]: Started Setup Virtual Console.
Apr 15 09:27:56 localhost.localdomain systemd[1]: Starting dracut cmdline hook...
Apr 15 09:27:56 localhost.localdomain dracut-cmdline[337]: dracut-8.5 (Arctic Sphynx) dracut-049-191.git20210920.el8
Apr 15 09:27:56 localhost.localdomain dracut-cmdline[337]: Using kernel command line parameters: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-348>
Apr 15 09:27:56 localhost.localdomain systemd[1]: Started dracut cmdline hook.
Para filtrar logs com base no GID, use o comando:
$ journalctl _GID=1000
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:39:49 EDT. --
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Reached target Paths.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Listening on Multimedia System.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Listening on Sound System.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Starting D-Bus User Message Bus Socket.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Started Mark boot as successful after the user session has run 2 minutes.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Reached target Timers.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Listening on D-Bus User Message Bus Socket.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Reached target Sockets.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Reached target Basic System.
Apr 15 09:28:52 localhost.localdomain systemd[2183]: Starting Sound Service...
9. Filtre os registros por prioridade
Ao filtrar logs com base na propriedade, o sinalizador -p
é usado. Este sinalizador também leva o nome da prioridade ou seu valor numérico, como:
- 0 – emergir
- 1- alerta
- 2 – crítico
- 3 – errar
- 4 – aviso
- 5 – aviso
- 6 – informações
- 7 – depuração
Por exemplo, para filtrar logs pela prioridade debug, o comando será:
$ journalctl -p 7
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:39:49 EDT. --
Apr 15 09:27:55 localhost.localdomain kernel: Linux version 4.18.0-348.20.1.el8_5.x86_64 ([email ) (gcc version >
Apr 15 09:27:55 localhost.localdomain kernel: Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-348.20.1.el8_5.x86_64 root=/dev/mapper/a>
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'compacted' format.
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-provided physical RAM map:
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000100000-0x000000007ffdbfff] usable
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x000000007ffdc000-0x000000007fffffff] reserved
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000b0000000-0x00000000bfffffff] reserved
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000feffc000-0x00000000feffffff] reserved
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000fffc0000-0x00000000ffffffff] reserved
....
Você também pode visualizar logs para um intervalo, digamos, emerg(0) e critic(2):
$ journalctl -p 0..2
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:43:15 EDT. --
Apr 15 09:28:00 localhost.localdomain smartd[887]: In the system's table of devices NO devices found to scan
10. Filtrar mensagens do kernel
As mensagens do Kernel podem ser visualizadas abaixo:
$ journalctl -k
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:43:15 EDT. --
Apr 15 09:27:55 localhost.localdomain kernel: Linux version 4.18.0-348.20.1.el8_5.x86_64 ([email ) (gcc version >
Apr 15 09:27:55 localhost.localdomain kernel: Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-348.20.1.el8_5.x86_64 root=/dev/mapper/a>
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'compacted' format.
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-provided physical RAM map:
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000100000-0x000000007ffdbfff] usable
.....
alternativamente, você pode usar o sinalizador _TRANSPORT para os logs do kernel conforme abaixo.
$ journalctl _TRANSPORT=kernel
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:43:15 EDT. --
Apr 15 09:27:55 localhost.localdomain kernel: Linux version 4.18.0-348.20.1.el8_5.x86_64 ([email ) (gcc version >
Apr 15 09:27:55 localhost.localdomain kernel: Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-348.20.1.el8_5.x86_64 root=/dev/mapper/a>
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x002: 'SSE registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Supporting XSAVE feature 0x004: 'AVX registers'
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: xstate_offset[2]: 576, xstate_sizes[2]: 256
Apr 15 09:27:55 localhost.localdomain kernel: x86/fpu: Enabled xstate features 0x7, context size is 832 bytes, using 'compacted' format.
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-provided physical RAM map:
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000000000-0x000000000009fbff] usable
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x000000000009fc00-0x000000000009ffff] reserved
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x00000000000f0000-0x00000000000fffff] reserved
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x0000000000100000-0x000000007ffdbfff] usable
Apr 15 09:27:55 localhost.localdomain kernel: BIOS-e820: [mem 0x000000007ffdc000-0x000000007fffffff] reserved
........
11. Verifique o uso do disco e da memória pelos registros do diário e execute a limpeza
Se você configurou o log persistente, a quantidade de disco utilizada pode ser mostrada abaixo:
$ journalctl --disk-usage
Archived and active journals take up 206.0M in the file system.
Para aqueles que não configuraram o log persistente, o comando acima exibiu a memória usada.
O disco pode ser limpo usando o comando --vaccum-size
. Por exemplo, reduzindo o uso do arquivo de diário para 200 MB, o comando será:
$ journalctl --vacuum-size=200M
Deleted archived journal /run/log/journal/9bf0fc6f60ce41149a0a540f52db9773/system@822262d9c350464d9b67a3fd4fa4b8d8-00000000003bf4d9-000591cb0a1ae4c4.journal (6.0M).
Vacuuming done, freed 6.0M of archived journals on disk.
Verifique se as alterações foram feitas:
$ journalctl --disk-usage
Archived and active journals take up 200.0M on disk.
12. Visualizar registros no modo detalhado
Systemd pode ser visualizado no modo detalhado com o comando:
$ journalctl -o verbose
-- Logs begin at Fri 2022-04-15 09:27:55 EDT, end at Fri 2022-04-15 09:43:15 EDT. --
Fri 2022-04-15 09:27:55.664729 EDT [s=b7740adaec2e45a7ae7671427226140e;i=1;b=8ce572d58a6247a9b9cf57c4efd67624;m=105783;t=5dcb160d85159;x=6f>
_SOURCE_MONOTONIC_TIMESTAMP=0
_TRANSPORT=kernel
PRIORITY=5
SYSLOG_FACILITY=0
SYSLOG_IDENTIFIER=kernel
MESSAGE=Linux version 4.18.0-348.20.1.el8_5.x86_64 ([email ) (gcc version 8.5.0 20210514 (Red Hat 8.5.0-4) (>
_BOOT_ID=8ce572d58a6247a9b9cf57c4efd67624
_MACHINE_ID=9f4f62f8fec1487b98405a80137dfcef
_HOSTNAME=localhost.localdomain
Fri 2022-04-15 09:27:55.667768 EDT [s=b7740adaec2e45a7ae7671427226140e;i=2;b=8ce572d58a6247a9b9cf57c4efd67624;m=106362;t=5dcb160d85d38;x=50>
_SOURCE_MONOTONIC_TIMESTAMP=0
_TRANSPORT=kernel
SYSLOG_FACILITY=0
SYSLOG_IDENTIFIER=kernel
_BOOT_ID=8ce572d58a6247a9b9cf57c4efd67624
_MACHINE_ID=9f4f62f8fec1487b98405a80137dfcef
_HOSTNAME=localhost.localdomain
PRIORITY=6
MESSAGE=Command line: BOOT_IMAGE=(hd0,msdos1)/vmlinuz-4.18.0-348.20.1.el8_5.x86_64 root=/dev/mapper/almalinux-root ro crashkernel=auto >
Fri 2022-04-15 09:27:55.667783 EDT [s=b7740adaec2e45a7ae7671427226140e;i=3;b=8ce572d58a6247a9b9cf57c4efd67624;m=106371;t=5dcb160d85d47;x=22>
_SOURCE_MONOTONIC_TIMESTAMP=0
_TRANSPORT=kernel
SYSLOG_FACILITY=0
SYSLOG_IDENTIFIER=kernel
_BOOT_ID=8ce572d58a6247a9b9cf57c4efd67624
_MACHINE_ID=9f4f62f8fec1487b98405a80137dfcef
_HOSTNAME=localhost.localdomain
PRIORITY=6
MESSAGE=x86/fpu: Supporting XSAVE feature 0x001: 'x87 floating point registers'
...
O fim!
Espero que o guia tenha sido significativo. Este guia forneceu apenas alguns exemplos sobre como filtrar logs do systemd usando journalctl. Existem mais outros usos do Journalctl encontrados na página de manual do Journalctl.
Postagens relacionadas:
- Encaminhar logs e métricas do servidor para o Elasticsearch usando Beats
- Como encaminhar logs para Grafana Loki usando Promtail
- Encaminhar logs do Kubernetes para Elasticsearch (ELK) usando Fluentbit