enhance paloalto ssh system mode

This commit is contained in:
garnier-quentin 2020-01-02 11:26:23 +01:00
parent 26545d48bb
commit e78193c55d
2 changed files with 45 additions and 3 deletions

View File

@ -104,6 +104,7 @@ sub get_hostname {
##############
# Specific methods
##############
sub execute_command {
my ($self, %options) = @_;
@ -121,6 +122,10 @@ sub execute_command {
);
$self->{output}->output_add(long_msg => "command response: $stdout", debug => 1);
if (defined($options{text_output})) {
return $stdout;
}
if ($stdout !~ /(<response status="(.*?)">.*<\/response>)/ms) {
$self->{output}->add_option_msg(short_msg => "Cannot find xml response");
$self->{output}->option_exit();

View File

@ -59,7 +59,7 @@ sub set_counters {
my ($self, %options) = @_;
$self->{maps_counters_type} = [
{ name => 'system', type => 0, message_separator => ' - ' }
{ name => 'system', type => 0, message_separator => ' - ', skipped_code => { -10 => 1 } }
];
$self->{maps_counters}->{system} = [
@ -87,12 +87,30 @@ sub set_counters {
],
}
},
{ label => 'sessions-traffic', nlabel => 'system.sessions.traffic.count', set => {
key_values => [ { name => 'throughput', diff => 1 } ],
output_template => 'session traffic: %s %s/s',
output_change_bytes => 2,
perfdatas => [
{ value => 'throughput_absolute', template => '%s',
unit => 'b/s', min => 0 },
],
}
},
{ label => 'sessions-total-active', nlabel => 'system.sessions.total.active.count', display_ok => 0, set => {
key_values => [ { name => 'active_sessions' } ],
output_template => 'total active sessions: %s',
perfdatas => [
{ value => 'active_sessions_absolute', template => '%s', min => 0 },
],
}
},
];
}
sub new {
my ($class, %options) = @_;
my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1);
my $self = $class->SUPER::new(package => __PACKAGE__, %options, statefile => 1, force_new_perfdata => 1);
bless $self, $class;
$options{options}->add_options(arguments => {
@ -144,6 +162,24 @@ sub manage_selection {
threat_version => $result->{system}->{'threat-version'},
oper_mode => $result->{system}->{'operational-mode'},
};
#Device is up : 40 days 5 hours 53 mins 12 sec
#Packet rate : 15872/s
#Throughput : 111588 Kbps
#Total active sessions : 12769
#Active TCP sessions : 5217
#Active UDP sessions : 7531
#Active ICMP sessions : 19
$result = $options{custom}->execute_command(command => 'show system statistics session', text_output => 1);
if ($result =~ /^Throughput\s*:\s*(\d+)\s+(..)/mi) {
$self->{system}->{throughput} = centreon::plugins::misc::convert_bytes(value => $1, unit => $2);
}
if ($result =~ /^Total\s+active\s+sessions\s*:\s*(\d+)/mi) {
$self->{system}->{active_sessions} = $1;
}
$self->{cache_name} = "paloalto_" . $self->{mode} . '_' . $options{custom}->get_hostname() . '_' .
(defined($self->{option_results}->{filter_counters}) ? md5_hex($self->{option_results}->{filter_counters}) : md5_hex('all'));
}
1;
@ -174,7 +210,8 @@ Can used special variables like: %{oper_mode}
=item B<--warning-*> B<--critical-*>
Thresholds.
Can be: 'av-update' (s), 'threat-update' (s).
Can be: 'av-update' (s), 'threat-update' (s),
'sessions-traffic' (b/s), 'sessions-total-active'.
=back