Quando gerenciamos sistemas operacionais Linux, existem centenas de processos que devemos revisar constantemente para manter os melhores níveis de serviço no servidor ou nos computadores clientes. Em ambientes Linux encontramos Systemd que é um sistema inovador que nos permite coletar informações sobre processos paralelos durante a inicialização do sistema operacional.
O Systemd está presente na maioria das distros Linux como Fedora, Debian, Ubuntu, OpenSuSE, Arch, RHEL, CentOS e outras. Com o Systemd, temos a opção de gerenciar de forma centralizada todos os serviços e processos do sistema. Para esta análise, usaremos o CentOS 7.
1. Configurando o Journald para coletar logs do Systemd
Basicamente, o journald é responsável por coletar e escrever as entradas diárias do sistema operacional, como mensagens de inicialização, mensagens do kernel, mensagens do syslog, logs do aplicativo, entre outros. Todas as informações no Journald são hospedadas no caminho /etc/systemd/journald.conf e os valores registrados lá estão de acordo com os requisitos do sistema local.
Uma maneira simples de visualizar o conteúdo desta rota é executando a seguinte linha com o parâmetro cat:
cat /etc/systemd/journald.conf
2. Habilitar diário no armazenamento em disco
A maioria das distribuições do Linux não permite que mensagens persistentes sejam armazenadas em seu sistema de inicialização para coletar as informações de tal inicialização.
Para habilitar este log, será necessário acessar o caminho / var / log / journal e editar a linha Storage ali. Para acessá-lo, usaremos editores como nano ou vi da seguinte maneira:
sudo vi /etc/systemd/journald.conf sudo nano /etc/systemd/journald.confAo acessar este arquivo, veremos o seguinte:
Lá, modificaremos a linha Storage do valor auto para o valor persistent:
Guardar mudançasSalvamos as alterações usando as teclas Ctrl + O e saímos do editor usando Ctrl + X.
Para obter informações detalhadas sobre cada um dos elementos do Journal, podemos executar a seguinte linha:
man journald.conf
3. Definir a data e hora usando Timedatectl
Esse aspecto é importante, pois por ter uma configuração correta de data e hora, os registros ficarão muito mais confiáveis e precisos.
Para exibir a data e hora atuais, executaremos uma das seguintes linhas:
status timedatectl timedatectlO resultado será o seguinte:
No caso de definir um fuso horário diferente, executaremos a seguinte sintaxe:
sudo timedatectl set-timezone (cidade / país) sudo timedatectl set-time "HH: MM: SS"
4. Ver mensagens de registros usando o Journalctl
O comando journalctl é um utilitário incluído no Linux que nos permite ver o conteúdo do systemd. Para exibir todos os registros sem filtragem, executaremos a seguinte linha:
journalctlO resultado será o seguinte:
Agora, os seguintes são os filtros que podemos usar com o Journalctl:
Filtros baseados em inicializaçãoEste filtro permite visualizar os números de boot, seus IDs, seus timestamps, entre outros valores.
Para isso, usaremos o parâmetro --list-boots:
journalctl --list-boots
Se quisermos ver os registros da inicialização atual, usaremos a seguinte linha:
journalctl -bPara ver os registros anteriores, usaremos a seguinte linha:
journalctl -b -1
Filtros baseados em tempoCom este filtro, podemos usar o formato UTC (Coordinated Universal Time - Coordinated Universal Time) usando o parâmetro -utc:
journalctl -utc
Além disso, podemos adicionar filtros da seguinte maneira:
journalctl --since "2017-07-02 08:30:00" (Exibe os resultados da data indicada) journalctl --since hoje (Exibe os resultados do dia atual) journalctl --since ontem (Exibe os resultados do dia atual anterior)
Veja os últimos eventosO valor padrão que o Journalctl usa é 10 registros, mas se usarmos o parâmetro -n podemos indicar uma quantidade maior ou menor.
journalctl -n 5
Ver eventos gerados pelo kernelPara exibir as mensagens geradas pelo kernel, usaremos o parâmetro -k da seguinte maneira:
journalctl -k
Da mesma forma, temos as seguintes opções:
- Ver eventos por unidades:
journalctl -u (serviço)
- Visualize eventos por processos:
journalctl _PID = (# PID), journalctl _PID = (PID) - desde hoje, journalctl _PID = (PID) - desde ontem
- Ver eventos por usuário ou ID de grupo:
journalctl _UID = 1000
- Veja os eventos gerados por um arquivo específico:
journalctl / usr / bin / bash
- Veja os eventos por prioridade: journalctl -p (Código ou termo), as opções disponíveis são:
0 - emergência, 1 - alerta, 2 - crítico, 3 - erro, 4 - aviso, 5 - aviso, 6 - informações, 7 - depuração
Desta forma, o Journalctl oferece múltiplas soluções práticas para realizar esta tarefa.