Introdução e Preparação
Esse artigo foi escrito com o objetivo de apresentar o Logwatch em conjunto com Mutt, como uma forma muito eficaz de manter-se informado acerca das atividades do sistema, através do envio de relatórios por e-mail.
A princípio, precisamos apenas de um e-mail server básico e um cliente de e-mail básico rodando na máquina, para que possamos deixar tudo funcionando.
A noção da importância de se monitorar servidores e serviços, motivou o desenvolvimento deste artigo.
Espero que este texto ajude de alguma forma, toda a comunidade, seja estudante ou sysadmin.
Em resumo, vamos instalar os cliente e o servidor de e-mail:
# apt-get install postfix mutt
Durante a configuração do pacote do Postfix, quando ele configura as opções gerais de funcionamento e tipo de servidor, escolha a opção "No configuration", ou "sem configuração". Isto é feito para que tenhamos apenas o serviço rodando, sem uma configuração específica e possamos usar um e-mail de terceiros, no meu caso, o GMail.
Apos a instalação do Postfix e do Mutt, é necessário criar um arquivo com as configurações de acesso ao servidor de e-mail, que usaremos para mandar as mensagens:
# nano ~/muttrc
Insira:
Feito isso, teremos o nosso servidor pronto para o envio de e-mails.
A princípio, precisamos apenas de um e-mail server básico e um cliente de e-mail básico rodando na máquina, para que possamos deixar tudo funcionando.
A noção da importância de se monitorar servidores e serviços, motivou o desenvolvimento deste artigo.
Espero que este texto ajude de alguma forma, toda a comunidade, seja estudante ou sysadmin.
Preparando o sistema
Antes de qualquer coisa, precisamos deixar o servidor de e-mail e o cliente de e-mail configurados de forma correta. Para isso, usei como referência o artigo do Raimundo Alves Portela, o rai3mb da comunidade VOL.Em resumo, vamos instalar os cliente e o servidor de e-mail:
# apt-get install postfix mutt
Durante a configuração do pacote do Postfix, quando ele configura as opções gerais de funcionamento e tipo de servidor, escolha a opção "No configuration", ou "sem configuração". Isto é feito para que tenhamos apenas o serviço rodando, sem uma configuração específica e possamos usar um e-mail de terceiros, no meu caso, o GMail.
Apos a instalação do Postfix e do Mutt, é necessário criar um arquivo com as configurações de acesso ao servidor de e-mail, que usaremos para mandar as mensagens:
# nano ~/muttrc
Insira:
# Nome do Remetente
set realname="Servidor de intranet - Matriz Empresa do Mané"
# Email do Remetente
set from="emp.do.mane@gmail.com;"
# Usuario da conta de email
set my_user=emp.do.mane@gmail.com
# Senha da conta de email
set my_pass='SENHA_FACIL'
# Autenticacao no servidor smtp de email, nesse caso do gmail.com
set smtp_url=smtps://$my_user:$my_pass@smtp.gmail.com
# Camada de segurança, requerida pelo gmail.com
set ssl_force_tls = yes
# Referencia:
# http:// www.vivaolinux.com.br/artigo/Enviar-email-pelo-terminal-com-mutt/?pagina=1
set realname="Servidor de intranet - Matriz Empresa do Mané"
# Email do Remetente
set from="emp.do.mane@gmail.com;"
# Usuario da conta de email
set my_user=emp.do.mane@gmail.com
# Senha da conta de email
set my_pass='SENHA_FACIL'
# Autenticacao no servidor smtp de email, nesse caso do gmail.com
set smtp_url=smtps://$my_user:$my_pass@smtp.gmail.com
# Camada de segurança, requerida pelo gmail.com
set ssl_force_tls = yes
# Referencia:
# http:// www.vivaolinux.com.br/artigo/Enviar-email-pelo-terminal-com-mutt/?pagina=1
Feito isso, teremos o nosso servidor pronto para o envio de e-mails.
Logwatch, o agente gerador de log
O Logwatch é um sistema de análise de logs customizável, que age acessando os logs do sistema criando um report das áreas especificadas no arquivo de configuração.O Logwatch é muito simples, de fácil instalação e configuração, rodando na maioria dos sistemas Unix-like.
Site oficial:
Para instalá-lo, use:
# apt-get install logwatch
Teste seu funcionamento emitindo o comando logwatch no terminal:
# logwatch
Se tudo tiver certo, ele vai gerar um relatório extraindo informações dos logs do seu sistema.
Enviando logs por e-mail
Analisar logs é uma tarefa que precisa ser vista e praticada pelos sysadmins como algo crucial, uma vez que através dela, podemos identificar ou corrigir problemas antes dos mesmos tomarem proporções que dificultem ou impossibilitem um reparo do erro.Muitas vezes, por falta de tempo ou a falta de experiência do sysadmin em analisar cada log, esta tarefa é colocada em último plano, um erro grave.
Pensando nisso, escrevi o script a seguir para automatizar o envio por e-mail dos logs gerados pelo Logwatch, trazendo praticidade à tarefa de analise de logs.
Segue abaixo, a ultima peça do nosso canivete suíço, o script que gera o log e o envia por e-mail:
#!/bin/sh
# Script para envio dos logs do sistema de forma periódica e automática.
# Desenvolvido em Shell script.
# Autor: Alex Sandro Silva
# Twitter: @alexhctp
# Email: alexhctp[at]hotmail[dot]com - alexhctp[at]gmail[dot]com
# CONFIGURACOES LOCAIS
LOGGEN='/usr/sbin/logwatch'
MAIL='/usr/bin/mutt'
LOGDIR='/tmp/logs/'
MAIL='/usr/bin/mutt'
# DATE=`date +%y%m%d`
DATE=`date +%Y-%m-%d`
HOME='/root/'
# MENSAGEM=/root/mensagem.txt #aprendendo uma forma de dar um echo buscando o conteúdo de um arquivo de texto, se alguem souber, conta ae, rsrs
if [ -d $LOGDIR ]
then
rm -r $LOGDIR
exit 0
elif [ -d $HOME ]
then
mkdir $LOGDIR
$LOGGEN > $LOGDIR/log_$DATE.log
echo 'Logs e estatisticas enviadas automaticamente ao sysadmin' | $MAIL -s 'Estatisticas e Logs diarios - NOME DA FILIAL' -a $LOGDIR\log* -- ti@seuemail.com
rm -R $LOGDIR
exit 0
fi
# Script para envio dos logs do sistema de forma periódica e automática.
# Desenvolvido em Shell script.
# Autor: Alex Sandro Silva
# Twitter: @alexhctp
# Email: alexhctp[at]hotmail[dot]com - alexhctp[at]gmail[dot]com
# CONFIGURACOES LOCAIS
LOGGEN='/usr/sbin/logwatch'
MAIL='/usr/bin/mutt'
LOGDIR='/tmp/logs/'
MAIL='/usr/bin/mutt'
# DATE=`date +%y%m%d`
DATE=`date +%Y-%m-%d`
HOME='/root/'
# MENSAGEM=/root/mensagem.txt #aprendendo uma forma de dar um echo buscando o conteúdo de um arquivo de texto, se alguem souber, conta ae, rsrs
if [ -d $LOGDIR ]
then
rm -r $LOGDIR
exit 0
elif [ -d $HOME ]
then
mkdir $LOGDIR
$LOGGEN > $LOGDIR/log_$DATE.log
echo 'Logs e estatisticas enviadas automaticamente ao sysadmin' | $MAIL -s 'Estatisticas e Logs diarios - NOME DA FILIAL' -a $LOGDIR\log* -- ti@seuemail.com
rm -R $LOGDIR
exit 0
fi
Sintam-se à vontade para mudar, sugerir melhorias ou correções no script.
Automatizando o processo com o Cron
Para terminar, agendamos uma tarefa com o Cron para que todos os dias um log seja enviado ao sysadmin. Para isso, edite o Crontab adicionando a entrada a seguir:# nano /etc/crontab
Insira:
# Envio de automatico de logs do sistema por email
59 23 * * * root /root/sendMail.sh
59 23 * * * root /root/sendMail.sh
Pronto... agora é só criar o vício de analisar os seus relatórios do sistema, uma vez que a falta de tempo, não mais será desculpa para deixar de fazê-lo.
Espero ter ajudado.
Comentários com criticas e sugestões são bem-vindos.
Abraço a todos. ;)
Referências
- Enviar e-mail pelo terminal com mutt [Artigo]
- PROGRAMAÇÃO BOURNE-SHELL « www.moredata.eu
- Utilizando o crontab « www.devin.com.br
- Utilizando o crontab « www.unitednerds.org
- http://sourceforge.net/projects/logwatch
Artigo publicado anteriormente por mim no Viva o Linux
http://www.vivaolinux.com.br/artigo/Logwatch-Enviando-relatorios-via-email/?pagina=2