Flume DFO local storage usage check

It might be useful when flume driver failed.

!/usr/bin/perl
#Check flume DFO directory size

sub trim($);
use strict;
use warnings;

my $exit=0;
my $backlog_size = `du -s flume | awk {‘print \$1’}`;
$backlog_size = trim($backlog_size);

if ( !$ARGV[0] || !$ARGV[1])
{
########################### Usage of the plugin
print check_flume_backlog critical_size warning_size   \n;
exit 0;
}

######################### Case 1 if State is Critical
if ($backlog_size > $ARGV[0])
{
print Critical: .$backlog_size.b\n;
exit 2;
}

######################## Case 2 if State is Warning
if($backlog_size > $ARGV[1] || $backlog_size == 0)
{
print Warning: .$backlog_size.b\n;
exit 1;
}

######################## Case 3 if State is OK
if($backlog_size < $ARGV[0] && $backlog_size < $ARGV[1])
{
print OK: .$backlog_size.b\n;
exit 0;
}

sub trim($)
{
        my $string = shift;
        $string =~ s/^\s+//;
        $string =~ s/\s+$//;
        return $string;
}

And for centralised monitoring..

#!/usr/bin/php
<?php
//Check flume DFO directory size from all collection servers

// default warning 500MB
if(!isset($argv[1])) $warning = “5000000000”;
else $warning = $argv[1];
// default critical 1GB
if(!isset($argv[2])) $critical = “10000000000”;
else $critical = $argv[2];

$servers = array();
$results = “”;
$total = 0;
$ok = 0;
$warning_list = “”;
$critical_list = “”;

//-snip-  get server lists from nagios

foreach($servers as $server)
{
        //echo $server.”\n”;
        $cmd = “check_nrpe -H $server -c check_flume_backlog -a $critical $warning';
        $result = [.$server.] .exec($cmd).”\n”;

        $total++;
        if(preg_match(/OK/,$result)) $ok++;
        else if(preg_match(/Warning/,$result)) $warning_list.=$server.,;
        else if(preg_match(/Critical/,$result)) $critical_list.=$server.,;

        $results.=$result;
}

if(!empty($critical_list)) $notification = “CRITICAL: .$critical_list;
else if(!empty($warning_list))  $notification = “WARNING: .$warning_list;
else $notification = “OK: .$ok./.$total;

echo $notification.”\n”.$results;

?>