效果图查看,Action模板级一些其他介绍请查看链接http://blog.csdn.net/jackm1688/article/details/50907607
本次代码属于更新
配置报警媒介目录:AlertScriptsPath=/wls/zabbix/alertscripts (at zabbix_server.conf confiuration file)
脚本位置:/wls/zabbix/alertscripts/zabbixAlertMail.pl
模块目录:/usr/local/perl5/lib/
模块名称:alertTools.pm
权限:所有相关目录及脚本赋777权限
模块名:alertTools.pm
#!/usr/local/perl5/bin/perl5.22.1
package alertTools;
use strict;
use warnings;
#####################################################
# #
# @作者:老孟 #
# @功能:监控邮件报警工具 #
# @日期:2016-06-20 #
# @Copyright (c) 2016 All rights reserved. #
# #
#####################################################
###############加载相关模块##########################
use Encode;
use MIME::Base64;
use MIME::Lite;
use File::Find;
use POSIX qw(strftime);
use File::Temp qw/ tempfile tempdir/;
#####################################################
#构造函数
sub new
{
my $class = shift;
my($logdir,$imgdir) = @_;
my $data = {
'logdir'=> $logdir,
'imgdir' => $imgdir
};
bless($data,$class);
return $data;
}
#告警邮件内容转换成html代码
sub contentToHtml
{
my $this = shift;
my($mailContent,$imge) = @_;
my @htmlContent;
push @htmlContent,"
<html>
<head>
<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\"/>
</haed>
<body>
<style>table{font-size:14px;}</style>
<div align=\"center\">
<font color=\"#525252\">
<table border='0' style=\"border:5px solid #F2F2F2;\" cellspacing=\"2\" cellpadding=\"2\" width=\"900\" >
<tr bgcolor=\"#D1D1D1\">
<th align=\"left\" style=\"font-size:23px;\">告警信息</marquee></th>
</tr> ";
my @htmls;
my @string;
foreach (@$mailContent)
{
push @htmls,"$1" if(/(告警项名.*)/);
push @htmls,"$1" if(/(告警主机.*)/);
push @htmls,"$1" if(/(告警IP.*)/);
push @htmls,"$1" if(/(告警项Key值.*)/);
push @htmls,"$1" if(/(告警触发规则.*)/);
push @htmls,"$1" if(/(告警时间.*)/);
push @htmls,"$1" if(/(告警等级.*)/);
if(/(问题描述)/ .. eof)
{
chomp;
push @string, "$_ <br \/>\n";
}
push @htmls,"$1" if(/(告警值\:.*)/);
push @htmls,"$1"