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: 26.687 ]

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

Explorando a entrada de dados com READ em Bash Shell

Personalize seu shell na entrada de seu logon

Slackware - Script de instalação de programas

Cansou do Konsole e GNOME-Terminal? Existem outros terminais, escolha o seu!

Linguagem Lua - Introdução ao Aprendizado da Linguagem

  
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