Why so much triggers?
For Example if you have a large SAN, and you want to monitor every disk of this Storage, you need for each disk a trigger!
we as exapmble have more than one of dell compellents whit more than 500 Disk! (over 22 Enclosures)
my Idea was to get a eMeil whit exact number of the Enclosure and the number of the disk, that are corupted!
what do the script ?
He generetes
1) Dynamic Names for the trigger
2) Dynamic Extansions of the trigger
3) Dynamic Description of a trigger
this data will be submitted over HTTP-POST method!
FOR EXAMBLE ... YOU CAN CREATE YOU OWN SCRIPT ...
***USE OF OWH RISK***
STEPS
1) save content of the script in a file zabbix.html
2) edit zabbix.html
3) replace
3.1) {DEFAULT_ID_TEMPLATE} whit id of the template
3.2) {DEFAULT_ID} whit sesion ID (twice, line 20, 27)
3.3) {ZABBIX_IP} whit zabbix ip (http://192.168.0.1) (twice, line 20, 26)
4) Edit String
4.1) STRING_DESC_1, STRING_EXPR_1, STRING_DESC_2, STRING_EXPR_2
5) Open file in Internetexplorer
6) press "doMagic" button
For Example if you have a large SAN, and you want to monitor every disk of this Storage, you need for each disk a trigger!
we as exapmble have more than one of dell compellents whit more than 500 Disk! (over 22 Enclosures)
my Idea was to get a eMeil whit exact number of the Enclosure and the number of the disk, that are corupted!
what do the script ?
He generetes
1) Dynamic Names for the trigger
2) Dynamic Extansions of the trigger
3) Dynamic Description of a trigger
this data will be submitted over HTTP-POST method!
FOR EXAMBLE ... YOU CAN CREATE YOU OWN SCRIPT ...
***USE OF OWH RISK***
STEPS
1) save content of the script in a file zabbix.html
2) edit zabbix.html
3) replace
3.1) {DEFAULT_ID_TEMPLATE} whit id of the template
3.2) {DEFAULT_ID} whit sesion ID (twice, line 20, 27)
3.3) {ZABBIX_IP} whit zabbix ip (http://192.168.0.1) (twice, line 20, 26)
4) Edit String
4.1) STRING_DESC_1, STRING_EXPR_1, STRING_DESC_2, STRING_EXPR_2
5) Open file in Internetexplorer
6) press "doMagic" button
Code:
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title></title>
</head>
<body>
THIS SCRIPTS ADDS A SHELF TO ZABBIX (TRAPS ITEMS FOR THE TEMPLATE : Template_DELL_COMPELLENT_CONTROLLER) <br>
<br>
Encluser start <input type="number" name="enclosureNummber_start" id="enclosureNummber_start" value="19"><br>
Encluser End <input type="number" name="enclosureNummber_end" id="enclosureNummber_end" value="19"><br>
<br>
Disk start <input type="number" name="diskNummber_start" id="diskNummber_start" value="0"><br>
Disk End <input type="number" name="diskNummber_end" id="diskNummber_end" value="0"><br>
<br>
<hr>
<br>
ID of The Template <input type="number" name="TemplateID" id="TemplateID" value="{DEFAULT_ID_TEMPLATE}"><br>
Zabbix Session <input type="text" name="session" id="session" value="{DEFAULT_ID}"> (<a href="{ZABBIX_IP}" target="blank"> zabbix Login </a>) <br>
<br>
<br>
<br>
<hr>
<form method="post" action="{ZABBIX_IP}/zabbix/triggers.php" accept-charset="utf-8" name="triggersForm" id="triggersForm" target="_blank">
<input type="hidden" id="sid" name="sid" value="{DEFAULT_ID}">
<input type="hidden" id="form_refresh" name="form_refresh" value="1">
<input type="hidden" id="form" name="form" value="Create trigger">
<input type="hidden" id="hostid" name="hostid" value="10578">
<input type="hidden" id="input_method" name="input_method" value="1">
<input type="hidden" id="toggle_input_method" name="toggle_input_method" value="">
<input type="hidden" id="remove_expression" name="remove_expression" value="">
description : <input class="input text" type="text" id="description" name="description" value="" size="50" maxlength="255" style="width: 312px;" autofocus="autofocus"><br>
expression : <textarea class="input textarea_standard" id="expression" name="expression" rows="7"></textarea><br>
url :<input class="input text" type="text" id="url" name="url" value="" size="50" maxlength="255" style="width: 312px;"><br>
<textarea class="input textarea_standard" id="comments" name="comments" rows="7"></textarea>
<input class="input checkbox pointer" type="checkbox" id="status" name="status" value="1" checked="checked">
<input name="priority" value="4" id="priority_4" type="radio" class="ui-helper-hidden-accessible" checked="checked"> Information
<input name="priority" value="5" id="priority_5" type="radio" class="ui-helper-hidden-accessible"> Disaster <br>
<input type="hidden" id="save" name="save" value="Save" >
<input class="jqueryinput input button shadow ui-corner-all main ui-button ui-widget ui-state-default" type="submit" id="save" name="save" value="Save" role="button" aria-disabled="false">
<input class="input button shadow ui-button ui-widget ui-state-default ui-corner-left ui-corner-right" type="button" id="cancel" name="cancel" value="Cancel" onclick="javascript: return redirect('?cancel=1&hostid=10578&sid=e7a70a3063630b84');" role="button" aria-disabled="false">
</form>
<br>
<br>
<br>
<br>
<hr>
<input type="submit" id="do_submit" value="Do Magic stuff" onclick="doMagic()">
<table border="1">
<tr>
<td name="output" id="output">LOG</td>
</tr>
</table>
<script>
// INIT
document.getElementById('sid').value = document.getElementById('session').value ;
document.getElementById('hostid').value = document.getElementById('TemplateID').value ;
STRING_DESC_1 = "BadRegionsPresent Disk {$SHELF_NUMMBER}-{$DISK_NUMMBER}";
STRING_EXPR_1 = '{Template_DELL_COMPELLENT_CONTROLLER:snmptrap.fallback.str(type=4 value=STRING: "{$SHELF_NUMMBER}-{$DISK_NUMMBER}")}=1 & {Template_DELL_COMPELLENT_CONTROLLER:snmptrap.fallback.str(health code change: BadRegionsPresent)}=1 & {TRIGGER.VALUE}=0 | {TRIGGER.VALUE}=1';
STRING_DESC_2 = "Disk {$SHELF_NUMMBER}-{$DISK_NUMMBER} ready to replace";
STRING_EXPR_2 = '{Template_DELL_COMPELLENT_CONTROLLER:snmptrap.fallback.str(type=4 value=STRING: "{$SHELF_NUMMBER}-{$DISK_NUMMBER}")}=1 & {Template_DELL_COMPELLENT_CONTROLLER:snmptrap.fallback.str(Disk is Down: Schedule disk replacement.)}=1 & {TRIGGER.VALUE}=0 | {TRIGGER.VALUE}=1'
function doMagic(){
string_disknumber = "";
string_selfnumber = "";
for ( k= document.getElementById('enclosureNummber_start').value ; k <= document.getElementById('enclosureNummber_end').value ;k++ ){
string_selfnumber = "";
if (k <= 9) {
string_selfnumber = '0' + k.toString();
} else {
string_selfnumber = k.toString();
}
for ( i = document.getElementById('diskNummber_start').value ; i <= document.getElementById('diskNummber_end').value ;i++ ){
string_disknumber = "";
if (i <= 9) {
string_disknumber = '0' + i.toString();
} else {
string_disknumber = i.toString();
}
str1 = STRING_DESC_1;
str1 = str1.replace("{$SHELF_NUMMBER}", string_selfnumber);
str1 = str1.replace("{$DISK_NUMMBER}", string_disknumber);
str2 = STRING_EXPR_1;
str2 = str2.replace("{$SHELF_NUMMBER}", string_selfnumber);
str2 = str2.replace("{$DISK_NUMMBER}", string_disknumber);
str3 = STRING_DESC_2;
str3 = str3.replace("{$SHELF_NUMMBER}", string_selfnumber);
str3 = str3.replace("{$DISK_NUMMBER}", string_disknumber);
str4 = STRING_EXPR_2;
str4 = str4.replace("{$SHELF_NUMMBER}", string_selfnumber);
str4 = str4.replace("{$DISK_NUMMBER}", string_disknumber);
document.getElementById('output').innerHTML = document.getElementById('output').innerHTML + "<br>" + str1 ;
// SET NEW VALUE
/*
document.getElementById('description').value = str1;
document.getElementById('expression').value = str2;
document.getElementById('comments').value = "Erstellt durch script by BET am " + new Date();
document.getElementById('triggersForm').submit();
/**/
document.getElementById('description').value = str3;
document.getElementById('expression').value = str4;
document.getElementById('comments').value = "Erstellt durch script by BET, SIEMENS AG am " + new Date();
document.getElementById('triggersForm').submit();
}
}
}
</script>
</body>
</html>