This commit is contained in:
garnier-quentin 2019-12-18 15:07:42 +01:00
parent 5d13fb53eb
commit 99a3283fd5
7 changed files with 126 additions and 44 deletions

View File

@ -1,3 +1,13 @@
2019-12-XX Quentin Garnier <qgarnier@centreon.com>
* Plugin added: CouchDB Rest API
* Plugin added: Maltem Insight Performance Rest API
* Plugin added: Hikvision camera SNMP
* Plugin added: Avaya CM SNMP
* Plugin added: Palo Alto SSH
* Mode added: [linux/snmp] 'udpcon'
* Mode added: [cisco/standard/snmp] 'load'
* Fix: Ctrl+F "Fix" on commits page
2019-10-16 Colin Gagnaire <cgagnaire@centreon.com>
* Plugin added: ABB CMS700 SNMP
* Mode added: [linux/local] 'discovery-nmap'

View File

@ -37,14 +37,18 @@ my $oid_extremeFanStatusEntry = '.1.3.6.1.4.1.1916.1.1.1.9.1';
sub load {
my ($self) = @_;
push @{$self->{request}}, { oid => $oid_extremeFanStatusEntry, end => $mapping->{extremeFanOperational}->{oid} };
push @{$self->{request}}, {
oid => $oid_extremeFanStatusEntry,
start => $mapping->{extremeFanOperational}->{oid},
end => $mapping->{extremeFanSpeed}->{oid}
};
}
sub check {
my ($self) = @_;
$self->{output}->output_add(long_msg => "Checking fans");
$self->{components}->{fan} = {name => 'fans', total => 0, skip => 0};
$self->{components}->{fan} = { name => 'fans', total => 0, skip => 0 };
return if ($self->check_filter(section => 'fan'));
my ($exit, $warn, $crit, $checked);
@ -56,19 +60,37 @@ sub check {
next if ($self->check_filter(section => 'fan', instance => $instance));
$self->{components}->{fan}->{total}++;
$self->{output}->output_add(long_msg => sprintf("Fan '%s' status is '%s' [instance = %s, speed = %s]",
$instance, $result->{extremeFanOperational}, $instance, defined($result->{extremeFanSpeed}) ? $result->{extremeFanSpeed} : 'unknown'));
$self->{output}->output_add(long_msg =>
sprintf(
"Fan '%s' status is '%s' [instance = %s, speed = %s]",
$instance,
$result->{extremeFanOperational},
$instance,
defined($result->{extremeFanSpeed}) ? $result->{extremeFanSpeed} : 'unknown'
)
);
$exit = $self->get_severity(section => 'fan', value => $result->{extremeFanOperational});
if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) {
$self->{output}->output_add(severity => $exit,
short_msg => sprintf("Fan '%s' status is '%s'", $instance, $result->{extremeFanOperational}));
next;
$self->{output}->output_add(
severity => $exit,
short_msg => sprintf(
"Fan '%s' status is '%s'",
$instance,
$result->{extremeFanOperational}
)
);
}
($exit, $warn, $crit, $checked) = $self->get_severity_numeric(section => 'fan', instance => $instance, value => $result->{extremeFanSpeed});
if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) {
$self->{output}->output_add(severity => $exit,
short_msg => sprintf("Fan '%s' is '%s' rpm", $instance, $result->{extremeFanSpeed}));
$self->{output}->output_add(
severity => $exit,
short_msg => sprintf(
"Fan '%s' is '%s' rpm",
$instance,
$result->{extremeFanSpeed}
)
);
}
$self->{output}->perfdata_add(
label => 'fan', unit => 'rpm',
@ -76,7 +98,8 @@ sub check {
instances => $instance,
value => $result->{extremeFanSpeed},
warning => $warn,
critical => $crit, min => 0
critical => $crit,
min => 0
);
}
}

View File

@ -54,7 +54,7 @@ sub check {
my ($self) = @_;
$self->{output}->output_add(long_msg => "Checking poes");
$self->{components}->{poe} = {name => 'poes', total => 0, skip => 0};
$self->{components}->{poe} = { name => 'poes', total => 0, skip => 0 };
return if ($self->check_filter(section => 'poe'));
my ($exit, $warn, $crit, $checked);
@ -70,22 +70,39 @@ sub check {
sprintf("%.3f", $result2->{extremePethSlotMeasuredPower} / 1000) : 'unknown';
$self->{components}->{poe}->{total}++;
$self->{output}->output_add(long_msg => sprintf("Poe '%s' status is '%s' [instance = %s, power = %s]",
$instance, $result->{extremePethSlotPoeStatus},
$instance, $result2->{extremePethSlotMeasuredPower}));
$self->{output}->output_add(
long_msg => sprintf(
"Poe '%s' status is '%s' [instance = %s, power = %s]",
$instance,
$result->{extremePethSlotPoeStatus},
$instance,
$result2->{extremePethSlotMeasuredPower}
)
);
$exit = $self->get_severity(section => 'poe', value => $result->{extremePethSlotPoeStatus});
if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) {
$self->{output}->output_add(severity => $exit,
short_msg => sprintf("Poe '%s' status is '%s'", $instance, $result->{extremePethSlotPoeStatus}));
next;
$self->{output}->output_add(
severity => $exit,
short_msg => sprintf(
"Poe '%s' status is '%s'",
$instance,
$result->{extremePethSlotPoeStatus}
)
);
}
next if ($result2->{extremePethSlotMeasuredPower} !~ /\d+/);
($exit, $warn, $crit, $checked) = $self->get_severity_numeric(section => 'poe', instance => $instance, value => $result2->{extremePethSlotMeasuredPower});
if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) {
$self->{output}->output_add(severity => $exit,
short_msg => sprintf("Poe '%s' is '%s' W", $instance, $result2->{extremePethSlotMeasuredPower}));
$self->{output}->output_add(
severity => $exit,
short_msg => sprintf(
"Poe '%s' is '%s' W",
$instance,
$result2->{extremePethSlotMeasuredPower}
)
);
}
$self->{output}->perfdata_add(
label => 'poe_power', unit => 'W',
@ -93,7 +110,8 @@ sub check {
instances => $instance,
value => $result2->{extremePethSlotMeasuredPower},
warning => $warn,
critical => $crit, min => 0
critical => $crit,
min => 0
);
}
}

View File

@ -54,13 +54,21 @@ sub check_fan_speed {
my ($exit, $warn, $crit, $checked) = $self->get_severity_numeric(section => 'psu.fan', instance => $options{instance}, value => $options{value});
if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) {
$self->{output}->output_add(severity => $exit,
short_msg => sprintf("Power supply fan '%s' is '%s' rpm", $options{instance}, $options{value}));
$self->{output}->output_add(
severity => $exit,
short_msg => sprintf(
"Power supply fan '%s' is '%s' rpm",
$options{instance},
$options{value}
)
);
}
$self->{output}->perfdata_add(label => 'psu_fan_' . $options{instance}, unit => 'rpm',
$self->{output}->perfdata_add(
label => 'psu_fan_' . $options{instance}, unit => 'rpm',
value => $options{value},
warning => $warn,
critical => $crit, min => 0
critical => $crit,
min => 0
);
}
@ -109,7 +117,8 @@ sub check {
instances => $instance,
value => $power,
warning => $warn,
critical => $crit, min => 0
critical => $crit,
min => 0
);
}
}

View File

@ -57,7 +57,7 @@ sub check {
my ($self) = @_;
$self->{output}->output_add(long_msg => "Checking slots");
$self->{components}->{slot} = {name => 'slots', total => 0, skip => 0};
$self->{components}->{slot} = { name => 'slots', total => 0, skip => 0 };
return if ($self->check_filter(section => 'slot'));
foreach my $oid ($self->{snmp}->oid_lex_sort(keys %{$self->{results}->{$oid_extremeSlotEntry}})) {
@ -72,12 +72,24 @@ sub check {
}
$self->{components}->{slot}->{total}++;
$self->{output}->output_add(long_msg => sprintf("Slot '%s' status is '%s' [instance = %s]",
$result->{extremeSlotName}, $result->{extremeSlotModuleState}, $instance));
$self->{output}->output_add(long_msg =>
sprintf(
"Slot '%s' status is '%s' [instance = %s]",
$result->{extremeSlotName},
$result->{extremeSlotModuleState},
$instance
)
);
my $exit = $self->get_severity(section => 'slot', value => $result->{extremeSlotModuleState});
if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) {
$self->{output}->output_add(severity => $exit,
short_msg => sprintf("Slot '%s' status is '%s'", $result->{extremeSlotName}, $result->{extremeSlotModuleState}));
$self->{output}->output_add(
severity => $exit,
short_msg => sprintf(
"Slot '%s' status is '%s'",
$result->{extremeSlotName},
$result->{extremeSlotModuleState}
)
);
}
}
}

View File

@ -36,8 +36,8 @@ sub load {
sub check {
my ($self) = @_;
$self->{output}->output_add(long_msg => "Checking temperatures");
$self->{components}->{temperature} = {name => 'temperatures', total => 0, skip => 0};
$self->{output}->output_add(long_msg => 'Checking temperatures');
$self->{components}->{temperature} = { name => 'temperatures', total => 0, skip => 0 };
return if ($self->check_filter(section => 'temperature'));
return if (!defined($self->{results}->{$mapping->{extremeCurrentTemperature}->{oid}}->{$mapping->{extremeCurrentTemperature}->{oid} . '.0'}));
@ -47,16 +47,26 @@ sub check {
next if ($self->check_filter(section => 'temperature', instance => $instance));
$self->{components}->{temperature}->{total}++;
$self->{output}->output_add(long_msg => sprintf("temperature is %dC [instance: %s].",
$self->{output}->output_add(
long_msg => sprintf(
'temperature is %dC [instance: %s].',
$result->{extremeCurrentTemperature},
$instance));
$instance
)
);
my ($exit, $warn, $crit) = $self->get_severity_numeric(section => 'temperature', instance => $instance, value => $result->{extremeCurrentTemperature});
if (!$self->{output}->is_status(value => $exit, compare => 'ok', litteral => 1)) {
$self->{output}->output_add(severity => $exit,
short_msg => sprintf("Temperature is %s degree centigrade", $result->{extremeCurrentTemperature}));
$self->{output}->output_add(
severity => $exit,
short_msg => sprintf(
'Temperature is %s degree centigrade',
$result->{extremeCurrentTemperature}
)
);
}
$self->{output}->perfdata_add(
label => "temp", unit => 'C',
label => 'temp', unit => 'C',
nlabel => 'hardware.temperature.celsius',
value => $result->{extremeCurrentTemperature},
warning => $warn,