Some IPMI monitoring I'm working on; thought I'd check it in to the contrib. tree. --Augie
On Thu, Feb 12, 2009 at 10:10 AM, Augie Schwer <asch...@users.sourceforge.net> wrote: > Update of /cvsroot/mon/mon-contrib/monitors/ipmi > In directory 23jxhf1.ch3.sourceforge.com:/tmp/cvs-serv2465/ipmi > > Added Files: > ipmi_fan.monitor ipmi_mb_temp.monitor ipmi_power_unit.monitor > ipmi_proc1_temp.monitor ipmi_proc2_temp.monitor > ipmi_psu_temp.monitor > Log Message: > Some basic IPMI monitoring using ipmitool > > --- NEW FILE: ipmi_mb_temp.monitor --- > #!/usr/bin/perl > # > # ipmi_mb_temp.monitor > # > # Augie Schwer <au...@corp.sonic.net> > > use strict; > use warnings; > > use English; > > my $TIMEOUT = 5; > > my $ipmitool = `which ipmitool 2> /dev/null`; > chomp $ipmitool; > my $temp; > > eval > { > local $SIG{ALRM} = sub { die "timeout" }; > alarm $TIMEOUT; > > $temp = `ipmitool sdr type "Temp" | grep 'Baseboard' | cut -d"|" -f 5 > | awk {'print \$1'}` > }; > > alarm(0); > > if ($EVAL_ERROR =~ /^timeout/) > { > print "ipmitool timed out.\n"; > exit 1; > } > > print "Success!\n"; > exit $temp; > > > --- NEW FILE: ipmi_proc2_temp.monitor --- > #!/usr/bin/perl > # > # ipmi_proc2_temp.monitor > # > # Augie Schwer <au...@corp.sonic.net> > > use strict; > use warnings; > > use English; > > my $TIMEOUT = 5; > > my $ipmitool = `which ipmitool 2> /dev/null`; > chomp $ipmitool; > my $temp; > > eval > { > local $SIG{ALRM} = sub { die "timeout" }; > alarm $TIMEOUT; > > $temp = `ipmitool sdr type "Temp" | grep 'Processor2' | cut -d"|" -f 5 > | awk {'print \$1'}` > }; > > alarm(0); > > if ($EVAL_ERROR =~ /^timeout/) > { > print "ipmitool timed out.\n"; > exit 1; > } > > print "Success!\n"; > exit $temp; > > > --- NEW FILE: ipmi_proc1_temp.monitor --- > #!/usr/bin/perl > # > # ipmi_proc1_temp.monitor > # > # Augie Schwer <au...@corp.sonic.net> > > use strict; > use warnings; > > use English; > > my $TIMEOUT = 5; > > my $ipmitool = `which ipmitool 2> /dev/null`; > chomp $ipmitool; > my $temp; > > eval > { > local $SIG{ALRM} = sub { die "timeout" }; > alarm $TIMEOUT; > > $temp = `ipmitool sdr type "Temp" | grep 'Processor1' | cut -d"|" -f 5 > | awk {'print \$1'}` > }; > > alarm(0); > > if ($EVAL_ERROR =~ /^timeout/) > { > print "ipmitool timed out.\n"; > exit 1; > } > > print "Success!\n"; > exit $temp; > > > --- NEW FILE: ipmi_fan.monitor --- > #!/usr/bin/perl > # > # ipmi_fan.monitor > # Uses ipmi to check for failed fans. > # For use with mon. > # > # Augie Schwer <au...@corp.sonic.net> > > use strict; > use warnings; > > use English; > > my $TIMEOUT = 5; > > my $ipmitool = `which ipmitool 2> /dev/null`; > chomp $ipmitool; > my @fan_unit_fail; > > eval > { > local $SIG{ALRM} = sub { die "timeout" }; > alarm $TIMEOUT; > > @fan_unit_fail = `$ipmitool sdr type "Fan" | grep lcr`; > }; > > alarm(0); > > if ($EVAL_ERROR =~ /^timeout/) > { > print "ipmitool timed out.\n"; > exit 1; > } > > if ( @fan_unit_fail ) > { > print "A fan has failed\n"; > exit 1; > } > > print "Success!\n"; > exit 0; > > > --- NEW FILE: ipmi_psu_temp.monitor --- > #!/usr/bin/perl > # > # ipmi_psu_temp.monitor > # > # Augie Schwer <au...@corp.sonic.net> > > use strict; > use warnings; > > use English; > > my $TIMEOUT = 5; > > my $ipmitool = `which ipmitool 2> /dev/null`; > chomp $ipmitool; > my $temp; > > eval > { > local $SIG{ALRM} = sub { die "timeout" }; > alarm $TIMEOUT; > > $temp = `ipmitool sdr type "Temp" | grep 'Power Cage' | cut -d"|" -f 5 > | awk {'print \$1'}` > }; > > alarm(0); > > if ($EVAL_ERROR =~ /^timeout/) > { > print "ipmitool timed out.\n"; > exit 1; > } > > print "Success!\n"; > exit $temp; > > > --- NEW FILE: ipmi_power_unit.monitor --- > #!/usr/bin/perl > # > # ipmi_power_unit.monitor > # Uses ipmi to check for failed power supplies. > # For use with mon. > # > # Augie Schwer <au...@corp.sonic.net> > > use strict; > use warnings; > > use English; > > my $TIMEOUT = 5; > > my $ipmitool = `which ipmitool 2> /dev/null`; > chomp $ipmitool; > my @power_unit_fail; > > eval > { > local $SIG{ALRM} = sub { die "timeout" }; > alarm $TIMEOUT; > > @power_unit_fail = `$ipmitool sdr type "Power Unit" | grep "Redundancy > Lost"`; > }; > > alarm(0); > > if ($EVAL_ERROR =~ /^timeout/) > { > print "ipmitool timed out.\n"; > exit 1; > } > > if ( @power_unit_fail ) > { > print "A power unit has failed\n"; > exit 1; > } > > print "Success!\n"; > exit 0; > > > > ------------------------------------------------------------------------------ > _______________________________________________ > Mon-commit mailing list > mon-com...@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/mon-commit > -- Augie Schwer - au...@schwer.us - http://schwer.us Key fingerprint = 9815 AE19 AFD1 1FE7 5DEE 2AC3 CB99 2784 27B0 C072 _______________________________________________ mon mailing list mon@linux.kernel.org http://linux.kernel.org/mailman/listinfo/mon