bladechassis ibm fix
This commit is contained in:
parent
c34db2de0f
commit
512aea93cd
|
@ -0,0 +1,89 @@
|
|||
################################################################################
|
||||
# Copyright 2005-2013 MERETHIS
|
||||
# Centreon is developped by : Julien Mathis and Romain Le Merlus under
|
||||
# GPL Licence 2.0.
|
||||
#
|
||||
# This program is free software; you can redistribute it and/or modify it under
|
||||
# the terms of the GNU General Public License as published by the Free Software
|
||||
# Foundation ; either version 2 of the License.
|
||||
#
|
||||
# This program is distributed in the hope that it will be useful, but WITHOUT ANY
|
||||
# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
|
||||
# PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
||||
#
|
||||
# You should have received a copy of the GNU General Public License along with
|
||||
# this program; if not, see <http://www.gnu.org/licenses>.
|
||||
#
|
||||
# Linking this program statically or dynamically with other modules is making a
|
||||
# combined work based on this program. Thus, the terms and conditions of the GNU
|
||||
# General Public License cover the whole combination.
|
||||
#
|
||||
# As a special exception, the copyright holders of this program give MERETHIS
|
||||
# permission to link this program with independent modules to produce an executable,
|
||||
# regardless of the license terms of these independent modules, and to copy and
|
||||
# distribute the resulting executable under terms of MERETHIS choice, provided that
|
||||
# MERETHIS also meet, for each linked independent module, the terms and conditions
|
||||
# of the license of that module. An independent module is a module which is not
|
||||
# derived from this program. If you modify this program, you may extend this
|
||||
# exception to your version of the program, but you are not obliged to do so. If you
|
||||
# do not wish to do so, delete this exception statement from your version.
|
||||
#
|
||||
# For more information : contact@centreon.com
|
||||
# Authors : Quentin Garnier <qgarnier@merethis.com>
|
||||
#
|
||||
####################################################################################
|
||||
|
||||
package hardware::server::ibm::bladecenter::snmp::mode::components::ambient;
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
|
||||
# In MIB 'mmblade.mib'
|
||||
my $oid_temperature = '.1.3.6.1.4.1.2.3.51.2.2.1';
|
||||
my $oids = {
|
||||
mm => '.1.3.6.1.4.1.2.3.51.2.2.1.1.2.0',
|
||||
frontpanel => '.1.3.6.1.4.1.2.3.51.2.2.1.5.1.0',
|
||||
frontpanel2 => '.1.3.6.1.4.1.2.3.51.2.2.1.5.2.0',
|
||||
}
|
||||
|
||||
sub load {
|
||||
my (%options) = @_;
|
||||
|
||||
push @{$options{request}}, { oid => $oid_temperature };
|
||||
}
|
||||
|
||||
sub check {
|
||||
my ($self) = @_;
|
||||
|
||||
$self->{output}->output_add(long_msg => "Checking ambient");
|
||||
$self->{components}->{ambient} = {name => 'ambient', total => 0, skip => 0};
|
||||
return if ($self->check_exclude(section => 'ambient'));
|
||||
|
||||
foreach my $temp (('mm', 'frontpanel', 'frontpanel2')) {
|
||||
if (!defined($self->{results}->{$oid_temperature}->{$oids->{$temp}}) ||
|
||||
$self->{results}->{$oid_temperature}->{$oids->{$temp}} !~ /([0-9\.]+)/) {
|
||||
$self->{output}->output_add(long_msg => sprintf("skip ambient '%s': no values",
|
||||
$temp));
|
||||
next;
|
||||
}
|
||||
|
||||
my $value = $1;
|
||||
next if ($self->check_exclude(section => 'ambient', instance => $temp));
|
||||
$self->{components}->{ambient}->{total}++;
|
||||
|
||||
$self->{output}->output_add(long_msg => sprintf("ambient '%s' is %s degree centigrade.",
|
||||
$temp, $value));
|
||||
my ($exit, $warn, $crit, $checked) = $self->get_severity_numeric(section => 'ambient', instance => $temp, value => $value);
|
||||
if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) {
|
||||
$self->{output}->output_add(severity => $exit,
|
||||
short_msg => sprintf("ambient '%s' is %s degree centigrade.",
|
||||
$temp, $value));
|
||||
}
|
||||
$self->{output}->perfdata_add(label => 'temp_' . $temp, unit => 'C',
|
||||
value => $value,
|
||||
warning => $warn,
|
||||
critical => $crit);
|
||||
}
|
||||
}
|
||||
|
||||
1;
|
|
@ -107,6 +107,8 @@ sub check {
|
|||
$instance, $blower_state));
|
||||
}
|
||||
|
||||
next if (!defined($ctrl_state));
|
||||
|
||||
next if ($self->check_exclude(section => 'blowerctrl', instance => $instance));
|
||||
next if ($ctrl_state =~ /notPresent/i &&
|
||||
$self->absent_problem(section => 'blowerctrl', instance => $instance));
|
||||
|
|
|
@ -137,7 +137,7 @@ sub check_options {
|
|||
$self->{output}->option_exit();
|
||||
}
|
||||
my ($section, $regexp, $value) = ($1, $2, $3);
|
||||
if ($section !~ /(blower|ambient|blade)/) {
|
||||
if ($section !~ /(blower|ambient)/) {
|
||||
$self->{output}->add_option_msg(short_msg => "Wrong $option option '" . $val . "' (type must be: battery or temperature).");
|
||||
$self->{output}->option_exit();
|
||||
}
|
||||
|
@ -322,7 +322,7 @@ If total (with skipped) is 0. (Default: 'critical' returns).
|
|||
|
||||
Set to overload default threshold values (syntax: section,status,regexp)
|
||||
It used before default thresholds (order stays).
|
||||
Example: --threshold-overload='powermodule,CRITICAL,^(?!(good)$)'
|
||||
Example: --threshold-overload='blade,OK,unknown'
|
||||
|
||||
=item B<--warning>
|
||||
|
||||
|
@ -332,7 +332,7 @@ Example: --warning='ambient,mm,30' --warning='ambient,frontpanel,35'
|
|||
=item B<--critical>
|
||||
|
||||
Set critical threshold for temperatures (syntax: type,regexp,treshold)
|
||||
Example: --critical='blower,1.speed,6000' --critical='blade,1.4Temp,30'
|
||||
Example: --critical='blower,1,50'
|
||||
|
||||
=back
|
||||
|
||||
|
|
Loading…
Reference in New Issue