diff options
Diffstat (limited to 'contrib/check_nagios.pl')
| -rw-r--r-- | contrib/check_nagios.pl | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/contrib/check_nagios.pl b/contrib/check_nagios.pl deleted file mode 100644 index 7d15d4db..00000000 --- a/contrib/check_nagios.pl +++ /dev/null | |||
| @@ -1,48 +0,0 @@ | |||
| 1 | #!/usr/bin/perl | ||
| 2 | # denao - denao@uol.com.br - Systems Engineering | ||
| 3 | # Universo Online - http://www.uol.com.br | ||
| 4 | use DBI; | ||
| 5 | use Time::Local; | ||
| 6 | |||
| 7 | my $t_lambuja = 5; # (expire_minutes) | ||
| 8 | my $databasename = ""; # The name of nagios database (i.e.: nagios) | ||
| 9 | my $table = "programstatus"; | ||
| 10 | my $where = "localhost"; # The machine where the database | ||
| 11 | my $port = "3306"; | ||
| 12 | my $base = "DBI:mysql:$databasename:$where:$port"; | ||
| 13 | my $user = ""; # the user to connect to the database | ||
| 14 | # (needs permission to "select at programstatus table only" | ||
| 15 | my $password = ""; # the password (if any) | ||
| 16 | my %results; | ||
| 17 | my @fields = qw( last_update ); | ||
| 18 | my $dbh = DBI->connect($base,$user,$password); | ||
| 19 | my $fields = join(', ', @fields); | ||
| 20 | my $query = "SELECT $fields FROM $table"; | ||
| 21 | |||
| 22 | my $sth = $dbh->prepare($query); | ||
| 23 | $sth->execute(); | ||
| 24 | |||
| 25 | @results{@fields} = (); | ||
| 26 | $sth->bind_columns(map { \$results{$_} } @fields); | ||
| 27 | |||
| 28 | $sth->fetch(); | ||
| 29 | $sth->finish(); | ||
| 30 | $dbh->disconnect(); | ||
| 31 | |||
| 32 | check_update(); | ||
| 33 | |||
| 34 | sub check_update { | ||
| 35 | ($yea,$mon,$day,$hou,$min,$sec)=($results{last_update}=~/(\d+)\-(\d+)\-(\d+)\s(\d+)\:(\d+)\:(\d+)/); | ||
| 36 | ($sec_now, $min_now, $hou_now, $day_now, $mon_now, $yea_now) = (localtime(time))[0,1,2,3,4,5]; | ||
| 37 | $mon_now+=1; $yea_now+=1900; | ||
| 38 | $unixdate=timelocal($sec,$min,$hou,$day,$mon,$yea); | ||
| 39 | $unixdate_now=timelocal($sec_now,$min_now,$hou_now,$day_now,$mon_now,$yea_now); | ||
| 40 | if (scalar($unixdate_now - $unixdate) > scalar($t_lambuja * 60)) { | ||
| 41 | print "Nagios problem: nagios is down, for at least " . scalar($t_lambuja) . " minutes.\n"; | ||
| 42 | exit(1); | ||
| 43 | } else { | ||
| 44 | print "Nagios ok: status data updated " . scalar($unixdate_now - $unixdate) . " seconds ago\n"; | ||
| 45 | exit(0); | ||
| 46 | } | ||
| 47 | } | ||
| 48 | |||
