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

Reply via email to