mirror of
https://github.com/centreon/centreon-plugins.git
synced 2025-07-27 23:54:18 +02:00
(plugin) network::alcatel::oxe::snmp - fix trunks (#4098)
This commit is contained in:
parent
9a7d9f9018
commit
d96186aca0
@ -29,7 +29,7 @@ use centreon::plugins::templates::catalog_functions qw(catalog_status_threshold_
|
|||||||
sub custom_status_output {
|
sub custom_status_output {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
return ' status: ' . $self->{result_values}->{cluster_status};
|
return 'status: ' . $self->{result_values}->{trunkstatus};
|
||||||
}
|
}
|
||||||
|
|
||||||
sub custom_usage_perfdata {
|
sub custom_usage_perfdata {
|
||||||
@ -37,7 +37,7 @@ sub custom_usage_perfdata {
|
|||||||
|
|
||||||
$self->{output}->perfdata_add(
|
$self->{output}->perfdata_add(
|
||||||
nlabel => $self->{nlabel},
|
nlabel => $self->{nlabel},
|
||||||
instances => $self->{result_values}->{display},
|
instances => $self->{result_values}->{name},
|
||||||
value => $self->{result_values}->{used},
|
value => $self->{result_values}->{used},
|
||||||
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, total => $self->{result_values}->{total}, cast_int => 1),
|
warning => $self->{perfdata}->get_perfdata_for_output(label => 'warning-' . $self->{thlabel}, total => $self->{result_values}->{total}, cast_int => 1),
|
||||||
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{thlabel}, total => $self->{result_values}->{total}, cast_int => 1),
|
critical => $self->{perfdata}->get_perfdata_for_output(label => 'critical-' . $self->{thlabel}, total => $self->{result_values}->{total}, cast_int => 1),
|
||||||
@ -61,22 +61,19 @@ sub custom_usage_threshold {
|
|||||||
sub custom_usage_output {
|
sub custom_usage_output {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
my $msg = sprintf("Total: %s Used: %s (%.2f%%) Free: %s (%.2f%%)",
|
return sprintf(
|
||||||
|
"channels usage total: %s used: %s (%.2f%%) free: %s (%.2f%%)",
|
||||||
$self->{result_values}->{total},
|
$self->{result_values}->{total},
|
||||||
$self->{result_values}->{used}, $self->{result_values}->{prct_used},
|
$self->{result_values}->{used}, $self->{result_values}->{prct_used},
|
||||||
$self->{result_values}->{free}, $self->{result_values}->{prct_free});
|
$self->{result_values}->{free}, $self->{result_values}->{prct_free}
|
||||||
return $msg;
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
sub custom_trunk_usage_calc {
|
sub custom_trunk_usage_calc {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
if ($options{new_datas}->{$self->{instance} . '_cacAllowed'} <= 0) {
|
$self->{result_values}->{name} = $options{new_datas}->{$self->{instance} . '_name'};
|
||||||
$self->{error_msg} = "skipped (no allowed)";
|
$self->{result_values}->{free} = $options{new_datas}->{$self->{instance} . '_freechan'};
|
||||||
return -2;
|
|
||||||
}
|
|
||||||
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
|
|
||||||
$self->{result_values}->{free} = $options{new_datas}->{$self->{instance} . 'freechan'};
|
|
||||||
$self->{result_values}->{used} = $options{new_datas}->{$self->{instance} . '_busychan'};
|
$self->{result_values}->{used} = $options{new_datas}->{$self->{instance} . '_busychan'};
|
||||||
$self->{result_values}->{total} = $self->{result_values}->{free} + $self->{result_values}->{used};
|
$self->{result_values}->{total} = $self->{result_values}->{free} + $self->{result_values}->{used};
|
||||||
$self->{result_values}->{prct_free} = $self->{result_values}->{free} * 100 / $self->{result_values}->{total};
|
$self->{result_values}->{prct_free} = $self->{result_values}->{free} * 100 / $self->{result_values}->{total};
|
||||||
@ -84,6 +81,12 @@ sub custom_trunk_usage_calc {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
sub prefix_trunk_output {
|
||||||
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
|
return "Trunk '" . $options{instance_value}->{name} . "' ";
|
||||||
|
}
|
||||||
|
|
||||||
sub set_counters {
|
sub set_counters {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
@ -99,17 +102,17 @@ sub set_counters {
|
|||||||
closure_custom_threshold_check => \&catalog_status_threshold_ng
|
closure_custom_threshold_check => \&catalog_status_threshold_ng
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ label => 'channel-usage', nlabel => 'trunk.channels.current.count', set => {
|
{ label => 'channel-usage', nlabel => 'trunk.channels.usage.count', set => {
|
||||||
key_values => [ { name => 'busychan' }, { name => 'freechan' }, { name => 'display '} ],
|
key_values => [ { name => 'busychan' }, { name => 'freechan' }, { name => 'name' } ],
|
||||||
closure_custom_calc => $self->can('custom_trunk_usage_calc'),
|
closure_custom_calc => $self->can('custom_trunk_usage_calc'),
|
||||||
closure_custom_output => $self->can('custom_usage_output'),
|
closure_custom_output => $self->can('custom_usage_output'),
|
||||||
closure_custom_perfdata => $self->can('custom_usage_perfdata'),
|
closure_custom_perfdata => $self->can('custom_usage_perfdata'),
|
||||||
closure_custom_threshold_check => $self->can('custom_usage_threshold'),
|
closure_custom_threshold_check => $self->can('custom_usage_threshold')
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{ label => 'channel-outofservice', nlabel => 'trunk.channels.outofservice.count', set => {
|
{ label => 'channel-outofservice', nlabel => 'trunk.channels.outofservice.count', set => {
|
||||||
key_values => [ { name => 'ooschan' } ],
|
key_values => [ { name => 'ooschan' } ],
|
||||||
output_template => 'channel out of service %s',
|
output_template => 'channels out of service %s',
|
||||||
perfdatas => [
|
perfdatas => [
|
||||||
{ template => '%s', min => 0, label_extra_instance => 1 }
|
{ template => '%s', min => 0, label_extra_instance => 1 }
|
||||||
]
|
]
|
||||||
@ -118,12 +121,6 @@ sub set_counters {
|
|||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
sub prefix_trunk_output {
|
|
||||||
my ($self, %options) = @_;
|
|
||||||
|
|
||||||
return "Trunk '" . $options{instance_value}->{display} . "' ";
|
|
||||||
}
|
|
||||||
|
|
||||||
sub new {
|
sub new {
|
||||||
my ($class, %options) = @_;
|
my ($class, %options) = @_;
|
||||||
my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1);
|
my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1);
|
||||||
@ -136,29 +133,26 @@ sub new {
|
|||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
my $map_trunk_status = {
|
my $map_trunk_status = { 0 => 'OOS', 1 => 'INS' };
|
||||||
0 => 'OOS',
|
|
||||||
1 => 'INS'
|
|
||||||
};
|
|
||||||
|
|
||||||
my $mapping = {
|
my $mapping = {
|
||||||
trunkname => { oid => '1.3.6.1.4.1.637.64.4400.1.9.1.2' },
|
trunkname => { oid => '.1.3.6.1.4.1.637.64.4400.1.9.1.2' },
|
||||||
crystalno => { oid => '1.3.6.1.4.1.637.64.4400.1.9.1.3' }, # not used
|
crystalno => { oid => '.1.3.6.1.4.1.637.64.4400.1.9.1.3' }, # not used
|
||||||
couplerno => { oid => '1.3.6.1.4.1.637.64.4400.1.9.1.4' }, # not used
|
couplerno => { oid => '.1.3.6.1.4.1.637.64.4400.1.9.1.4' }, # not used
|
||||||
trunktype => { oid => '1.3.6.1.4.1.637.64.4400.1.9.1.5' }, # not used
|
trunktype => { oid => '.1.3.6.1.4.1.637.64.4400.1.9.1.5' }, # not used
|
||||||
nodepbx => { oid => '1.3.6.1.4.1.637.64.4400.1.9.1.6' }, # not used
|
nodepbx => { oid => '.1.3.6.1.4.1.637.64.4400.1.9.1.6' }, # not used
|
||||||
freechan => { oid => '1.3.6.1.4.1.637.64.4400.1.9.1.7' },
|
freechan => { oid => '.1.3.6.1.4.1.637.64.4400.1.9.1.7' },
|
||||||
busychan => { oid => '1.3.6.1.4.1.637.64.4400.1.9.1.8' },
|
busychan => { oid => '.1.3.6.1.4.1.637.64.4400.1.9.1.8' },
|
||||||
ooschan => { oid => '1.3.6.1.4.1.637.64.4400.1.9.1.9' },
|
ooschan => { oid => '.1.3.6.1.4.1.637.64.4400.1.9.1.9' },
|
||||||
trunkstatus => { oid => '1.3.6.1.4.1.637.64.4400.1.9.1.10', map => $map_trunk_status },
|
trunkstatus => { oid => '.1.3.6.1.4.1.637.64.4400.1.9.1.10', map => $map_trunk_status },
|
||||||
cumuloos => { oid => '1.3.6.1.4.1.637.64.4400.1.9.1.11' }, # not used
|
cumuloos => { oid => '.1.3.6.1.4.1.637.64.4400.1.9.1.11' }, # not used
|
||||||
cumuloverrun => { oid => '1.3.6.1.4.1.637.64.4400.1.9.1.12' }, # not used
|
cumuloverrun => { oid => '.1.3.6.1.4.1.637.64.4400.1.9.1.12' } # not used
|
||||||
};
|
};
|
||||||
|
|
||||||
sub manage_selection {
|
sub manage_selection {
|
||||||
my ($self, %options) = @_;
|
my ($self, %options) = @_;
|
||||||
|
|
||||||
my $oid_trunkEntry = '1.3.6.1.4.1.637.64.4400.1.9.1';
|
my $oid_trunkEntry = '.1.3.6.1.4.1.637.64.4400.1.9.1';
|
||||||
my $snmp_result = $options{snmp}->get_table(
|
my $snmp_result = $options{snmp}->get_table(
|
||||||
oid => $oid_trunkEntry,
|
oid => $oid_trunkEntry,
|
||||||
nothing_quit => 1
|
nothing_quit => 1
|
||||||
@ -169,14 +163,12 @@ sub manage_selection {
|
|||||||
next if ($oid !~ /^$mapping->{trunkname}->{oid}\.(\d+)/);
|
next if ($oid !~ /^$mapping->{trunkname}->{oid}\.(\d+)/);
|
||||||
my $instance = $1;
|
my $instance = $1;
|
||||||
my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $instance);
|
my $result = $options{snmp}->map_instance(mapping => $mapping, results => $snmp_result, instance => $instance);
|
||||||
if (defined($self->{option_results}->{filter_trunk}) && $self->{option_results}->{filter_trunk} ne '' &&
|
|
||||||
$result->{trunkname} !~ /$self->{option_results}->{filter_trunk}/) {
|
next if (defined($self->{option_results}->{filter_trunk}) && $self->{option_results}->{filter_trunk} ne '' &&
|
||||||
$self->{output}->output_add(long_msg => "skipping '" . $result->{trunkname} . "': no matching filter.", debug => 1);
|
$result->{trunkname} !~ /$self->{option_results}->{filter_trunk}/);
|
||||||
next;
|
|
||||||
}
|
|
||||||
|
|
||||||
$self->{trunk}->{ $result->{trunkname} } = {
|
$self->{trunk}->{ $result->{trunkname} } = {
|
||||||
display => $result->{trunkname},
|
name => $result->{trunkname},
|
||||||
%{$result}
|
%{$result}
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user