User Tools

Site Tools


docs:tips_n_tricks:nagios:using_http_for_passive_checks

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
docs:tips_n_tricks:nagios:using_http_for_passive_checks [22.10.2012 16:36 CEST] peterdocs:tips_n_tricks:nagios:using_http_for_passive_checks [23.10.2012 10:54 CEST] (current) peter
Line 1: Line 1:
 ====== Using HTTP for passive checks ====== ====== Using HTTP for passive checks ======
  
 +===== Using cmd.cgi =====
 This description is valid for //Nagios 3//. This description is valid for //Nagios 3//.
  
Line 41: Line 42:
  
 Of course, in a large environment with appropriate security needs, you would write a PHP script that is restricted to write passive checks. Of course, in a large environment with appropriate security needs, you would write a PHP script that is restricted to write passive checks.
 +
 +===== Using PHP =====
 +If you prefer a separate PHP script, this may serve as a skeleton:
 +
 +  <?php
 +  $state_str=array( 0 => 'OK'     , 
 +                    1 => 'WARN'   ,
 +                    2 => 'CRIT'   ,
 +                    3 => 'UNKNOWN') ;
 +  $nsca_host="localhost" ;
 +  $send_nsca="/usr/sbin/send_nsca" ;
 +  ?>
 +  <HTML>
 +  <HEAD>
 +  <TITLE>http nsca reciever</TITLE>
 +  </HEAD>
 +  <BODY>
 +  <?php
 +  $log_fh=fopen("/tmp/nsca.php.log","a") ;
 +  fwrite($log_fh,'========= BEGIN ============'."\n");
 +  ?><H2>Input</H2><?php
 +  while (list ($key, $val) = each ($_REQUEST)) {
 +   print htmlentities("$key = '$val'")."<BR>\n";
 +   fwrite($log_fh,"$key = '$val'\n");
 +   }
 +  
 +  $host    = $_REQUEST['host'] ;
 +  $service = $_REQUEST['service'] ;
 +  $state   = $_REQUEST['state'] ;
 +  $msg     = $_REQUEST['msg'] ;
 +  ?><H2>Output</H2><?php
 +  $nsca_fh=popen($send_nsca.' -H '.$nsca_host,"w") ;
 +  fwrite($nsca_fh,sprintf("%s\t%s\t%s\t%s\n",$host,$service,$state,$msg));
 +  fwrite($log_fh,sprintf("%s<T>%s<T>%s<T>%s\n",$host,$service,$state.' ('.$state_str[$state].')',$msg));
 +  printf("<TABLE BORDER=1><TR><TD>Host</TD><TD>Service</TD><TD>State</TD><TD>Message</TD></TR>".
 +         "<TR><TD>%s</TD><TD>%s</TD><TD>%s</TD><TD>%s</TD></TR></TABLE>\n",$host,$service,$state.' ('.$state_str[$state].')',$msg);
 +  pclose($nsca_fh);
 +  
 +  fwrite($log_fh,'========= END ============'."\n");
 +  fclose($log_fh);
 +  ?>
 +  </BODY>
 +  </HTML>
 +
 +
 +
 +{{tag>Nagios Monitoring}}
 +{{entry>Nagios}}
 +{{entry>Monitoring}}
docs/tips_n_tricks/nagios/using_http_for_passive_checks.1350916606.txt.gz · Last modified: 22.10.2012 16:36 CEST by peter

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki