enh(stormshield/snmp): add memory-detailed mode (#3070)
This commit is contained in:
parent
33724ba2b2
commit
dab38c2388
|
@ -32,6 +32,7 @@ sub set_counters {
|
||||||
$self->{maps_counters_type} = [
|
$self->{maps_counters_type} = [
|
||||||
{ name => 'global', type => 0 },
|
{ name => 'global', type => 0 },
|
||||||
];
|
];
|
||||||
|
|
||||||
$self->{maps_counters}->{global} = [
|
$self->{maps_counters}->{global} = [
|
||||||
{ label => 'udp', set => {
|
{ label => 'udp', set => {
|
||||||
key_values => [ { name => 'udp', per_second => 1 } ],
|
key_values => [ { name => 'udp', per_second => 1 } ],
|
||||||
|
@ -65,16 +66,20 @@ sub new {
|
||||||
|
|
||||||
sub manage_selection {
|
sub manage_selection {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
$self->{cache_name} = "fw_stormshield_" . $options{snmp}->get_hostname() . '_' . $options{snmp}->get_port() . '_' . $self->{mode} . '_' . md5_hex('all');
|
|
||||||
|
$self->{cache_name} = 'fw_stormshield_' . $options{snmp}->get_hostname() . '_' . $options{snmp}->get_port() . '_' . $self->{mode} . '_' . md5_hex('all');
|
||||||
|
|
||||||
my $oid_ntqASQStatsStatefulUdpConn = '.1.3.6.1.4.1.11256.1.12.1.33.0';
|
my $oid_ntqASQStatsStatefulUdpConn = '.1.3.6.1.4.1.11256.1.12.1.33.0';
|
||||||
my $oid_ntqASQStatsStatefulTcpConn = '.1.3.6.1.4.1.11256.1.12.1.23.0';
|
my $oid_ntqASQStatsStatefulTcpConn = '.1.3.6.1.4.1.11256.1.12.1.23.0';
|
||||||
|
|
||||||
my $result = $options{snmp}->get_leef(oids => [ $oid_ntqASQStatsStatefulUdpConn, $oid_ntqASQStatsStatefulTcpConn ],
|
my $result = $options{snmp}->get_leef(
|
||||||
nothing_quit => 1);
|
oids => [ $oid_ntqASQStatsStatefulUdpConn, $oid_ntqASQStatsStatefulTcpConn ],
|
||||||
|
nothing_quit => 1
|
||||||
|
);
|
||||||
|
|
||||||
$self->{global} = {
|
$self->{global} = {
|
||||||
udp => $result->{$oid_ntqASQStatsStatefulUdpConn},
|
udp => $result->{$oid_ntqASQStatsStatefulUdpConn},
|
||||||
tcp => $result->{$oid_ntqASQStatsStatefulTcpConn},
|
tcp => $result->{$oid_ntqASQStatsStatefulTcpConn}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,9 +29,11 @@ use centreon::plugins::templates::catalog_functions qw(catalog_status_threshold)
|
||||||
sub custom_node_perfdata {
|
sub custom_node_perfdata {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
$self->{output}->perfdata_add(label => 'dead_nodes',
|
$self->{output}->perfdata_add(
|
||||||
value => sprintf("%d", $self->{result_values}->{dead_nodes}),
|
label => 'dead_nodes',
|
||||||
min => 0, max => $self->{result_values}->{total_nodes});
|
value => sprintf("%d", $self->{result_values}->{dead_nodes}),
|
||||||
|
min => 0, max => $self->{result_values}->{total_nodes}
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub custom_node_threshold {
|
sub custom_node_threshold {
|
||||||
|
@ -64,8 +66,7 @@ sub custom_node_calc {
|
||||||
sub custom_state_output {
|
sub custom_state_output {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
my $msg = sprintf("state is '%s' [role: %s]", $self->{result_values}->{state}, $self->{result_values}->{role});
|
return sprintf("state is '%s' [role: %s]", $self->{result_values}->{state}, $self->{result_values}->{role});
|
||||||
return $msg;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
sub custom_state_calc {
|
sub custom_state_calc {
|
||||||
|
@ -77,12 +78,18 @@ sub custom_state_calc {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub prefix_node_output {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
return "Node '" . $options{instance_value}->{display} . "' ";
|
||||||
|
}
|
||||||
|
|
||||||
sub set_counters {
|
sub set_counters {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
$self->{maps_counters_type} = [
|
$self->{maps_counters_type} = [
|
||||||
{ name => 'global', type => 0 },
|
{ name => 'global', type => 0 },
|
||||||
{ name => 'nodes', type => 1, cb_prefix_output => 'prefix_node_output', message_multiple => 'All HA nodes are OK' },
|
{ name => 'nodes', type => 1, cb_prefix_output => 'prefix_node_output', message_multiple => 'All HA nodes are OK' }
|
||||||
];
|
];
|
||||||
|
|
||||||
$self->{maps_counters}->{global} = [
|
$self->{maps_counters}->{global} = [
|
||||||
|
@ -91,49 +98,44 @@ sub set_counters {
|
||||||
closure_custom_calc => $self->can('custom_node_calc'),
|
closure_custom_calc => $self->can('custom_node_calc'),
|
||||||
closure_custom_output => $self->can('custom_node_output'),
|
closure_custom_output => $self->can('custom_node_output'),
|
||||||
closure_custom_threshold_check => $self->can('custom_node_threshold'),
|
closure_custom_threshold_check => $self->can('custom_node_threshold'),
|
||||||
closure_custom_perfdata => $self->can('custom_node_perfdata'),
|
closure_custom_perfdata => $self->can('custom_node_perfdata')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
$self->{maps_counters}->{nodes} = [
|
$self->{maps_counters}->{nodes} = [
|
||||||
{ label => 'state', threshold => 0, set => {
|
{ label => 'state', threshold => 0, set => {
|
||||||
key_values => [ { name => 'ntqOnline' }, { name => 'ntqHALicence' }, { name => 'display' } ],
|
key_values => [ { name => 'ntqOnline' }, { name => 'ntqHALicence' }, { name => 'display' } ],
|
||||||
closure_custom_calc => $self->can('custom_state_calc'),
|
closure_custom_calc => $self->can('custom_state_calc'),
|
||||||
closure_custom_output => $self->can('custom_state_output'),
|
closure_custom_output => $self->can('custom_state_output'),
|
||||||
closure_custom_perfdata => sub { return 0; },
|
closure_custom_perfdata => sub { return 0; },
|
||||||
closure_custom_threshold_check => \&catalog_status_threshold,
|
closure_custom_threshold_check => \&catalog_status_threshold
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ label => 'health', set => {
|
{ label => 'health', set => {
|
||||||
key_values => [ { name => 'ntqHAQuality' }, { name => 'display' } ],
|
key_values => [ { name => 'ntqHAQuality' }, { name => 'display' } ],
|
||||||
output_template => 'health: %s%%',
|
output_template => 'health: %s%%',
|
||||||
perfdatas => [
|
perfdatas => [
|
||||||
{ label => 'health', value => 'ntqHAQuality', template => '%d', min => 0, max => 100,
|
{ label => 'health', template => '%d', min => 0, max => 100,
|
||||||
unit => '%', label_extra_instance => 1, instance_use => 'display' },
|
unit => '%', label_extra_instance => 1, instance_use => 'display' }
|
||||||
],
|
]
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
sub prefix_node_output {
|
|
||||||
my ($self, %options) = @_;
|
|
||||||
|
|
||||||
return "Node '" . $options{instance_value}->{display} . "' ";
|
|
||||||
}
|
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ($class, %options) = @_;
|
my ($class, %options) = @_;
|
||||||
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
|
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
|
||||||
bless $self, $class;
|
bless $self, $class;
|
||||||
|
|
||||||
$options{options}->add_options(arguments =>
|
$options{options}->add_options(arguments => {
|
||||||
{
|
'filter-node:s' => { name => 'filter_node' },
|
||||||
"filter-node:s" => { name => 'filter_node' },
|
'percent' => { name => 'percent' },
|
||||||
"percent" => { name => 'percent' },
|
'warning-state:s' => { name => 'warning_state', default => '' },
|
||||||
"warning-state:s" => { name => 'warning_state', default => '' },
|
'critical-state:s' => { name => 'critical_state', default => '%{state} =~ /offline/i' }
|
||||||
"critical-state:s" => { name => 'critical_state', default => '%{state} =~ /offline/i' },
|
});
|
||||||
});
|
|
||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -163,12 +165,13 @@ sub manage_selection {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
my $snmp_result = $options{snmp}->get_leef(oids => [ $oid_ntqNbNode, $oid_ntqNbDeadNode ], nothing_quit => 1);
|
my $snmp_result = $options{snmp}->get_leef(oids => [ $oid_ntqNbNode, $oid_ntqNbDeadNode ], nothing_quit => 1);
|
||||||
|
|
||||||
my $prct_dead = $snmp_result->{$oid_ntqNbDeadNode} * 100 / $snmp_result->{$oid_ntqNbNode};
|
|
||||||
|
|
||||||
$self->{global} = { dead_nodes => $snmp_result->{$oid_ntqNbDeadNode},
|
my $prct_dead = $snmp_result->{$oid_ntqNbDeadNode} * 100 / $snmp_result->{$oid_ntqNbNode};
|
||||||
total_nodes => $snmp_result->{$oid_ntqNbNode},
|
$self->{global} = {
|
||||||
prct_dead => $prct_dead };
|
dead_nodes => $snmp_result->{$oid_ntqNbDeadNode},
|
||||||
|
total_nodes => $snmp_result->{$oid_ntqNbNode},
|
||||||
|
prct_dead => $prct_dead
|
||||||
|
};
|
||||||
|
|
||||||
$snmp_result = $options{snmp}->get_table(oid => $oid_ntqFwSerial, nothing_quit => 1);
|
$snmp_result = $options{snmp}->get_table(oid => $oid_ntqFwSerial, nothing_quit => 1);
|
||||||
$self->{nodes} = {};
|
$self->{nodes} = {};
|
||||||
|
@ -196,7 +199,7 @@ sub manage_selection {
|
||||||
|
|
||||||
foreach (keys %{$self->{nodes}}) {
|
foreach (keys %{$self->{nodes}}) {
|
||||||
my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $_);
|
my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $_);
|
||||||
|
|
||||||
foreach my $name (keys %$mapping) {
|
foreach my $name (keys %$mapping) {
|
||||||
$self->{nodes}->{$_}->{$name} = $result->{$name};
|
$self->{nodes}->{$_}->{$name} = $result->{$name};
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,175 @@
|
||||||
|
#
|
||||||
|
# Copyright 2021 Centreon (http://www.centreon.com/)
|
||||||
|
#
|
||||||
|
# Centreon is a full-fledged industry-strength solution that meets
|
||||||
|
# the needs in IT infrastructure and application monitoring for
|
||||||
|
# service performance.
|
||||||
|
#
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
# you may not use this file except in compliance with the License.
|
||||||
|
# You may obtain a copy of the License at
|
||||||
|
#
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
#
|
||||||
|
# Unless required by applicable law or agreed to in writing, software
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
# See the License for the specific language governing permissions and
|
||||||
|
# limitations under the License.
|
||||||
|
#
|
||||||
|
|
||||||
|
package network::stormshield::snmp::mode::memorydetailed;
|
||||||
|
|
||||||
|
use base qw(centreon::plugins::templates::counter);
|
||||||
|
|
||||||
|
use strict;
|
||||||
|
use warnings;
|
||||||
|
|
||||||
|
sub prefix_memory_output {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
return 'Memory usage ';
|
||||||
|
}
|
||||||
|
|
||||||
|
sub set_counters {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
$self->{maps_counters_type} = [
|
||||||
|
{ name => 'global', type => 0, cb_prefix_output => 'prefix_memory_output', skipped_code => { -10 => 1 } }
|
||||||
|
];
|
||||||
|
|
||||||
|
$self->{maps_counters}->{global} = [
|
||||||
|
{ label => 'total', nlabel => 'memory.usage.percentage', set => {
|
||||||
|
key_values => [ { name => 'total' } ],
|
||||||
|
output_template => 'total: %.2f %%',
|
||||||
|
perfdatas => [
|
||||||
|
{ template => '%.2f', min => 0, max => 100, unit => '%' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ label => 'host', nlabel => 'memory.protected_host.percentage', set => {
|
||||||
|
key_values => [ { name => 'host' } ],
|
||||||
|
output_template => 'protected host: %.2f %%',
|
||||||
|
perfdatas => [
|
||||||
|
{ template => '%.2f', min => 0, max => 100, unit => '%' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ label => 'frag', nlabel => 'memory.fragmented.percentage', set => {
|
||||||
|
key_values => [ { name => 'frag' } ],
|
||||||
|
output_template => 'fragmented: %.2f %%',
|
||||||
|
perfdatas => [
|
||||||
|
{ template => '%.2f', min => 0, max => 100, unit => '%' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ label => 'conn', nlabel => 'memory.connections.percentage', set => {
|
||||||
|
key_values => [ { name => 'conn' } ],
|
||||||
|
output_template => 'connections: %.2f %%',
|
||||||
|
perfdatas => [
|
||||||
|
{ template => '%.2f', min => 0, max => 100, unit => '%' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ label => 'icmp', nlabel => 'memory.icmp.percentage', set => {
|
||||||
|
key_values => [ { name => 'icmp' } ],
|
||||||
|
output_template => 'icmp: %.2f %%',
|
||||||
|
perfdatas => [
|
||||||
|
{ template => '%.2f', min => 0, max => 100, unit => '%' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ label => 'dtrack', nlabel => 'memory.data_tracking.percentage', set => {
|
||||||
|
key_values => [ { name => 'dtrack' } ],
|
||||||
|
output_template => 'data tracking: %.2f %%',
|
||||||
|
perfdatas => [
|
||||||
|
{ template => '%.2f', min => 0, max => 100, unit => '%' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ label => 'dyn', nlabel => 'memory.dynamic.percentage', set => {
|
||||||
|
key_values => [ { name => 'dyn' } ],
|
||||||
|
output_template => 'dynamic: %.2f %%',
|
||||||
|
perfdatas => [
|
||||||
|
{ template => '%.2f', min => 0, max => 100, unit => '%' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{ label => 'etherstate', nlabel => 'memory.ether_state.percentage', set => {
|
||||||
|
key_values => [ { name => 'ether_state' } ],
|
||||||
|
output_template => 'ether state: %.2f %%',
|
||||||
|
perfdatas => [
|
||||||
|
{ template => '%.2f', min => 0, max => 100, unit => '%' }
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
];
|
||||||
|
}
|
||||||
|
|
||||||
|
sub new {
|
||||||
|
my ($class, %options) = @_;
|
||||||
|
my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1);
|
||||||
|
bless $self, $class;
|
||||||
|
|
||||||
|
$options{options}->add_options(arguments => {});
|
||||||
|
|
||||||
|
return $self;
|
||||||
|
}
|
||||||
|
|
||||||
|
sub manage_selection {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
my $oid_snsMem = '.1.3.6.1.4.1.11256.1.10.3.0';
|
||||||
|
my $snmp_result = $options{snmp}->get_leef(
|
||||||
|
oids => [ $oid_snsMem ],
|
||||||
|
nothing_quit => 1
|
||||||
|
);
|
||||||
|
|
||||||
|
# host,frag,icmp,conn,dtrack,dyn
|
||||||
|
# host,frag,icmp,conn,ether_state,dtrack,dyn
|
||||||
|
|
||||||
|
my @values = split(/,/, $snmp_result->{$oid_snsMem});
|
||||||
|
my $fields = scalar(@values);
|
||||||
|
if ($fields == 7) {
|
||||||
|
$self->{global} = {
|
||||||
|
total => $values[0] + $values[1] + $values[2] + $values[3] + $values[4] + $values[5] + $values[6],
|
||||||
|
host => $values[0],
|
||||||
|
frag => $values[1],
|
||||||
|
icmp => $values[2],
|
||||||
|
conn => $values[3],
|
||||||
|
ether_state => $values[4],
|
||||||
|
dtrack => $values[5],
|
||||||
|
dyn => $values[6]
|
||||||
|
};
|
||||||
|
} elsif ($fields == 6) {
|
||||||
|
$self->{global} = {
|
||||||
|
total => $values[0] + $values[1] + $values[2] + $values[3] + $values[4] + $values[5],
|
||||||
|
host => $values[0],
|
||||||
|
frag => $values[1],
|
||||||
|
icmp => $values[2],
|
||||||
|
conn => $values[3],
|
||||||
|
dtrack => $values[4],
|
||||||
|
dyn => $values[5]
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
1;
|
||||||
|
|
||||||
|
__END__
|
||||||
|
|
||||||
|
=head1 MODE
|
||||||
|
|
||||||
|
Check memory detailed.
|
||||||
|
|
||||||
|
=over 8
|
||||||
|
|
||||||
|
=item B<--warning-*> B<--critical-*>
|
||||||
|
|
||||||
|
Thresholds.
|
||||||
|
Can be: 'total', 'host', 'frag', 'conn', 'icmp',
|
||||||
|
'dtrack', 'dyn', 'etherstate'.
|
||||||
|
|
||||||
|
=back
|
||||||
|
|
||||||
|
=cut
|
|
@ -52,7 +52,7 @@ sub set_counters {
|
||||||
closure_custom_calc => $self->can('custom_status_calc'),
|
closure_custom_calc => $self->can('custom_status_calc'),
|
||||||
output_template => 'status: %s', output_error_template => 'Status : %s',
|
output_template => 'status: %s', output_error_template => 'Status : %s',
|
||||||
closure_custom_perfdata => sub { return 0; },
|
closure_custom_perfdata => sub { return 0; },
|
||||||
closure_custom_threshold_check => $self->can('custom_threshold_output'),
|
closure_custom_threshold_check => $self->can('custom_threshold_output')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ label => 'traffic', nlabel => 'vpn.traffic.bitspersecond', set => {
|
{ label => 'traffic', nlabel => 'vpn.traffic.bitspersecond', set => {
|
||||||
|
@ -61,16 +61,16 @@ sub set_counters {
|
||||||
output_change_bytes => 2,
|
output_change_bytes => 2,
|
||||||
perfdatas => [
|
perfdatas => [
|
||||||
{ label => 'traffic', template => '%s',
|
{ label => 'traffic', template => '%s',
|
||||||
unit => 'b/s', min => 0, label_extra_instance => 1, cast_int => 1, instance_use => 'num' },
|
unit => 'b/s', min => 0, label_extra_instance => 1, cast_int => 1, instance_use => 'num' }
|
||||||
],
|
]
|
||||||
}
|
}
|
||||||
},
|
}
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
sub prefix_vpn_output {
|
sub prefix_vpn_output {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
return "VPN '$options{instance_value}->{num}/$options{instance_value}->{ntqVPNIPSrc}/$options{instance_value}->{ntqVPNIPDst}' ";
|
return "VPN '$options{instance_value}->{num}/$options{instance_value}->{ntqVPNIPSrc}/$options{instance_value}->{ntqVPNIPDst}' ";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -79,8 +79,8 @@ my $thresholds = {
|
||||||
['larval', 'WARNING'],
|
['larval', 'WARNING'],
|
||||||
['mature', 'OK'],
|
['mature', 'OK'],
|
||||||
['dying', 'CRITICAL'],
|
['dying', 'CRITICAL'],
|
||||||
['dead', 'CRITICAL'],
|
['dead', 'CRITICAL']
|
||||||
],
|
]
|
||||||
};
|
};
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
|
|
|
@ -31,19 +31,20 @@ sub new {
|
||||||
|
|
||||||
$self->{version} = '1.0';
|
$self->{version} = '1.0';
|
||||||
$self->{modes} = {
|
$self->{modes} = {
|
||||||
'cpu' => 'snmp_standard::mode::cpu',
|
'cpu' => 'snmp_standard::mode::cpu',
|
||||||
'cpu-detailed' => 'snmp_standard::mode::cpudetailed',
|
'cpu-detailed' => 'snmp_standard::mode::cpudetailed',
|
||||||
'connections' => 'network::stormshield::snmp::mode::connections',
|
'connections' => 'network::stormshield::snmp::mode::connections',
|
||||||
'interfaces' => 'snmp_standard::mode::interfaces',
|
'interfaces' => 'snmp_standard::mode::interfaces',
|
||||||
'list-interfaces' => 'snmp_standard::mode::listinterfaces',
|
'list-interfaces' => 'snmp_standard::mode::listinterfaces',
|
||||||
'load' => 'snmp_standard::mode::loadaverage',
|
'load' => 'snmp_standard::mode::loadaverage',
|
||||||
'ha-nodes' => 'network::stormshield::snmp::mode::hanodes',
|
'ha-nodes' => 'network::stormshield::snmp::mode::hanodes',
|
||||||
'health' => 'network::stormshield::snmp::mode::health',
|
'health' => 'network::stormshield::snmp::mode::health',
|
||||||
'memory' => 'os::freebsd::snmp::mode::memory',
|
'memory' => 'os::freebsd::snmp::mode::memory',
|
||||||
'qos' => 'network::stormshield::snmp::mode::qos',
|
'memory-detailed' => 'network::stormshield::snmp::mode::memorydetailed',
|
||||||
'storage' => 'snmp_standard::mode::storage',
|
'qos' => 'network::stormshield::snmp::mode::qos',
|
||||||
'swap' => 'snmp_standard::mode::swap',
|
'storage' => 'snmp_standard::mode::storage',
|
||||||
'vpn-status' => 'network::stormshield::snmp::mode::vpnstatus'
|
'swap' => 'snmp_standard::mode::swap',
|
||||||
|
'vpn-status' => 'network::stormshield::snmp::mode::vpnstatus'
|
||||||
};
|
};
|
||||||
|
|
||||||
return $self;
|
return $self;
|
||||||
|
|
Loading…
Reference in New Issue