mirror of
https://github.com/moudsen/mailGraph
synced 2025-01-30 20:01:38 +01:00
Added ability to embed multiple periods of the same graph (v1.22)
This commit is contained in:
parent
7f6d5ccd03
commit
e262f21dc8
@ -6,17 +6,23 @@
|
|||||||
"cli_eventValue": 0,
|
"cli_eventValue": 0,
|
||||||
"cli_duration": 0,
|
"cli_duration": 0,
|
||||||
"cli_recipient": "recipient@domain.com",
|
"cli_recipient": "recipient@domain.com",
|
||||||
"cli_subject": "[CLI TEST] {{ HOST_NAME|raw }}: ({{ EVENT_SEVERITY }}) {{ EVENT_NAME|raw }}",
|
"cli_subject": "[TEST] {{ HOST_NAME|raw }}: ({{ EVENT_SEVERITY }}) {{ EVENT_NAME|raw }}",
|
||||||
"cli_baseURL": "https:\/\/domain.com\/zabbix\/",
|
"cli_baseURL": "https:\/\/domain.com\/zabbix\/",
|
||||||
|
"cli_period": "30m",
|
||||||
|
"cli_period_header": "Last 30 minutes",
|
||||||
|
"cli_debug": 1,
|
||||||
"zabbix_user": "alogicalusername",
|
"zabbix_user": "alogicalusername",
|
||||||
"zabbix_user_pwd": "astrongpassword",
|
"zabbix_user_pwd": "astrongpassword",
|
||||||
"zabbix_api_user": "alogicalusername",
|
"zabbix_api_user": "alogicalusername",
|
||||||
"zabbix_api_pwd": "astrongpassword",
|
"zabbix_api_pwd": "astrongpassword",
|
||||||
"mail_from": "sender@domain.com",
|
"mail_from": "sender@domain.com",
|
||||||
|
"subject": "{{ HOST_NAME|raw }}: ({{ EVENT_SEVERITY }}) {{ EVENT_NAME|raw }}",
|
||||||
"smtp_server": "localhost",
|
"smtp_server": "localhost",
|
||||||
"smtp_port": 25,
|
"smtp_port": 25,
|
||||||
"smtp_transport": "none",
|
"smtp_transport": "none",
|
||||||
"smtp_strict": "yes",
|
"smtp_strict": "yes",
|
||||||
"graph_match": "any",
|
"graph_match": "any",
|
||||||
"period": "2d"
|
"period": "20m",
|
||||||
|
"period_header": "Last 20 minutes",
|
||||||
|
"debug": 0
|
||||||
}
|
}
|
||||||
|
28
config/config.json.template.multigraph
Normal file
28
config/config.json.template.multigraph
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
{
|
||||||
|
"script_baseurl": "https:\/\/domain.com\/",
|
||||||
|
"cli_itemId": 0,
|
||||||
|
"cli_triggerId": 0,
|
||||||
|
"cli_eventId": 0,
|
||||||
|
"cli_eventValue": 0,
|
||||||
|
"cli_duration": 0,
|
||||||
|
"cli_recipient": "recipient@domain.com",
|
||||||
|
"cli_subject": "[TEST] {{ HOST_NAME|raw }}: ({{ EVENT_SEVERITY }}) {{ EVENT_NAME|raw }}",
|
||||||
|
"cli_baseURL": "https:\/\/domain.com\/zabbix\/",
|
||||||
|
"cli_periods": "10m,4h,2d,7d",
|
||||||
|
"cli_periods_headers": "Last 10 minutes,Last 4 hours,Last 2 days,Last 7 days",
|
||||||
|
"cli_debug": 1,
|
||||||
|
"zabbix_user": "alogicalusername",
|
||||||
|
"zabbix_user_pwd": "astrongpassword",
|
||||||
|
"zabbix_api_user": "alogicalusername",
|
||||||
|
"zabbix_api_pwd": "astrongpassword",
|
||||||
|
"mail_from": "sender@domain.com",
|
||||||
|
"subject": "{{ HOST_NAME|raw }}: ({{ EVENT_SEVERITY }}) {{ EVENT_NAME|raw }}",
|
||||||
|
"smtp_server": "localhost",
|
||||||
|
"smtp_port": 25,
|
||||||
|
"smtp_transport": "none",
|
||||||
|
"smtp_strict": "yes",
|
||||||
|
"graph_match": "any",
|
||||||
|
"periods": "10m,4h,2d,7d",
|
||||||
|
"periods_headers": "Last 10 minutes,Last 4 hours,Last 2 days,Last 7 days",
|
||||||
|
"debug": 0
|
||||||
|
}
|
@ -26,6 +26,9 @@ try {
|
|||||||
if (typeof params.graphHeight === 'string') { fields.graphHeight = params.graphHeight; }
|
if (typeof params.graphHeight === 'string') { fields.graphHeight = params.graphHeight; }
|
||||||
if (typeof params.subject === 'string') { fields.subject = params.subject; }
|
if (typeof params.subject === 'string') { fields.subject = params.subject; }
|
||||||
if (typeof params.showLegend === 'string') { fields.showLegend = params.showLegend; }
|
if (typeof params.showLegend === 'string') { fields.showLegend = params.showLegend; }
|
||||||
|
if (typeof params.periods === 'string') { fields.periods = params.periods; }
|
||||||
|
if (typeof params.periods_headers === 'string') { fields.periods_headers = params.periods_headers; }
|
||||||
|
if (typeof params.debug === 'string') { fields.debug = params.debug; }
|
||||||
|
|
||||||
// Add generic fields
|
// Add generic fields
|
||||||
Object.keys(params).forEach(function(key) {
|
Object.keys(params).forEach(function(key) {
|
||||||
|
121
mailGraph.php
121
mailGraph.php
@ -27,6 +27,7 @@
|
|||||||
// 1.20 2021/03/07 - Mark Oudsen - Production level version - leaving BETA from here on ...
|
// 1.20 2021/03/07 - Mark Oudsen - Production level version - leaving BETA from here on ...
|
||||||
// 1.21 2021/03/09 - Mark Oudsen - Reverted graph.get code back to original code as it was not a bug but
|
// 1.21 2021/03/09 - Mark Oudsen - Reverted graph.get code back to original code as it was not a bug but
|
||||||
// a wrongly typed requested (should be ARRAY, not comma separated)!
|
// a wrongly typed requested (should be ARRAY, not comma separated)!
|
||||||
|
// 1.22 2021/03/10 - Mark Oudsen - Added ability to embed multiple periods (1-4) of the same graph
|
||||||
// ------------------------------------------------------------------------------------------------------
|
// ------------------------------------------------------------------------------------------------------
|
||||||
//
|
//
|
||||||
// (C) M.J.Oudsen, mark.oudsen@puzzl.nl
|
// (C) M.J.Oudsen, mark.oudsen@puzzl.nl
|
||||||
@ -41,7 +42,7 @@
|
|||||||
// MAIN SEQUENCE
|
// MAIN SEQUENCE
|
||||||
// -------------
|
// -------------
|
||||||
// 1) Fetch trigger, item, host, graph, event information via Zabbix API via CURL
|
// 1) Fetch trigger, item, host, graph, event information via Zabbix API via CURL
|
||||||
// 2) Fetch Graph associated to the item/trigger (if any) via Zabbix URL login via CURL
|
// 2) Fetch Graph(s) associated to the item/trigger (if any) via Zabbix URL login via CURL
|
||||||
// 3) Build and send mail message from template using Swift/TWIG
|
// 3) Build and send mail message from template using Swift/TWIG
|
||||||
//
|
//
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
@ -49,7 +50,7 @@
|
|||||||
|
|
||||||
// CONSTANTS
|
// CONSTANTS
|
||||||
|
|
||||||
$cVersion = 'v1.21';
|
$cVersion = 'v1.22';
|
||||||
$cCRLF = chr(10).chr(13);
|
$cCRLF = chr(10).chr(13);
|
||||||
$maskDateTime = 'Y-m-d H:i:s';
|
$maskDateTime = 'Y-m-d H:i:s';
|
||||||
|
|
||||||
@ -156,7 +157,7 @@
|
|||||||
|
|
||||||
// Cookie and image names
|
// Cookie and image names
|
||||||
$filename_cookie = $z_tmp_cookies ."zabbix_cookie_" .$graphid . "." .$thisTime. ".txt";
|
$filename_cookie = $z_tmp_cookies ."zabbix_cookie_" .$graphid . "." .$thisTime. ".txt";
|
||||||
$filename = "zabbix_graph_" .$graphid . "." . $thisTime . ".png";
|
$filename = "zabbix_graph_" .$graphid . "." . $thisTime . "-" . $period . ".png";
|
||||||
$image_name = $z_images_path . $filename;
|
$image_name = $z_images_path . $filename;
|
||||||
|
|
||||||
// Configure CURL
|
// Configure CURL
|
||||||
@ -333,6 +334,7 @@
|
|||||||
|
|
||||||
// Assumes that config.json file has the correct information
|
// Assumes that config.json file has the correct information
|
||||||
|
|
||||||
|
// MANDATORY
|
||||||
$problemData['itemId'] = $config['cli_itemId'];
|
$problemData['itemId'] = $config['cli_itemId'];
|
||||||
$problemData['triggerId'] = $config['cli_triggerId'];
|
$problemData['triggerId'] = $config['cli_triggerId'];
|
||||||
$problemData['eventId'] = $config['cli_eventId'];
|
$problemData['eventId'] = $config['cli_eventId'];
|
||||||
@ -343,12 +345,18 @@
|
|||||||
$problemData['subject'] = $config['cli_subject'];
|
$problemData['subject'] = $config['cli_subject'];
|
||||||
$problemData['period'] = $config['cli_period'];
|
$problemData['period'] = $config['cli_period'];
|
||||||
|
|
||||||
|
// OPTIONAL
|
||||||
|
if (isset($config['cli_period_header'])) { $problemData['period_header'] = $config['cli_period_header']; }
|
||||||
|
if (isset($config['cli_periods'])) { $problemData['periods'] = $config['cli_periods']; }
|
||||||
|
if (isset($config['cli_periods_headers'])) { $problemData['periods_headers'] = $config['cli_periods_headers']; }
|
||||||
|
if (isset($config['cli_debug'])) { $problemData['debug'] = $config['cli_debug']; }
|
||||||
|
|
||||||
// Switch on CLI log display
|
// Switch on CLI log display
|
||||||
$showLog = TRUE;
|
$showLog = TRUE;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
_log('# Data passed from Zabbix'.$cCRLF.json_encode($problemData,JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK));
|
_log('# Data passed to MailGraph main routine and used for processing'.$cCRLF.json_encode($problemData,JSON_PRETTY_PRINT|JSON_NUMERIC_CHECK));
|
||||||
|
|
||||||
// --- CHECK AND SET P_ VARIABLES ---
|
// --- CHECK AND SET P_ VARIABLES ---
|
||||||
// FROM POST OR CLI DATA
|
// FROM POST OR CLI DATA
|
||||||
@ -516,8 +524,23 @@
|
|||||||
switch ($aTag['tag'])
|
switch ($aTag['tag'])
|
||||||
{
|
{
|
||||||
case 'mailGraph.period':
|
case 'mailGraph.period':
|
||||||
$p_period = $aTag['value'];
|
$problemData['period'] = $aTag['value'];
|
||||||
_log('+ Graph display period override = '.$p_period);
|
_log('+ Graph display period override = '.$problemData['period']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'mailGraph.period_header':
|
||||||
|
$problemData['period_header'] = $aTag['value'];
|
||||||
|
_log('+ Graph display period header override = '.$problemData['period_header']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'mailGraph.periods':
|
||||||
|
$problemData['periods'] = $aTag['value'];
|
||||||
|
_log('+ Graph display periods override = '.$problemData['periods']);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case 'mailGraph.periods_headers':
|
||||||
|
$problemData['periods_headers'] = $aTag['value'];
|
||||||
|
_log('+ Graph display periods headers override = '.$problemData['periods_headers']);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'mailGraph.graph':
|
case 'mailGraph.graph':
|
||||||
@ -539,6 +562,11 @@
|
|||||||
$p_graphHeight = intval($aTag['value']);
|
$p_graphHeight = intval($aTag['value']);
|
||||||
_log('+ Graph height override = '.$$p_graphHeight);
|
_log('+ Graph height override = '.$$p_graphHeight);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
case 'mailGraph.debug':
|
||||||
|
$problemData['debug'] = 1;
|
||||||
|
_log('+ Mail debug log enabled');
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -749,7 +777,49 @@
|
|||||||
// Fetch Graph //////////////////////////////////////////////////////////////////////////////////////////
|
// Fetch Graph //////////////////////////////////////////////////////////////////////////////////////////
|
||||||
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
/////////////////////////////////////////////////////////////////////////////////////////////////////////
|
||||||
|
|
||||||
$graphFile = '';
|
// Determine number of periods for this graph
|
||||||
|
|
||||||
|
$p_periods = array();
|
||||||
|
$p_periods_headers = array();
|
||||||
|
|
||||||
|
if (isset($problemData['periods']))
|
||||||
|
{
|
||||||
|
// Multiple periods mode selected
|
||||||
|
|
||||||
|
_log('# Multi period graph mode selected');
|
||||||
|
|
||||||
|
$p_periods = explode(',',$problemData['periods']);
|
||||||
|
|
||||||
|
// If invalid, replace with single graph item
|
||||||
|
if (sizeof($p_periods)==0) { $p_periods[] = $p_period; }
|
||||||
|
|
||||||
|
// --- Determine headers
|
||||||
|
|
||||||
|
if (isset($problemData['periods_headers'])) { $p_periods_headers = explode(',',$problemData['periods_headers']); }
|
||||||
|
|
||||||
|
// If no headers specified, simply copy the period information
|
||||||
|
if (sizeof($p_periods_headers)==0) { $p_periods_headers = $p_periods; }
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
// Single period mode selected
|
||||||
|
|
||||||
|
$p_periods[] = $p_period;
|
||||||
|
|
||||||
|
if (isset($problemData['period_header']))
|
||||||
|
{
|
||||||
|
$p_periods_headers[] = $problemData['period_header'];
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$p_periods_headers[] = $p_period;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
while (sizeof($p_periods)>4) { array_pop($p_periods); }
|
||||||
|
while (sizeof($p_periods_headers)>4) { array_pop($p_periods_headers); }
|
||||||
|
|
||||||
|
$graphFiles = array();
|
||||||
$graphURL = '';
|
$graphURL = '';
|
||||||
|
|
||||||
// If we have any matching graph, make the embedding information available
|
// If we have any matching graph, make the embedding information available
|
||||||
@ -784,14 +854,19 @@
|
|||||||
|
|
||||||
_log('# Adding '.strtoupper($theType).' graph #'.$mailData['GRAPH_ID']);
|
_log('# Adding '.strtoupper($theType).' graph #'.$mailData['GRAPH_ID']);
|
||||||
|
|
||||||
$graphFile = GraphImageById($mailData['GRAPH_ID'],
|
foreach($p_periods as $aKey=>$aPeriod)
|
||||||
$p_graphWidth,$p_graphHeight,
|
{
|
||||||
$theGraph['graphtype'],
|
$graphFile = GraphImageById($mailData['GRAPH_ID'],
|
||||||
$p_showLegend,$p_period);
|
$p_graphWidth,$p_graphHeight,
|
||||||
|
$theGraph['graphtype'],
|
||||||
|
$p_showLegend,$aPeriod);
|
||||||
|
|
||||||
_log('> Filename = '.$graphFile);
|
$graphFiles[] = $graphFile;
|
||||||
|
|
||||||
|
$mailData['GRAPH_URL'.($aKey+1)] = $z_url_image . $graphFile;
|
||||||
|
$mailData['GRAPH_HEADER'.($aKey+1)] = $p_periods_headers[$aKey];
|
||||||
|
}
|
||||||
|
|
||||||
$mailData['GRAPH_URL'] = $z_url_image . $graphFile;
|
|
||||||
$mailData['GRAPH_ZABBIXLINK'] = $z_server.'graphs.php?form=update&graphid='.$mailData['GRAPH_ID'];
|
$mailData['GRAPH_ZABBIXLINK'] = $z_server.'graphs.php?form=update&graphid='.$mailData['GRAPH_ID'];
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -889,11 +964,17 @@
|
|||||||
|
|
||||||
$twig = new \Twig\Environment($loader);
|
$twig = new \Twig\Environment($loader);
|
||||||
|
|
||||||
if ($graphFile!='')
|
if (sizeof($graphFiles)>0)
|
||||||
{
|
{
|
||||||
// Embed the image
|
// Embed the image(s)
|
||||||
$mailData['GRAPH_CID'] = $message->embed(Swift_Image::fromPath($z_images_path.$graphFile));
|
|
||||||
_log('> Embedded graph image '.$z_images_path.$graphFile);
|
$graphReference = 1;
|
||||||
|
|
||||||
|
foreach($graphFiles as $graphFile)
|
||||||
|
{
|
||||||
|
$mailData['GRAPH_CID'.$graphReference++] = $message->embed(Swift_Image::fromPath($z_images_path.$graphFile));
|
||||||
|
_log('> Embedded graph image '.$z_images_path.$graphFile);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
$bodyHTML = $twig->render('html', $mailData);
|
$bodyHTML = $twig->render('html', $mailData);
|
||||||
@ -908,7 +989,7 @@
|
|||||||
->setBody($bodyHTML, 'text/html')
|
->setBody($bodyHTML, 'text/html')
|
||||||
->addPart($bodyPlain, 'text/plain');
|
->addPart($bodyPlain, 'text/plain');
|
||||||
|
|
||||||
if ($cDebugMail)
|
if (($cDebugMail) || (isset($problemData['debug'])))
|
||||||
{
|
{
|
||||||
_log('# Attaching logs to mail message');
|
_log('# Attaching logs to mail message');
|
||||||
|
|
||||||
@ -923,14 +1004,14 @@
|
|||||||
|
|
||||||
$result = $mailer->send($message);
|
$result = $mailer->send($message);
|
||||||
|
|
||||||
// Return TAG information
|
// Return Event TAG information for Zabbix
|
||||||
|
|
||||||
$response = array('messageId.mailGraph'=>$messageId);
|
$response = array('messageId.mailGraph'=>$messageId);
|
||||||
echo json_encode($response).$cCRLF;
|
echo json_encode($response).$cCRLF;
|
||||||
|
|
||||||
// Store log?
|
// Store log?
|
||||||
|
|
||||||
if ($cDebug)
|
if (($cDebug) || (isset($problemData['debug'])))
|
||||||
{
|
{
|
||||||
unset($mailData['LOG_HTML']);
|
unset($mailData['LOG_HTML']);
|
||||||
unset($mailData['LOG_PLAIN']);
|
unset($mailData['LOG_PLAIN']);
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<zabbix_export>
|
<zabbix_export>
|
||||||
<version>5.0</version>
|
<version>5.0</version>
|
||||||
<date>2021-03-05T10:51:39Z</date>
|
<date>2021-03-10T18:50:24Z</date>
|
||||||
<media_types>
|
<media_types>
|
||||||
<media_type>
|
<media_type>
|
||||||
<name>MailGraph</name>
|
<name>MailGraph</name>
|
||||||
@ -35,14 +35,18 @@
|
|||||||
<name>HTTPProxy</name>
|
<name>HTTPProxy</name>
|
||||||
<value/>
|
<value/>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter>
|
|
||||||
<name>infoGiveMeAName</name>
|
|
||||||
<value>A generic value you want to pass to MailGraph</value>
|
|
||||||
</parameter>
|
|
||||||
<parameter>
|
<parameter>
|
||||||
<name>itemId</name>
|
<name>itemId</name>
|
||||||
<value>{ITEM.ID}</value>
|
<value>{ITEM.ID}</value>
|
||||||
</parameter>
|
</parameter>
|
||||||
|
<parameter>
|
||||||
|
<name>periods</name>
|
||||||
|
<value>10m,4h,1d,7d</value>
|
||||||
|
</parameter>
|
||||||
|
<parameter>
|
||||||
|
<name>periods_headers</name>
|
||||||
|
<value>Last 10 minutes,Last 4 hours,Last day,Last 7 days</value>
|
||||||
|
</parameter>
|
||||||
<parameter>
|
<parameter>
|
||||||
<name>recipient</name>
|
<name>recipient</name>
|
||||||
<value>{ALERT.SENDTO}</value>
|
<value>{ALERT.SENDTO}</value>
|
||||||
@ -92,6 +96,9 @@
|
|||||||
if (typeof params.graphHeight === 'string') { fields.graphHeight = params.graphHeight; }
|
if (typeof params.graphHeight === 'string') { fields.graphHeight = params.graphHeight; }
|
||||||
if (typeof params.subject === 'string') { fields.subject = params.subject; }
|
if (typeof params.subject === 'string') { fields.subject = params.subject; }
|
||||||
if (typeof params.showLegend === 'string') { fields.showLegend = params.showLegend; }
|
if (typeof params.showLegend === 'string') { fields.showLegend = params.showLegend; }
|
||||||
|
if (typeof params.periods === 'string') { fields.periods = params.periods; }
|
||||||
|
if (typeof params.periods_headers === 'string') { fields.periods_headers = params.periods_headers; }
|
||||||
|
if (typeof params.debug === 'string') { fields.debug = params.debug; }
|
||||||
|
|
||||||
// Add generic fields
|
// Add generic fields
|
||||||
Object.keys(params).forEach(function(key) {
|
Object.keys(params).forEach(function(key) {
|
||||||
|
@ -43,6 +43,12 @@
|
|||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: #010059;
|
color: #010059;
|
||||||
}
|
}
|
||||||
|
hr {
|
||||||
|
border: none;
|
||||||
|
height: 1px;
|
||||||
|
color: #333; /* old IE */
|
||||||
|
background-color: #333;
|
||||||
|
}
|
||||||
.MsgBody {
|
.MsgBody {
|
||||||
width: 100%;
|
width: 100%;
|
||||||
}
|
}
|
||||||
@ -68,6 +74,10 @@
|
|||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
}
|
}
|
||||||
|
.graphHeader {
|
||||||
|
font-size: 14px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
.content {
|
.content {
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
@ -104,10 +114,46 @@
|
|||||||
</table>
|
</table>
|
||||||
</td>
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% if GRAPH_CID|length > 0 %}
|
{% if GRAPH_CID1|length > 0 %}
|
||||||
<tr>
|
<tr>
|
||||||
<div align=justify>
|
<div align=justify>
|
||||||
<td align="center"><img id="mainimage" border=0 style="width: 100%; max-width: 790px" alt="Zabbix Graph" src="{{ GRAPH_CID }}" /></td>
|
<td align="center">
|
||||||
|
<span class="graphHeader">{{ GRAPH_HEADER1 }}</span><br/>
|
||||||
|
<img id="mainimage" border=0 style="width: 100%; max-width: 790px" alt="Zabbix Graph" src="{{ GRAPH_CID1 }}" />
|
||||||
|
</td>
|
||||||
|
</div>
|
||||||
|
</tr>
|
||||||
|
{% endif %}
|
||||||
|
{% if GRAPH_CID2|length > 0 %}
|
||||||
|
<tr>
|
||||||
|
<div align=justify>
|
||||||
|
<td align="center">
|
||||||
|
<hr/>
|
||||||
|
<span class="graphHeader">{{ GRAPH_HEADER2 }}</span><br/>
|
||||||
|
<img id="mainimage" border=0 style="width: 100%; max-width: 790px" alt="Zabbix Graph" src="{{ GRAPH_CID2 }}" />
|
||||||
|
</td>
|
||||||
|
</div>
|
||||||
|
</tr>
|
||||||
|
{% endif %}
|
||||||
|
{% if GRAPH_CID3|length > 0 %}
|
||||||
|
<tr>
|
||||||
|
<div align=justify>
|
||||||
|
<td align="center">
|
||||||
|
<hr/>
|
||||||
|
<span class="graphHeader">{{ GRAPH_HEADER3 }}</span><br/>
|
||||||
|
<img id="mainimage" border=0 style="width: 100%; max-width: 790px" alt="Zabbix Graph" src="{{ GRAPH_CID3 }}" />
|
||||||
|
</td>
|
||||||
|
</div>
|
||||||
|
</tr>
|
||||||
|
{% endif %}
|
||||||
|
{% if GRAPH_CID4|length > 0 %}
|
||||||
|
<tr>
|
||||||
|
<div align=justify>
|
||||||
|
<td align="center">
|
||||||
|
<hr/>
|
||||||
|
<span class="graphHeader">{{ GRAPH_HEADER4 }}</span><br/>
|
||||||
|
<img id="mainimage" border=0 style="width: 100%; max-width: 790px" alt="Zabbix Graph" src="{{ GRAPH_CID4 }}" />
|
||||||
|
</td>
|
||||||
</div>
|
</div>
|
||||||
</tr>
|
</tr>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -3,10 +3,10 @@ EVENT INFORMATION #{{ EVENT_ID }}
|
|||||||
Severity: {{ EVENT_SEVERITY }}
|
Severity: {{ EVENT_SEVERITY }}
|
||||||
Description: {{ EVENT_NAME }}
|
Description: {{ EVENT_NAME }}
|
||||||
|
|
||||||
{% if GRAPH_CID|length > 0 %}
|
{% if GRAPH_CID1|length > 0 %}
|
||||||
GRAPH #{{ GRAPH_ID }}
|
GRAPH #{{ GRAPH_ID1 }}
|
||||||
{{ GRAPH_URL }}
|
{{ GRAPH_URL1 }}
|
||||||
This graph will remain available for approx. the next 2 weeks only; use HTML reader after this period to view the graph.
|
This graph will remain available for approx. the next 2 weeks only; use HTML reader after this period to view the graph that is embedded in the attached HTML version.
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
||||||
TRIGGER #{{ TRIGGER_ID }}
|
TRIGGER #{{ TRIGGER_ID }}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user