Monitoramento automático de logs e alertas por e-mail - Fácil e explicado

Vou mostrar, de forma bem simples, como monitorar logs e receber alertas por e-mail, apenas quando a condição desejada aparecer no log. Existem vários tutoriais que ensinam a fazer a mesma coisa, porém, muito complicados, cheios de programas e scripts imensos. Vou tentar mostrar como ter o mesmo efeito, ou quase, de uma forma bem menos complicada.

[ Hits: 28.157 ]

Por: Tiago duarte em 07/02/2014


Configuração



Configuração 1

Neste tutorial, vou monitorar como exemplo o arquivo de log /var/log/auth.log. Mas, a mesma lógica e comandos podem ser usados para outros logs.

No auth.log estão todos os registros de autenticações realizadas no sistema. Vamos, então, configurar nosso script para recebermos alertas todas as vezes que o comando sudo ou su for usado no sistema. Ou seja, todas as vezes que alguém tentar se transformar em root ou tentar usar algum comando como root, nós receberemos um e-mail.

Primeiro, defina uma pasta para manter os arquivos que farão parte da configuração. No meu caso, irei usar a pasta /root/script/.

Criando a pasta:

# mkdir /root/script/

Após criar a pasta, vamos criar o arquivo base:

# grep su /var/log/auth.log > /root/script/original

Este comando diz o seguinte:
  • Encontre a palavra su em: /var/log/auth.log
  • E escreva o resultado em: /root/script/original

Configuração 2 - O script

Agora, vamos criar o script. Crie o arquivo de script com o comando:

# nano /root/script/atual.sh

Edite o arquivo com o conteúdo abaixo:

grep su /var/log/auth.log > atual
diff original atual
if [ $? -eq 0 ]; then
echo "nada mudou"
else
diff original atual | mailx -s assunto fulano@gmail.com
fi

grep su /var/log/auth.log > original

Saia do arquivo, salvando-o. O comando no nano para isso é: Ctrl+x

Entendendo o script:
  • A primeira linha cria o arquivo atual para comparação.
  • A segunda linha compara o arquivo original com o atual.
  • A terceira linha é o início do teste lógico, onde $? é a saída do comando anterior e -eq significa igual.
  • A quarta linha é a resposta do programa caso a condição da terceira linha seja atendida.
  • else = senão.
  • A sexta linha é a execução, caso a condição da terceira linha não seja atendida. O comando desta linha diz: compare original com atual, enviando o seu resultado para o e-mail fulano@gmail.com.
  • fi = fim.

Então, a leitura do algoritmo fica assim: Se saída igual a zero, então exiba "nada mudou". Se não, faça: diff original atual | mailx ...

O último comando atualiza o arquivo original.

Após sair do script, é preciso torná-lo executável, para isso, execute o seguinte comando:

# chmod +x /root/script/atual.sh

A criação do script foi terminada. Agora, só falta agendar o script para ser executado periodicamente.

Página anterior     Próxima página

Páginas do artigo
   1. Solução / Instalação
   2. Configuração
   3. Criando a rotina
Outros artigos deste autor
Nenhum artigo encontrado.
Leitura recomendada

Recursos avançados do bash que você não aprende na escola

Trabalhar com array no Bash

Introdução ao Fortran (parte 1)

Colorindo o Shell

Cobrando com o SQUID

  
Comentários
[1] Comentário enviado por xjc em 07/02/2014 - 21:55h

Ja pessou em usar ossec ? o zabix também tem essa funcionalidade .
Ja fiz isso uma vez em produção, que inclui diversas coisas diferentes.

[2] Comentário enviado por thld em 10/02/2014 - 10:33h


[1] Comentário enviado por xjc em 07/02/2014 - 21:55h:

Ja pessou em usar ossec ? o zabix também tem essa funcionalidade .
Ja fiz isso uma vez em produção, que inclui diversas coisas diferentes.


Sim, com certeza existem soluções bem mais robustas e melhores. Mas o objetivo deste artigo é mostra uma forma simples, prática, rápida e sem exigir muito para se monitorar logs e receber alertas. Mas obrigado pela sua contribuição. Quem quiser algo mais complexo e completo deve realmente buscar o Zabbix, o Ossec ou outra solução....

[3] Comentário enviado por rodrigo_shell em 08/03/2014 - 12:10h

Gostei muito do artigo, cara.
Parabéns.
Solução simples e rápida.

[4] Comentário enviado por LeaoNarrdo em 17/05/2014 - 12:21h

Muito bom.

O Zabbix também é ótimo, mas ele é mais complexo e exige mais de uma maquina.


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts