2
respostas

[Projeto] Faça como eu fiz: monitorando logs do sistema

Acesse os arquivos de logs do sistema syslog e auth.log e verifique seu conteúdo;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Utilize o comando grep com uma expressão regular para filtrar os logs de erros, falhas e acessos negados do arquivo syslog;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Utilize o comando awk para formatar a saída do comando grep, extraindo apenas as colunas 1, 2, 3 (relacionadas a data) e 5, 6, 7 (que informam o usuário ou serviço, timestamp completo e nível do log);

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Redirecione a saída desse bloco de comandos para um arquivo e verifique seu conteúdo;

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Crie um script bash, que cria um novo diretório para armazenar arquivos de relatórios e faça o filtro e formatação dos logs nesse script, salvando o resultado em um arquivo de relatório no diretório criado.

#!/bin/bash

LOG_DIR="monitoramento_sistema"
mkdir -p $LOG_DIR

grep -E "fail(ed)?|error|denied|unauthorized" /var/log/syslog | awk '{print $1, $2, $3, $5, $6, $7}' >  $LOG_DIR/monitoramento_logs_sistema.txt

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Não coloquei o log inteiro porque ficaria enorme.

2 respostas

Excelente script, Juliene! Ficou ótimo.

Fiquei com uma dúvida: vi que o desafio também pedia para verificar o auth.log. Você acha que valeria a pena adicionar ele também no comando grep? Talvez algo como:

grep -E "..." /var/log/syslog /var/log/auth.log | awk ...

Parabéns pelo projeto!

Bom dia, João! Valeria sim, o arquivo é enorme, acredito que seria mais eficiente filtrar pelo tipo de log colocando um grep