Enviado em 17/07/2015 - 16:57h
Olá pessoal.
#!/bin/bash
##############################################################################################
# Nome do script $0 = enviar_email.sh
# Descrição - Envia e-mails de notificações do Zabbix para caso de problemas
# encontrados e retorno de status operacional
# Data criação - 2015.05.28
# Ultima Modificação (data/nome) -
# Criado por - Joao Vitorino
##############################################################################################
# Variaveis Globais
tmp=/tmp/zabbix_mail.tmp # Cria arquivo temporario
de='MONITORAMENTO ZABBIX<zabbix@dominio>' # Remetente do e-mail
# Paramentros $1, $2 e $3 passados pelos Zabbix
para=$1
assunto=$2
body=$3
#define o deilimitador do cut para "--"
#DL="--"
chmod 666 $tmp
echo $body > $tmp
# Identifica e armazena informações necessárias para enviar por e-mail
trigger=$(cat $tmp | cut -d"@" -f2)
t_status=$(cat $tmp | cut -d"@" -f4)
t_severity=$(cat $tmp | cut -d"@" -f6)
data_evento=$(cat $tmp | cut -d"@" -f20)
hora_evento=$(cat $tmp | cut -d"@" -f18 | cut -d":" -f1)
minuto_evento=$(cat $tmp | cut -d"@" -f18 | cut -d":" -f2)
segundo_evento=$(cat $tmp | cut -d"@" -f18 | cut -d":" -f3)
description=$(cat $tmp | cut -d"@" -f12)
hostname=$(cat $tmp | cut -d"@" -f14)
idade_evento=$(cat $tmp | cut -d"@" -f22)
host_group=$(cat $tmp |cut -d"@" -f26)
host_ip=$(cat $tmp | cut -d"@" -f24)
# Coleta o host ID (necessario para criar a URL de acesso ao Zabbix) do banco de dados
# Senha de banco configurada em /etc/my.cnf
host_id=$(/usr/bin/mysql -u zabbix -D zabbix -B -e "SELECT hostid FROM hosts WHERE host='$hostname';" |grep -v hostid)
# Endereço da URL da logo da empresa
logo='http://intranet.dominio/images/logo.gif'
zabbix_url=''
# Identifica se a mensagem é um alerta(PROBLEM) ou uma recuperacao de estado(OK-recovery)
if [ $t_status == PROBLEM ];
then
t_status="Problema Identificado"
bg_color_status='#DE2929'
fi
if [ $t_status == OK ];
then
t_status="Retorno ao estado normal de operação"
bg_color_status='#28B720'
fi
# Configura as cores do e-mail de acordo com o nivel de alarme
case "$t_severity" in
"Not classified")
t_severity="DESCONHECIDA"
bg_color_severity="#ADB2AD"
txt_color="#000000"
;;
"Information")
t_severity="INFORMAÇÃO"
bg_color_severity="#44C4EB"
txt_color="#000000"
t_status="CONTROLE"
bg_color_status="#D9D9D9"
;;
"Warning")
t_severity="BAIXA"
bg_color_severity="#ECF482"
txt_color="#000000"
;;
"Average")
t_severity="MÉDIA"
bg_color_severity="#ED9033"
txt_color="#000000"
;;
"High")
t_severity="ALTA"
bg_color_severity="#DE2929"
txt_color="#000000"
;;
"Disaster")
t_severity="MUITO ALTA - Vários Sistemas Impactados"
bg_color_severity="#000000"
txt_color="#FFFFFF"
esac
# Cria o e-mail em HTML
body='<html><head><style type="text/css">body {text-align: center; font-family: Verdana, sans-serif; font-size: 10pt;}
img.logo {float: left; margin: 10px 10px 10px; vertical-align: middle}
span {font-family: Verdana, sans-serif; font-size: 12pt;}
table {text-align:center; margin-left: auto; margin-right: auto;}
th {white-space: nowrap;}
th.even {background-color: #D9D9D9;}
td.even {background-color: #F2F2F2;}
th.odd {background-color: #F2F2F2;}
td.odd {background-color: #FFFFFF;}
th,td {font-family: Verdana, sans-serif; font-size: 10pt; text-align:left;}
th.customer {width: 600px; background-color: #004488; color: #ffffff;}</style></head><body>
<table width=600px><tr>
<td><img class="logo" src='$logo'></td>
<td><span><strong>Notificação</strong></span></td></tr><tr>
<th colspan=2 class=customer><div align="center">Sistema de Monitoramento do Zabbix</div></th></tr><tr>
<th width=180px class=even>Tipo de Notificação</th>
<td bgcolor='$bg_color_status'>
'$t_status'</td></tr>
<tr>
<th class=odd>Criticidade</th>
<td bgcolor='$bg_color_severity'><font color='$txt_color'>'$t_severity'</td></tr>
<tr>
<th class=even>Evento</th><td class=even>
<a href="http://monitoramento.dominio/tr_status.php?hostid='$host_id'">'$trigger'</a></td></tr>
<tr>
<th class=odd>Nome do Host</th><td class=odd>'$hostname'</td></tr>
<tr>
<th class=even>Endereço IP</th>
<td class=even>'$host_ip'<td></tr>
<tr>
<th class=odd>Grupo do Host</th>
<td class=odd>'$host_group'<td> </td></tr>
<tr>
<th class=even>Data Evento</th>
<td class=even>'$data_evento'</td>
</tr>
<tr>
<th class=odd>Horário do Evento</th>
<td>'$hora_evento'h:'$minuto_evento'm:'$segundo_evento's</td>
</tr>
<tr>
<th class=even>Descrição</th>
<td class=even>'$description'</td>
</tr>
<tr>
<th class=odd>Idade do Evento</th>
<td>'$idade_evento'</td></tr>
</table></br>
</br><hr>
</br><em><font size="-1" >Gerado por Zabbix 2.4 | Equipe </font></em>
<hr>
<br>
<em>
Se voce está recebendo esta mensagem, faz parte da lista de notificações para alarmes do Zabbix
</em><br>
<br>
<strong>Em caso de duvidas, favor contactar a - - monitoramento@dominio
Mensagem Automática - Não responda</strong>
</body></html>'
# Envia o email
(
echo "From: ${de}";
echo "To: ${para}";
echo "Subject: ${assunto}";
echo "Content-Type: text/html";
echo "MIME-Version: 1.0";
echo "";
echo "${body}";
) | sendmail -t
# Exclui o arquivo temporario
#rm $tmp
exit 0