Difference between revisions of "Nagios"
From Teknologisk videncenter
m |
m (→Script) |
||
Line 1: | Line 1: | ||
= check sensor example program = | = check sensor example program = | ||
== Script == | == Script == | ||
− | + | FreeBSD file /usr/local/libexec/nagios/check_humidity | |
<source lang="perl"> | <source lang="perl"> | ||
#!/usr/bin/perl | #!/usr/bin/perl | ||
Line 26: | Line 26: | ||
exit 0; | exit 0; | ||
} | } | ||
+ | } | ||
+ | </source> | ||
+ | == configuration == | ||
+ | <source lang="text"> | ||
+ | define service { | ||
+ | name five ; The name of this service template | ||
+ | use generic-service ; Inherit default values from the generic-service definition | ||
+ | check_period 24x7 ; The service can be checked at any time of the day | ||
+ | max_check_attempts 4 ; Re-check the service up to 4 times in order to determine its final (hard) state | ||
+ | normal_check_interval 5 ; Check the service every 5 minutes under normal conditions | ||
+ | retry_check_interval 1 ; Re-check the service every minute until a hard state can be determined | ||
+ | contact_groups router-admins ; Notifications get sent out to everyone in the 'admins' group | ||
+ | notification_options w,u,c,r ; Send notifications about warning, unknown, critical, and recovery events | ||
+ | notification_interval 60 ; Re-notify about service problems every hour | ||
+ | notification_period 24x7 ; Notifications can be sent out at any time | ||
+ | register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE! | ||
+ | } | ||
+ | |||
+ | define service { | ||
+ | use five | ||
+ | host_name localhost | ||
+ | service_description Humidity | ||
+ | check_command check_humidity!60 80 | ||
} | } | ||
</source> | </source> |
Revision as of 20:05, 14 May 2009
check sensor example program
Script
FreeBSD file /usr/local/libexec/nagios/check_humidity
#!/usr/bin/perl
if (scalar(@ARGV) != 2) {
print "Usage: $0 humidity_minimum humidity_maximum\n";
exit 3;
}
my $hum_min = shift;
my $hum_max = shift;
open(TEMP, "/usr/bin/temp |");
while(my $line = <TEMP>) {
if ($line =~ m/Humidity.+?(\d+)/ ) {
my $humidity = $1;
if ($humidity < $hum_min) {
print "Humidity is low under $hum_min% and now $humidity%\n";
exit 1;
}
if ($humidity > $hum_max) {
print "Humidity is high over $hum_max% and now $humidity%\n";
exit 2;
}
print "Humidity is OK. Now at $humidity%\n";
exit 0;
}
}
configuration
define service {
name five ; The name of this service template
use generic-service ; Inherit default values from the generic-service definition
check_period 24x7 ; The service can be checked at any time of the day
max_check_attempts 4 ; Re-check the service up to 4 times in order to determine its final (hard) state
normal_check_interval 5 ; Check the service every 5 minutes under normal conditions
retry_check_interval 1 ; Re-check the service every minute until a hard state can be determined
contact_groups router-admins ; Notifications get sent out to everyone in the 'admins' group
notification_options w,u,c,r ; Send notifications about warning, unknown, critical, and recovery events
notification_interval 60 ; Re-notify about service problems every hour
notification_period 24x7 ; Notifications can be sent out at any time
register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL SERVICE, JUST A TEMPLATE!
}
define service {
use five
host_name localhost
service_description Humidity
check_command check_humidity!60 80
}