Ad Widget

Collapse

*HACK* Script creates dynamic Triggers for a Host HHTP POST VARS SUBMIT

Collapse
X
 
  • Time
  • Show
Clear All
new posts
  • zabbixx
    Member
    • Jul 2012
    • 71

    #1

    *HACK* Script creates dynamic Triggers for a Host HHTP POST VARS SUBMIT

    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

    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&amp;hostid=10578&amp;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>
Working...