Changeset 1986


Ignore:
Timestamp:
06/13/12 15:32:58 (12 years ago)
Author:
oschonef
Message:
  • make value for memory warning and memory critical user settable
  • enhance output
  • cosmetic fixes
File:
1 edited

Legend:

Unmodified
Added
Removed
  • monitoring/plugins/ids/check_shib_idp

    r1847 r1986  
    11#!/usr/bin/perl
    22#
    3 # check_shib_idp, version 2012-04-23
     3# check_shib_idp, version 2012-06-13
    44#
    55
     
    6565
    6666
    67 my $result = GetOptions("H=s" => \$host,
    68                         "u=s" => \$url,
    69                         "t=i" => \$timeout,
    70                         "S"   => \$use_ssl,
    71                         "D=i" => \$max_clock_diff,
    72                         "C=i" => \$cert_warn_days,
    73                         "v"   => \$verbose);
     67my $result = GetOptions('H=s' => \$host,
     68                        'u=s' => \$url,
     69                        't=i' => \$timeout,
     70                        'S'   => \$use_ssl,
     71                        'D=i' => \$max_clock_diff,
     72                        'C=i' => \$cert_warn_days,
     73                        'v'   => \$verbose,
     74                        'W=i'    => \$memory_warn,
     75                        'X=i'    => \$memory_crit);
    7476if (!($result)) {
    75     status(UNKNOWN, 'USAGE: -H <host> [-u <url>] [-t <timeout>] [-S] [-D <clock skew> -C <age>');
     77    status(UNKNOWN, 'USAGE: -H <host> [-u <url>] [-t <timeout>] [-S] ' .
     78           '[-D <clock skew>] [-C <age>] [-W <value] [-X <value>]');
    7679}
    7780
     
    8083    status(UNKNOWN, 'missing manadorty parameter -H <host>');
    8184}
     85
     86if (($memory_warn < 0) || ($memory_warn > 100)) {
     87    status(UNKNOWN, 'parameter -W <value> (memory warning) ' .
     88           'must be between 0 and 100');
     89}
     90
     91if (($memory_crit < 0) || ($memory_crit > 100)) {
     92    status(UNKNOWN, 'parameter -X <value> (memory critical) ' .
     93           'must be between 0 and 100');
     94}
     95
     96if ($memory_warn > $memory_crit) {
     97    status(UNKNOWN, 'value for memory warning must be less than ' .
     98           'value for memory critical');
     99}
     100
    82101
    83102#
     
    129148    my $mem_used = $result->{'used_memory'};
    130149    my $mem_max  = $result->{'maximum_memory'};
     150    my $mem_percentage = -1.0;
    131151    if (defined($mem_used) || defined($mem_max)) {
    132152        $mem_used =~ s/MB$//;
    133153        $mem_max  =~ s/MB$//;
    134         my $x = int(($mem_used * 10000) / $mem_max) / 100;
    135 
    136         print "memory $mem_used/$mem_max ($x)\n" if ($verbose > 0);
    137         if ($x > $memory_crit) {
     154        $mem_percentage = int(($mem_used * 10000) / $mem_max / 100);
     155
     156        printf("memory usage %s/%s (%d%%)\n",
     157               $mem_used, $mem_max, $mem_percentage)
     158            if ($verbose > 0);
     159
     160        if ($mem_percentage > $memory_crit) {
    138161            $code    = CRITICAL;
    139             $message = sprintf('IDP is low on memory (%s MB/%s MB)',
    140                                $mem_used, $mem_max);
     162            $message = sprintf('IDP is low on memory (%s MB/%s MB = %d%%)',
     163                               $mem_used, $mem_max, $mem_percentage);
    141164        }
    142         elsif ($x > $memory_warn) {
     165        elsif ($mem_percentage > $memory_warn) {
    143166            $code    = WARNING;
    144             $message = sprintf('IDP is running low on memory (%s MB/%s MB)',
    145                                $mem_used, $mem_max);
     167            $message = sprintf('IDP is running low on memory ' .
     168                               '(%s MB/%s MB = %d%%)',
     169                               $mem_used, $mem_max, $mem_percentage);
    146170        }
    147171    }
     
    185209    }
    186210    else {
    187         status(OK, sprintf('Shibboleth IDP version %s (Java version %s)',
    188                            $versions->{IDP}, $versions->{JAVA}));
     211        status(OK, sprintf('Shibboleth IDP version %s ' .
     212                           '(Java version %s, %d%% memory used)',
     213                           $versions->{IDP}, $versions->{JAVA},
     214                           $mem_percentage));
    189215    }
    190216}
     
    193219    status(CRITICAL, sprintf('error fetching status: %s', $status));
    194220}
    195 FOO:
    196221exit OK;
Note: See TracChangeset for help on using the changeset viewer.