I meant to post this a couple years ago, but since I haven't gotten to update it
and "fix" things as thoroughly as I'd like, here's what I've been using in
production tying nagios into ganglia.

  
http://www.nagiosexchange.org/Check_Plugins.21.0.html?&tx_netnagext_pi1[p_view]=1037


This is based on an older piece of GPL code I ran across that provided the basis
for the XML parsing... it's not elegant but got me a head-start and serves its
purpose to this day ;)  This supports pulling any metric out of the gmetric XML
directly.  I wrote a plugin originally to query the RRD's, but found going this
route to be a better solution for my purposes.

Let me know if you have any requests, find any bugs, suggestions, etc.


Cheers,

/eli




Vladimir wrote:
> Bernard Li wrote:
>> Can you explain a bit regarding how you integrate the Ganglia metrics
>> into Nagios?  Is this automated?
>>  
> 
> What you have to know is that Nagios is just an alerting engine. Real
> work for Nagios is done using Nagios plugins that provide the necessary
> checks. Nagios simply schedules these checks depending on the
> configuration and based on the return value of the script e.g. 0 for OK,
> 1 for WARNING and 2 for CRITICAL, 3 for UNKNOWN etc. an alert is sent.
> So what you have to do is write a script that is aware of Ganglia
> metrics and is able to produce error codes. Since I couldn't get the
> python script to give me raw metrics I needed to install whole Ganglia
> suite on my Nagios box ie. gmond/gmetad with Web Interface. You also
> need to install PHP interpreter (php-cli RPM for those uninitiated) Then
> you do something like this
> 
> 
> <?php
> 
> $ganglia_web="/var/www/html/ganglia";
> include_once "$ganglia_web/conf.php";
> include_once "$ganglia_web/get_context.php";
> # This is important. You get cluster summary
> $context = "cluster";
> include_once "$ganglia_web/functions.php";
> include_once "$ganglia_web/ganglia.php";
> include_once "$ganglia_web/get_ganglia.php";
> 
> print_r ($metrics)
> 
> ?>
> 
> Put this in a file then run
> 
> php stuff.php
> 
> And you get a nice array output of all Ganglia metrics. Then you just
> pick them out. For instance I have used swap_free and disk_free in the
> past. All you have to do is
> 
> $hostname = "host.domain.com";
> print $metrics[$hostname]['swap_free']['VAL'];
> 
> and voila you get swap_free value :-). Then you just write something
> that checks against some value
> 
> if ( $metrics[$hostname]['swap_free']['VAL'] > $argv[2] ) {
>     print ("SWAP OK");
>     exit (0);
> } else {
>    print "SWAP CRITICAL";
>    exit (2);
> }
> 
> and you integrate this into Nagios. If I am motivated enough I'll write
> a generic Ganglia Nagios script :-).
> 
> Vladimir
> 
> -------------------------------------------------------------------------
> This SF.net email is sponsored by DB2 Express
> Download DB2 Express C - the FREE version of DB2 express and take
> control of your XML. No limits. Just data. Click to get it now.
> http://sourceforge.net/powerbar/db2/
> _______________________________________________
> Ganglia-general mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ganglia-general
> 

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Ganglia-general mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ganglia-general

Reply via email to