azure plugin fixes, paths break change (#1154)

* add proxyurl option, update cli installation process

* fix label and perfdata names

* fix label and perfdata names

* change paths to providers/services

* fix vm list resources mode path
This commit is contained in:
Colin Gagnaire 2018-09-27 15:10:48 +02:00 committed by GitHub
parent a196d33cac
commit ed2dd85ef4
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
39 changed files with 373 additions and 629 deletions

View File

@ -1,129 +0,0 @@
#
# Copyright 2018 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 cloud::azure::compute::mode::listresources;
use base qw(centreon::plugins::mode);
use strict;
use warnings;
sub new {
my ($class, %options) = @_;
my $self = $class->SUPER::new(package => __PACKAGE__, %options);
bless $self, $class;
$self->{version} = '1.0';
$options{options}->add_options(arguments =>
{
"resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type', default => 'virtualMachines' },
"location:s" => { name => 'location' },
"filter-name:s" => { name => 'filter_name' },
});
return $self;
}
sub check_options {
my ($self, %options) = @_;
$self->SUPER::init(%options);
}
sub manage_selection {
my ($self, %options) = @_;
$self->{resources} = $options{custom}->azure_list_resources(
namespace => 'Microsoft.Compute',
resource_type => $self->{option_results}->{resource_type},
location => $self->{option_results}->{location},
resource_group => $self->{option_results}->{resource_group}
);
}
sub run {
my ($self, %options) = @_;
$self->manage_selection(%options);
foreach my $resource (@{$self->{resources}}) {
next if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne ''
&& $resource->{name} !~ /$self->{option_results}->{filter_name}/);
$resource->{type} =~ s/Microsoft.Compute\///g;
$self->{output}->output_add(long_msg => sprintf("[name = %s][resourcegroup = %s][location = %s][id = %s][type = %s]",
$resource->{name}, $resource->{resourceGroup}, $resource->{location}, $resource->{id}, $resource->{type}));
}
$self->{output}->output_add(severity => 'OK',
short_msg => 'List resources:');
$self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1);
$self->{output}->exit();
}
sub disco_format {
my ($self, %options) = @_;
$self->{output}->add_disco_format(elements => ['name', 'resourcegroup', 'location', 'id', 'type']);
}
sub disco_show {
my ($self, %options) = @_;
$self->manage_selection(%options);
foreach my $resource (@{$self->{resources}}) {
$resource->{type} =~ s/Microsoft.Compute\///g;
$self->{output}->add_disco_entry(
name => $resource->{name},
resourcegroup => $resource->{resourceGroup},
location => $resource->{location},
id => $resource->{id},
type => $resource->{type},
);
}
}
1;
__END__
=head1 MODE
List compute resources.
=over 8
=item B<--resource-group>
Set resource group.
=item B<--resource-type>
Set resource type (Default: 'virtualMachines').
=item B<--location>
Set resource location.
=item B<--filter-name>
Filter resource name (Can be a regexp).
=back
=cut

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::compute::mode::cpu; package cloud::azure::compute::virtualmachine::mode::cpu;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -86,7 +86,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
"filter-metric:s" => { name => 'filter_metric' }, "filter-metric:s" => { name => 'filter_metric' },
}); });
@ -98,21 +97,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'virtualMachines';
$self->{az_resource_namespace} = 'Microsoft.Compute'; $self->{az_resource_namespace} = 'Microsoft.Compute';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Compute\/.*\/.*$/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Compute\/virtualMachines\/.*$/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -143,7 +142,7 @@ sub manage_selection {
my %metric_results; my %metric_results;
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
$resource_name = $1 if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Compute\/.*\/(.*)$/); $resource_name = $1 if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Compute\/virtualMachines\/(.*)$/);
($metric_results{$resource_name}, undef, undef) = $options{custom}->azure_get_metrics( ($metric_results{$resource_name}, undef, undef) = $options{custom}->azure_get_metrics(
resource => $resource, resource => $resource,
@ -181,19 +180,19 @@ __END__
=head1 MODE =head1 MODE
Check compute resources CPU metrics. Check virtual machine resources CPU metrics.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::compute::plugin --custommode=azcli --mode=cpu perl centreon_plugins.pl --plugin=cloud::azure::compute::virtualmachine::plugin --custommode=azcli --mode=cpu
--resource=MYSQLINSTANCE --resource-group=MYHOSTGROUP --resource-type=virtualMachines --resource=MYSQLINSTANCE --resource-group=MYHOSTGROUP --filter-metric='Credits' --aggregation='average'
--filter-metric='Credits' --aggregation='average' --critical-cpu-credits-remaining-average='10' --verbose --critical-cpu-credits-remaining-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::compute::plugin --custommode=azcli --mode=cpu perl centreon_plugins.pl --plugin=cloud::azure::compute::virtualmachine::plugin --custommode=azcli --mode=cpu
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Compute/virtualMachines/xxx' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Compute/virtualMachines/xxx'
--filter-metric='Credits' --aggregation='average' --critical-cpu-credits-remaining-average='10' --verbose --filter-metric='Credits' --aggregation='average' --critical-cpu-credits-remaining-average='10' --verbose
@ -209,10 +208,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'virtualMachines', 'xx').
=item B<--filter-metric> =item B<--filter-metric>
Filter metrics (Can be: 'CPU Credits Remaining', 'CPU Credits Consumed', Filter metrics (Can be: 'CPU Credits Remaining', 'CPU Credits Consumed',

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::compute::mode::diskio; package cloud::azure::compute::virtualmachine::mode::diskio;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -44,8 +44,6 @@ sub custom_metric_calc {
$self->{result_values}->{value} = $options{new_datas}->{$self->{instance} . '_' . $self->{result_values}->{metric_perf} . '_' . $self->{result_values}->{stat}}; $self->{result_values}->{value} = $options{new_datas}->{$self->{instance} . '_' . $self->{result_values}->{metric_perf} . '_' . $self->{result_values}->{stat}};
$self->{result_values}->{value_per_sec} = $self->{result_values}->{value} / $self->{result_values}->{timeframe}; $self->{result_values}->{value_per_sec} = $self->{result_values}->{value} / $self->{result_values}->{timeframe};
$self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'}; $self->{result_values}->{display} = $options{new_datas}->{$self->{instance} . '_display'};
$self->{result_values}->{metric_perf} =~ s/\//_/g;
$self->{result_values}->{metric_label} =~ s/\//-/g;
return 0; return 0;
} }
@ -140,7 +138,7 @@ sub set_counters {
my $metric_perf = lc($metric); my $metric_perf = lc($metric);
my $metric_label = lc($metric); my $metric_label = lc($metric);
$metric_perf =~ s/ /_/g; $metric_perf =~ s/ /_/g;
$metric_label =~ s/ /-/g; $metric_label =~ s/( |\/)/-/g;
my $entry = { label => $metric_label . '-' . $aggregation, set => { my $entry = { label => $metric_label . '-' . $aggregation, set => {
key_values => [ { name => $metric_perf . '_' . $aggregation }, { name => 'display' }, key_values => [ { name => $metric_perf . '_' . $aggregation }, { name => 'display' },
{ name => 'stat' }, { name => 'timeframe' } ], { name => 'stat' }, { name => 'timeframe' } ],
@ -167,7 +165,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
"filter-metric:s" => { name => 'filter_metric' }, "filter-metric:s" => { name => 'filter_metric' },
"per-sec" => { name => 'per_sec' }, "per-sec" => { name => 'per_sec' },
}); });
@ -180,21 +177,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'virtualMachines';
$self->{az_resource_namespace} = 'Microsoft.Compute'; $self->{az_resource_namespace} = 'Microsoft.Compute';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Compute\/.*\/.*$/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Compute\/virtualMachines\/.*$/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -267,19 +264,19 @@ __END__
=head1 MODE =head1 MODE
Check compute resources disk IO metrics. Check virtual machine resources disk IO metrics.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::compute::plugin --custommode=azcli --mode=diskio perl centreon_plugins.pl --plugin=cloud::azure::compute::virtualmachine::plugin --custommode=azcli --mode=diskio
--resource=MYSQLINSTANCE --resource-group=MYHOSTGROUP --resource-type=virtualMachines --resource=MYSQLINSTANCE --resource-group=MYHOSTGROUP --aggregation='total' --aggregation='average'
--aggregation='total' --aggregation='average' --critical-disk-write-bytes-total='10' --verbose --critical-disk-write-bytes-total='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::compute::plugin --custommode=azcli --mode=diskio perl centreon_plugins.pl --plugin=cloud::azure::compute::virtualmachine::plugin --custommode=azcli --mode=diskio
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Compute/virtualMachines/xxx' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Compute/virtualMachines/xxx'
--aggregation='total' --aggregation='average' --critical-disk-write-bytes-total='10' --verbose --aggregation='total' --aggregation='average' --critical-disk-write-bytes-total='10' --verbose
@ -295,10 +292,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'virtualMachines', 'xx').
=item B<--filter-metric> =item B<--filter-metric>
Filter metrics (Can be: 'Disk Read Bytes', 'Disk Write Bytes', Filter metrics (Can be: 'Disk Read Bytes', 'Disk Write Bytes',

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::compute::mode::listvms; package cloud::azure::compute::virtualmachine::mode::listresources;
use base qw(centreon::plugins::mode); use base qw(centreon::plugins::mode);

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::compute::mode::network; package cloud::azure::compute::virtualmachine::mode::network;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -124,7 +124,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
"filter-metric:s" => { name => 'filter_metric' }, "filter-metric:s" => { name => 'filter_metric' },
"per-sec" => { name => 'per_sec' }, "per-sec" => { name => 'per_sec' },
}); });
@ -137,21 +136,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'virtualMachines';
$self->{az_resource_namespace} = 'Microsoft.Compute'; $self->{az_resource_namespace} = 'Microsoft.Compute';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Compute\/.*\/.*$/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Compute\/virtualMachines\/.*$/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -184,7 +183,7 @@ sub manage_selection {
my %metric_results; my %metric_results;
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
$resource_name = $1 if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Compute\/.*\/(.*)$/); $resource_name = $1 if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Compute\/virtualMachines\/(.*)$/);
($metric_results{$resource_name}, undef, undef) = $options{custom}->azure_get_metrics( ($metric_results{$resource_name}, undef, undef) = $options{custom}->azure_get_metrics(
resource => $resource, resource => $resource,
@ -223,19 +222,18 @@ __END__
=head1 MODE =head1 MODE
Check compute resources network metrics. Check virtual machine resources network metrics.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::compute::plugin --custommode=azcli --mode=network perl centreon_plugins.pl --plugin=cloud::azure::compute::virtualmachine::plugin --custommode=azcli --mode=network
--resource=MYSQLINSTANCE --resource-group=MYHOSTGROUP --resource-type=virtualMachines --resource=MYSQLINSTANCE --resource-group=MYHOSTGROUP --aggregation='total' --critical-network-out-total='10' --verbose
--aggregation='total' --critical-network-out-total='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::compute::plugin --custommode=azcli --mode=network perl centreon_plugins.pl --plugin=cloud::azure::compute::virtualmachine::plugin --custommode=azcli --mode=network
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Compute/virtualMachines/xxx' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Compute/virtualMachines/xxx'
--aggregation='total' --critical-network-out-total='10' --verbose --aggregation='total' --critical-network-out-total='10' --verbose
@ -251,10 +249,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'virtualMachines', 'xx').
=item B<--filter-metric> =item B<--filter-metric>
Filter metrics (Can be: 'Network In', 'Network Out') (Can be a regexp). Filter metrics (Can be: 'Network In', 'Network Out') (Can be a regexp).

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::compute::mode::vmsizes; package cloud::azure::compute::virtualmachine::mode::vmsizes;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -184,7 +184,7 @@ __END__
=head1 MODE =head1 MODE
List virtual machines resource sizes. List virtual machine resources sizes.
=over 8 =over 8

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::compute::mode::vmsstate; package cloud::azure::compute::virtualmachine::mode::vmsstate;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -194,7 +194,7 @@ __END__
Check virtual machines status. Check virtual machines status.
Example: Example:
perl centreon_plugins.pl --plugin=cloud::azure::compute::plugin --custommode=azcli --mode=vms-state perl centreon_plugins.pl --plugin=cloud::azure::compute::virtualmachine::plugin --custommode=azcli --mode=vms-state
--filter-name='.*' --filter-counters='^total-running$' --critical-total-running='10' --verbose --filter-name='.*' --filter-counters='^total-running$' --critical-total-running='10' --verbose
=over 8 =over 8

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::compute::plugin; package cloud::azure::compute::virtualmachine::plugin;
use strict; use strict;
use warnings; use warnings;
@ -31,13 +31,12 @@ sub new {
$self->{version} = '0.1'; $self->{version} = '0.1';
%{ $self->{modes} } = ( %{ $self->{modes} } = (
'cpu' => 'cloud::azure::compute::mode::cpu', 'cpu' => 'cloud::azure::compute::virtualmachine::mode::cpu',
'diskio' => 'cloud::azure::compute::mode::diskio', 'diskio' => 'cloud::azure::compute::virtualmachine::mode::diskio',
'list-resources' => 'cloud::azure::compute::mode::listresources', 'list-resources' => 'cloud::azure::compute::virtualmachine::mode::listresources',
'list-vms' => 'cloud::azure::compute::mode::listvms', 'network' => 'cloud::azure::compute::virtualmachine::mode::network',
'network' => 'cloud::azure::compute::mode::network', 'vm-sizes' => 'cloud::azure::compute::virtualmachine::mode::vmsizes',
'vm-sizes' => 'cloud::azure::compute::mode::vmsizes', 'vms-state' => 'cloud::azure::compute::virtualmachine::mode::vmsstate',
'vms-state' => 'cloud::azure::compute::mode::vmsstate',
); );
$self->{custom_modes}{azcli} = 'cloud::azure::custom::azcli'; $self->{custom_modes}{azcli} = 'cloud::azure::custom::azcli';
@ -50,6 +49,6 @@ __END__
=head1 PLUGIN DESCRIPTION =head1 PLUGIN DESCRIPTION
Check Microsoft Azure compute provider. Check Microsoft Azure virtual machine.
=cut =cut

View File

@ -51,6 +51,7 @@ sub new {
"command:s" => { name => 'command', default => 'az' }, "command:s" => { name => 'command', default => 'az' },
"command-path:s" => { name => 'command_path' }, "command-path:s" => { name => 'command_path' },
"command-options:s" => { name => 'command_options', default => '' }, "command-options:s" => { name => 'command_options', default => '' },
"proxyurl:s" => { name => 'proxyurl' },
}); });
} }
$options{options}->add_help(package => __PACKAGE__, sections => 'AZCLI OPTIONS', once => 1); $options{options}->add_help(package => __PACKAGE__, sections => 'AZCLI OPTIONS', once => 1);
@ -86,6 +87,11 @@ sub set_defaults {
sub check_options { sub check_options {
my ($self, %options) = @_; my ($self, %options) = @_;
if (defined($self->{option_results}->{proxyurl}) && $self->{option_results}->{proxyurl} ne '') {
$ENV{HTTP_PROXY} = $self->{option_results}->{proxyurl};
$ENV{HTTPS_PROXY} = $self->{option_results}->{proxyurl};
}
if (defined($self->{option_results}->{aggregation})) { if (defined($self->{option_results}->{aggregation})) {
foreach my $aggregation (@{$self->{option_results}->{aggregation}}) { foreach my $aggregation (@{$self->{option_results}->{aggregation}}) {
if ($aggregation !~ /average|maximum|minimum|total/i) { if ($aggregation !~ /average|maximum|minimum|total/i) {
@ -386,10 +392,12 @@ Microsoft Azure CLI
Microsoft Azure CLI 2.0 Microsoft Azure CLI 2.0
To install the Azure CLI 2.0 in a CentOS/RedHat environment : To install the Azure CLI 2.0 in a CentOS/RedHat environment :
# sudo rpm --import https://packages.microsoft.com/keys/microsoft.asc (As root)
# sudo sh -c 'echo -e "[azure-cli]\nname=Azure CLI\nbaseurl=https://packages.microsoft.com/yumrepos/azure-cli\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/azure-cli.repo' # rpm --import https://packages.microsoft.com/keys/microsoft.asc
# sh -c 'echo -e "[azure-cli]\nname=Azure CLI\nbaseurl=https://packages.microsoft.com/yumrepos/azure-cli\nenabled=1\ngpgcheck=1\ngpgkey=https://packages.microsoft.com/keys/microsoft.asc" > /etc/yum.repos.d/azure-cli.repo'
# yum install azure-cli # yum install azure-cli
# az login -u <username> -p <password> (As centreon-engine)
# az login
Go to https://aka.ms/devicelogin and enter the code given by the last command. Go to https://aka.ms/devicelogin and enter the code given by the last command.
For futher informations, visit https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest. For futher informations, visit https://docs.microsoft.com/en-us/cli/azure/install-azure-cli?view=azure-cli-latest.
@ -436,6 +444,10 @@ Command path (Default: none).
Command options (Default: none). Command options (Default: none).
=item B<--proxyurl>
Proxy URL if any
=back =back
=head1 DESCRIPTION =head1 DESCRIPTION

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::monitor::mode::getmetrics; package cloud::azure::management::monitor::mode::getmetrics;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -188,11 +188,11 @@ __END__
Check Azure metrics. Check Azure metrics.
Examples: Examples:
perl centreon_plugins.pl --plugin=cloud::azure::monitor::plugin --custommode=azcli --mode=get-metrics perl centreon_plugins.pl --plugin=cloud::azure::management::monitor::plugin --custommode=azcli --mode=get-metrics
--resource=MYSQLINSTANCE --resource-group=MYHOSTGROUP --resource-namespace='Microsoft.Compute' --resource-type='virtualMachines' --resource=MYSQLINSTANCE --resource-group=MYHOSTGROUP --resource-namespace='Microsoft.Compute' --resource-type='virtualMachines'
--metric='Percentage CPU' --aggregation=average -interval=PT1M --timeframe=600 --warning-metric= --critical-metric= --metric='Percentage CPU' --aggregation=average -interval=PT1M --timeframe=600 --warning-metric= --critical-metric=
perl centreon_plugins.pl --plugin=cloud::azure::monitor::plugin --custommode=azcli --mode=get-metrics perl centreon_plugins.pl --plugin=cloud::azure::management::monitor::plugin --custommode=azcli --mode=get-metrics
--resource='/subscriptions/d29fe431/resourceGroups/MYHOSTGROUP/providers/Microsoft.Compute/virtualMachines/MYSQLINSTANCE' --resource='/subscriptions/d29fe431/resourceGroups/MYHOSTGROUP/providers/Microsoft.Compute/virtualMachines/MYSQLINSTANCE'
--metric='Percentage CPU' --aggregation=average -interval=PT1M --timeframe=600 --warning-metric= --critical-metric= --metric='Percentage CPU' --aggregation=average -interval=PT1M --timeframe=600 --warning-metric= --critical-metric=

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::monitor::plugin; package cloud::azure::management::monitor::plugin;
use strict; use strict;
use warnings; use warnings;
@ -31,7 +31,7 @@ sub new {
$self->{version} = '1.0'; $self->{version} = '1.0';
%{$self->{modes}} = ( %{$self->{modes}} = (
'get-metrics' => 'cloud::azure::monitor::mode::getmetrics', 'get-metrics' => 'cloud::azure::management::monitor::mode::getmetrics',
); );
$self->{custom_modes}{azcli} = 'cloud::azure::custom::azcli'; $self->{custom_modes}{azcli} = 'cloud::azure::custom::azcli';
@ -45,6 +45,6 @@ __END__
=head1 PLUGIN DESCRIPTION =head1 PLUGIN DESCRIPTION
Check Microsoft Azure using API. Check Microsoft Azure monitor service using API.
=cut =cut

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::resources::mode::deploymentsstatus; package cloud::azure::management::resource::mode::deploymentsstatus;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -184,7 +184,7 @@ sub manage_selection {
} }
if (scalar(keys %{$self->{deployments}}) <= 0) { if (scalar(keys %{$self->{deployments}}) <= 0) {
$self->{output}->add_option_msg(short_msg => "No virtual machines found."); $self->{output}->add_option_msg(short_msg => "No deployments found.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
} }
@ -198,7 +198,7 @@ __END__
Check deployments status. Check deployments status.
Example: Example:
perl centreon_plugins.pl --plugin=cloud::azure::compute::plugin --custommode=azcli --mode=deployments-status perl centreon_plugins.pl --plugin=cloud::azure::management::resource::plugin --custommode=azcli --mode=deployments-status
--filter-counters='^total-failed$' --critical-total-failed='1' --verbose --filter-counters='^total-failed$' --critical-total-failed='1' --verbose
=over 8 =over 8

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::resources::mode::items; package cloud::azure::management::resource::mode::items;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -156,7 +156,7 @@ __END__
Check number of items in resource groups. Check number of items in resource groups.
Example: Example:
perl centreon_plugins.pl --plugin=cloud::azure::resources::plugin --custommode=azcli --mode=items perl centreon_plugins.pl --plugin=cloud::azure::management::resource::plugin --custommode=azcli --mode=items
--filter-name='.*' --critical-items='10' --verbose --filter-name='.*' --critical-items='10' --verbose
=over 8 =over 8

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::resources::mode::listgroups; package cloud::azure::management::resource::mode::listgroups;
use base qw(centreon::plugins::mode); use base qw(centreon::plugins::mode);

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::resources::mode::listresources; package cloud::azure::management::resource::mode::listresources;
use base qw(centreon::plugins::mode); use base qw(centreon::plugins::mode);

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::resources::plugin; package cloud::azure::management::resource::plugin;
use strict; use strict;
use warnings; use warnings;
@ -31,10 +31,10 @@ sub new {
$self->{version} = '0.1'; $self->{version} = '0.1';
%{ $self->{modes} } = ( %{ $self->{modes} } = (
'deployments-status' => 'cloud::azure::resources::mode::deploymentsstatus', 'deployments-status' => 'cloud::azure::management::resource::mode::deploymentsstatus',
'list-groups' => 'cloud::azure::resources::mode::listgroups', 'list-groups' => 'cloud::azure::management::resource::mode::listgroups',
'list-resources' => 'cloud::azure::resources::mode::listresources', 'list-resources' => 'cloud::azure::management::resource::mode::listresources',
'items' => 'cloud::azure::resources::mode::items', 'items' => 'cloud::azure::management::resource::mode::items',
); );
$self->{custom_modes}{azcli} = 'cloud::azure::custom::azcli'; $self->{custom_modes}{azcli} = 'cloud::azure::custom::azcli';
@ -47,6 +47,6 @@ __END__
=head1 PLUGIN DESCRIPTION =head1 PLUGIN DESCRIPTION
Check Microsoft Azure resources provider. Check Microsoft Azure resource manager.
=cut =cut

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::network::mode::listresources; package cloud::azure::network::networkinterface::mode::listresources;
use base qw(centreon::plugins::mode); use base qw(centreon::plugins::mode);
@ -34,7 +34,6 @@ sub new {
$options{options}->add_options(arguments => $options{options}->add_options(arguments =>
{ {
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type', default => 'networkInterfaces' },
"location:s" => { name => 'location' }, "location:s" => { name => 'location' },
"filter-name:s" => { name => 'filter_name' }, "filter-name:s" => { name => 'filter_name' },
}); });
@ -52,7 +51,7 @@ sub manage_selection {
$self->{resources} = $options{custom}->azure_list_resources( $self->{resources} = $options{custom}->azure_list_resources(
namespace => 'Microsoft.Network', namespace => 'Microsoft.Network',
resource_type => $self->{option_results}->{resource_type}, resource_type => 'networkInterfaces',
location => $self->{option_results}->{location}, location => $self->{option_results}->{location},
resource_group => $self->{option_results}->{resource_group} resource_group => $self->{option_results}->{resource_group}
); );
@ -65,13 +64,12 @@ sub run {
foreach my $resource (@{$self->{resources}}) { foreach my $resource (@{$self->{resources}}) {
next if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' next if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne ''
&& $resource->{name} !~ /$self->{option_results}->{filter_name}/); && $resource->{name} !~ /$self->{option_results}->{filter_name}/);
$resource->{type} =~ s/Microsoft.Network\///g; $self->{output}->output_add(long_msg => sprintf("[name = %s][resourcegroup = %s][location = %s][id = %s]",
$self->{output}->output_add(long_msg => sprintf("[name = %s][resourcegroup = %s][location = %s][id = %s][type = %s]", $resource->{name}, $resource->{resourceGroup}, $resource->{location}, $resource->{id}));
$resource->{name}, $resource->{resourceGroup}, $resource->{location}, $resource->{id}, $resource->{type}));
} }
$self->{output}->output_add(severity => 'OK', $self->{output}->output_add(severity => 'OK',
short_msg => 'List resources:'); short_msg => 'List network interfaces:');
$self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1);
$self->{output}->exit(); $self->{output}->exit();
} }
@ -79,7 +77,7 @@ sub run {
sub disco_format { sub disco_format {
my ($self, %options) = @_; my ($self, %options) = @_;
$self->{output}->add_disco_format(elements => ['name', 'resourcegroup', 'location', 'id', 'type']); $self->{output}->add_disco_format(elements => ['name', 'resourcegroup', 'location', 'id');
} }
sub disco_show { sub disco_show {
@ -87,13 +85,11 @@ sub disco_show {
$self->manage_selection(%options); $self->manage_selection(%options);
foreach my $resource (@{$self->{resources}}) { foreach my $resource (@{$self->{resources}}) {
$resource->{type} =~ s/Microsoft.Network\///g;
$self->{output}->add_disco_entry( $self->{output}->add_disco_entry(
name => $resource->{name}, name => $resource->{name},
resourcegroup => $resource->{resourceGroup}, resourcegroup => $resource->{resourceGroup},
location => $resource->{location}, location => $resource->{location},
id => $resource->{id}, id => $resource->{id},
type => $resource->{type},
); );
} }
} }
@ -104,7 +100,7 @@ __END__
=head1 MODE =head1 MODE
List network resources. List network interface resources.
=over 8 =over 8
@ -112,10 +108,6 @@ List network resources.
Set resource group. Set resource group.
=item B<--resource-type>
Set resource type (Default: 'networkInterfaces').
=item B<--location> =item B<--location>
Set resource location. Set resource location.

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::network::mode::traffic; package cloud::azure::network::networkinterface::mode::traffic;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -169,7 +169,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
"filter-metric:s" => { name => 'filter_metric' }, "filter-metric:s" => { name => 'filter_metric' },
"per-sec" => { name => 'per_sec' }, "per-sec" => { name => 'per_sec' },
}); });
@ -182,21 +181,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'networkInterfaces';
$self->{az_resource_namespace} = 'Microsoft.Compute'; $self->{az_resource_namespace} = 'Microsoft.Compute';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Network\/.*\/.*$/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Network\/networkInterfaces\/.*$/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -229,7 +228,7 @@ sub manage_selection {
my %metric_results; my %metric_results;
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
$resource_name = $1 if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Network\/.*\/(.*)$/); $resource_name = $1 if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Network\/networkInterfaces\/(.*)$/);
($metric_results{$resource_name}, undef, undef) = $options{custom}->azure_get_metrics( ($metric_results{$resource_name}, undef, undef) = $options{custom}->azure_get_metrics(
resource => $resource, resource => $resource,
@ -268,19 +267,19 @@ __END__
=head1 MODE =head1 MODE
Check network resources traffic metrics. Check network interface resources traffic metrics.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::network::plugin --custommode=azcli --mode=traffic perl centreon_plugins.pl --plugin=cloud::azure::network::networkinterface::plugin --custommode=azcli --mode=traffic
--resource=MYSQLINSTANCE --resource-group=MYHOSTGROUP --resource-type=networkInterfaces --resource=MYNIC --resource-group=MYHOSTGROUP --aggregation='total' --critical-bytesreceivedrate-total='10'
--aggregation='total' --critical-bytesreceivedrate-total='10' --verbose --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::network::plugin --custommode=azcli --mode=traffic perl centreon_plugins.pl --plugin=cloud::azure::network::networkinterface::plugin --custommode=azcli --mode=traffic
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Network/networkInterfaces/xxx' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Network/networkInterfaces/xxx'
--aggregation='total' --critical-bytesreceivedrate-total='10' --verbose --aggregation='total' --critical-bytesreceivedrate-total='10' --verbose
@ -296,10 +295,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'networkInterfaces').
=item B<--filter-metric> =item B<--filter-metric>
Filter metrics (Can be: 'BytesReceivedRate', 'BytesSentRate', Filter metrics (Can be: 'BytesReceivedRate', 'BytesSentRate',

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::network::plugin; package cloud::azure::network::networkinterface::plugin;
use strict; use strict;
use warnings; use warnings;
@ -31,8 +31,8 @@ sub new {
$self->{version} = '0.1'; $self->{version} = '0.1';
%{ $self->{modes} } = ( %{ $self->{modes} } = (
'list-resources' => 'cloud::azure::network::mode::listresources', 'list-resources' => 'cloud::azure::network::networkinterface::mode::listresources',
'throughput' => 'cloud::azure::network::mode::traffic', 'throughput' => 'cloud::azure::network::networkinterface::mode::traffic',
); );
$self->{custom_modes}{azcli} = 'cloud::azure::custom::azcli'; $self->{custom_modes}{azcli} = 'cloud::azure::custom::azcli';
@ -45,6 +45,6 @@ __END__
=head1 PLUGIN DESCRIPTION =head1 PLUGIN DESCRIPTION
Check Microsoft Azure network provider. Check Microsoft Azure network interface.
=cut =cut

View File

@ -1,66 +0,0 @@
#
# Copyright 2018 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 cloud::azure::storage::plugin;
use strict;
use warnings;
use base qw(centreon::plugins::script_custom);
sub new {
my ( $class, %options ) = @_;
my $self = $class->SUPER::new( package => __PACKAGE__, %options );
bless $self, $class;
$self->{version} = '0.1';
%{ $self->{modes} } = (
'account-used-capacity' => 'cloud::azure::storage::mode::accountusedcapacity',
'blob-capacity' => 'cloud::azure::storage::mode::blobcapacity',
'blob-container-count' => 'cloud::azure::storage::mode::blobcontainercount',
'blob-count' => 'cloud::azure::storage::mode::blobcount',
'file-capacity' => 'cloud::azure::storage::mode::filecapacity',
'file-count' => 'cloud::azure::storage::mode::filecount',
'file-share-count' => 'cloud::azure::storage::mode::filesharecount',
'list-resources' => 'cloud::azure::storage::mode::listresources',
'queue-capacity' => 'cloud::azure::storage::mode::queuecapacity',
'queue-count' => 'cloud::azure::storage::mode::queuecount',
'queue-message-count' => 'cloud::azure::storage::mode::queuemessagecount',
'table-capacity' => 'cloud::azure::storage::mode::tablecapacity',
'table-count' => 'cloud::azure::storage::mode::tablecount',
'table-entity-count' => 'cloud::azure::storage::mode::tableentitycount',
'transactions-availability' => 'cloud::azure::storage::mode::transactionsavailability',
'transactions-count' => 'cloud::azure::storage::mode::transactionscount',
'transactions-latency' => 'cloud::azure::storage::mode::transactionslatency',
'transactions-throughput' => 'cloud::azure::storage::mode::transactionsthroughput',
);
$self->{custom_modes}{azcli} = 'cloud::azure::custom::azcli';
return $self;
}
1;
__END__
=head1 PLUGIN DESCRIPTION
Check Microsoft Azure storage provider.
=cut

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::accountusedcapacity; package cloud::azure::storage::storageaccount::mode::accountusedcapacity;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -67,7 +67,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -78,21 +77,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -120,8 +119,8 @@ sub manage_selection {
my %metric_results; my %metric_results;
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)$/) {
$resource_name = $1; $resource_name = $1;
} }
($metric_results{$resource_name}, undef, undef) = $options{custom}->azure_get_metrics( ($metric_results{$resource_name}, undef, undef) = $options{custom}->azure_get_metrics(
@ -160,19 +159,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources used capacity metric. Check storage account resources used capacity metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=account-used-capacity perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=account-used-capacity
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='total' --critical-usedcapacity-total='10' --verbose
--aggregation='total' --critical-usedcapacity-total='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=account-used-capacity perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=account-used-capacity
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx'
--aggregation='total' --critical-usedcapacity-total='10' --verbose --aggregation='total' --critical-usedcapacity-total='10' --verbose
@ -188,10 +186,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-usedcapacity-total> =item B<--warning-usedcapacity-total>
Thresholds warning Thresholds warning

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::blobcapacity; package cloud::azure::storage::storageaccount::mode::blobcapacity;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -67,7 +67,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -78,21 +77,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -121,7 +120,7 @@ sub manage_selection {
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = '/blobServices/default'; my $namespace_full = '/blobServices/default';
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/.*\/default$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/.*\/default$/) {
$resource_name = $1; $resource_name = $1;
$namespace_full = ''; $namespace_full = '';
} }
@ -162,19 +161,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources blob capacity metric. Check storage account resources blob capacity metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=blob-capacity perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=blob-capacity
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='total' --critical-blobcapacity-total='10' --verbose
--aggregation='total' --critical-blobcapacity-total='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=blob-capacity perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=blob-capacity
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/blobServices/default' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/blobServices/default'
--aggregation='total' --critical-blobcapacity-total='10' --verbose --aggregation='total' --critical-blobcapacity-total='10' --verbose
@ -190,10 +188,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-blobcapacity-total> =item B<--warning-blobcapacity-total>
Thresholds warning Thresholds warning

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::blobcontainercount; package cloud::azure::storage::storageaccount::mode::blobcontainercount;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -66,7 +66,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -77,21 +76,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -120,7 +119,7 @@ sub manage_selection {
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = '/blobServices/default'; my $namespace_full = '/blobServices/default';
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/.*\/default$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/.*\/default$/) {
$resource_name = $1; $resource_name = $1;
$namespace_full = ''; $namespace_full = '';
} }
@ -161,19 +160,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources blob container count metric. Check storage account resources blob container count metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=blob-container-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=blob-container-count
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='average' --critical-containercount-average='10' --verbose
--aggregation='average' --critical-containercount-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=blob-container-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=blob-container-count
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/blobServices/default' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/blobServices/default'
--aggregation='average' --critical-containercount-average='10' --verbose --aggregation='average' --critical-containercount-average='10' --verbose
@ -189,10 +187,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-containercount-$aggregation$> =item B<--warning-containercount-$aggregation$>
Thresholds warning ($aggregation$ can be: 'average', 'total'). Thresholds warning ($aggregation$ can be: 'average', 'total').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::blobcount; package cloud::azure::storage::storageaccount::mode::blobcount;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -66,7 +66,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -77,21 +76,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -120,7 +119,7 @@ sub manage_selection {
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = '/blobServices/default'; my $namespace_full = '/blobServices/default';
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/.*\/default$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/.*\/default$/) {
$resource_name = $1; $resource_name = $1;
$namespace_full = ''; $namespace_full = '';
} }
@ -161,19 +160,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources blob capacity metric. Check storage account resources blob capacity metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=blob-capacity perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=blob-capacity
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='total' --critical-blobcapacity-total='10' --verbose
--aggregation='total' --critical-blobcapacity-total='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=blob-capacity perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=blob-capacity
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/blobServices/default' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/blobServices/default'
--aggregation='total' --critical-blobcapacity-total='10' --verbose --aggregation='total' --critical-blobcapacity-total='10' --verbose
@ -189,10 +187,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-blobcapacity-total> =item B<--warning-blobcapacity-total>
Thresholds warning Thresholds warning

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::filecapacity; package cloud::azure::storage::storageaccount::mode::filecapacity;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -67,7 +67,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -78,21 +77,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -121,7 +120,7 @@ sub manage_selection {
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = '/fileServices/default'; my $namespace_full = '/fileServices/default';
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/.*\/default$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/.*\/default$/) {
$resource_name = $1; $resource_name = $1;
$namespace_full = ''; $namespace_full = '';
} }
@ -162,19 +161,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources file capacity metric. Check storage account resources file capacity metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=file-capacity perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=file-capacity
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='average' --critical-filecapacity-average='10' --verbose
--aggregation='average' --critical-filecapacity-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=file-capacity perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=file-capacity
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/fileServices/default' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/fileServices/default'
--aggregation='average' --critical-filecapacity-average='10' --verbose --aggregation='average' --critical-filecapacity-average='10' --verbose
@ -190,10 +188,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-filecapacity-$aggregation$> =item B<--warning-filecapacity-$aggregation$>
Thresholds warning ($aggregation$ can be: 'average', 'total'). Thresholds warning ($aggregation$ can be: 'average', 'total').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::filecount; package cloud::azure::storage::storageaccount::mode::filecount;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -66,7 +66,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -77,21 +76,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -120,7 +119,7 @@ sub manage_selection {
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = '/fileServices/default'; my $namespace_full = '/fileServices/default';
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/.*\/default$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/.*\/default$/) {
$resource_name = $1; $resource_name = $1;
$namespace_full = ''; $namespace_full = '';
} }
@ -161,19 +160,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources file count metric. Check storage account resources file count metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=file-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=file-count
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='average' --critical-filecount-average='10' --verbose
--aggregation='average' --critical-filecount-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=file-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=file-count
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/fileServices/default' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/fileServices/default'
--aggregation='average' --critical-filecount-average='10' --verbose --aggregation='average' --critical-filecount-average='10' --verbose
@ -189,10 +187,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-filecount-$aggregation$> =item B<--warning-filecount-$aggregation$>
Thresholds warning ($aggregation$ can be: 'average', 'total'). Thresholds warning ($aggregation$ can be: 'average', 'total').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::filesharecount; package cloud::azure::storage::storageaccount::mode::filesharecount;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -66,7 +66,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -77,21 +76,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -120,7 +119,7 @@ sub manage_selection {
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = '/fileServices/default'; my $namespace_full = '/fileServices/default';
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/.*\/default$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/.*\/default$/) {
$resource_name = $1; $resource_name = $1;
$namespace_full = ''; $namespace_full = '';
} }
@ -161,19 +160,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources file share count metric. Check storage account resources file share count metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=file-share-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=file-share-count
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='average' --critical-filesharecount-average='10' --verbose
--aggregation='average' --critical-filesharecount-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=file-share-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=file-share-count
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/fileServices/default' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/fileServices/default'
--aggregation='average' --critical-filesharecount-average='10' --verbose --aggregation='average' --critical-filesharecount-average='10' --verbose
@ -189,10 +187,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-filesharecount-$aggregation$> =item B<--warning-filesharecount-$aggregation$>
Thresholds warning ($aggregation$ can be: 'average', 'total'). Thresholds warning ($aggregation$ can be: 'average', 'total').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::listresources; package cloud::azure::storage::storageaccount::mode::listresources;
use base qw(centreon::plugins::mode); use base qw(centreon::plugins::mode);
@ -34,7 +34,6 @@ sub new {
$options{options}->add_options(arguments => $options{options}->add_options(arguments =>
{ {
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type', default => 'storageAccounts' },
"location:s" => { name => 'location' }, "location:s" => { name => 'location' },
"filter-name:s" => { name => 'filter_name' }, "filter-name:s" => { name => 'filter_name' },
}); });
@ -52,7 +51,7 @@ sub manage_selection {
$self->{resources} = $options{custom}->azure_list_resources( $self->{resources} = $options{custom}->azure_list_resources(
namespace => 'Microsoft.Storage', namespace => 'Microsoft.Storage',
resource_type => $self->{option_results}->{resource_type}, resource_type => 'storageAccounts',
location => $self->{option_results}->{location}, location => $self->{option_results}->{location},
resource_group => $self->{option_results}->{resource_group} resource_group => $self->{option_results}->{resource_group}
); );
@ -65,13 +64,12 @@ sub run {
foreach my $resource (@{$self->{resources}}) { foreach my $resource (@{$self->{resources}}) {
next if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne '' next if (defined($self->{option_results}->{filter_name}) && $self->{option_results}->{filter_name} ne ''
&& $resource->{name} !~ /$self->{option_results}->{filter_name}/); && $resource->{name} !~ /$self->{option_results}->{filter_name}/);
$resource->{type} =~ s/Microsoft.Storage\///g; $self->{output}->output_add(long_msg => sprintf("[name = %s][resourcegroup = %s][location = %s][id = %s]",
$self->{output}->output_add(long_msg => sprintf("[name = %s][resourcegroup = %s][location = %s][id = %s][type = %s]", $resource->{name}, $resource->{resourceGroup}, $resource->{location}, $resource->{id}));
$resource->{name}, $resource->{resourceGroup}, $resource->{location}, $resource->{id}, $resource->{type}));
} }
$self->{output}->output_add(severity => 'OK', $self->{output}->output_add(severity => 'OK',
short_msg => 'List resources:'); short_msg => 'List storage accounts:');
$self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1); $self->{output}->display(nolabel => 1, force_ignore_perfdata => 1, force_long_output => 1);
$self->{output}->exit(); $self->{output}->exit();
} }
@ -79,7 +77,7 @@ sub run {
sub disco_format { sub disco_format {
my ($self, %options) = @_; my ($self, %options) = @_;
$self->{output}->add_disco_format(elements => ['name', 'resourcegroup', 'location', 'id', 'type']); $self->{output}->add_disco_format(elements => ['name', 'resourcegroup', 'location', 'id']);
} }
sub disco_show { sub disco_show {
@ -87,13 +85,11 @@ sub disco_show {
$self->manage_selection(%options); $self->manage_selection(%options);
foreach my $resource (@{$self->{resources}}) { foreach my $resource (@{$self->{resources}}) {
$resource->{type} =~ s/Microsoft.Storage\///g;
$self->{output}->add_disco_entry( $self->{output}->add_disco_entry(
name => $resource->{name}, name => $resource->{name},
resourcegroup => $resource->{resourceGroup}, resourcegroup => $resource->{resourceGroup},
location => $resource->{location}, location => $resource->{location},
id => $resource->{id}, id => $resource->{id},
type => $resource->{type},
); );
} }
} }
@ -104,7 +100,7 @@ __END__
=head1 MODE =head1 MODE
List storage resources. List storage account resources.
=over 8 =over 8
@ -112,10 +108,6 @@ List storage resources.
Set resource group. Set resource group.
=item B<--resource-type>
Set resource type (Default: 'storageAccounts').
=item B<--location> =item B<--location>
Set resource location. Set resource location.

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::queuecapacity; package cloud::azure::storage::storageaccount::mode::queuecapacity;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -67,7 +67,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -78,21 +77,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -121,7 +120,7 @@ sub manage_selection {
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = '/queueServices/default'; my $namespace_full = '/queueServices/default';
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/.*\/default$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/.*\/default$/) {
$resource_name = $1; $resource_name = $1;
$namespace_full = ''; $namespace_full = '';
} }
@ -162,19 +161,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources queue capacity metric. Check storage account resources queue capacity metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=queue-capacity perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=queue-capacity
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='average' --critical-queuecapacity-average='10' --verbose
--aggregation='average' --critical-queuecapacity-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=queue-capacity perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=queue-capacity
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/queueServices/default' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/queueServices/default'
--aggregation='average' --critical-queuecapacity-average='10' --verbose --aggregation='average' --critical-queuecapacity-average='10' --verbose
@ -190,10 +188,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-queuecapacity-$aggregation$> =item B<--warning-queuecapacity-$aggregation$>
Thresholds warning ($aggregation$ can be: 'average', 'total'). Thresholds warning ($aggregation$ can be: 'average', 'total').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::queuecount; package cloud::azure::storage::storageaccount::mode::queuecount;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -66,7 +66,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -77,21 +76,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -120,7 +119,7 @@ sub manage_selection {
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = '/queueServices/default'; my $namespace_full = '/queueServices/default';
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/.*\/default$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/.*\/default$/) {
$resource_name = $1; $resource_name = $1;
$namespace_full = ''; $namespace_full = '';
} }
@ -161,19 +160,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources queue count metric. Check storage account resources queue count metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=queue-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=queue-count
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='average' --critical-queuecount-average='10' --verbose
--aggregation='average' --critical-queuecount-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=queue-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=queue-count
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/queueServices/default' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/queueServices/default'
--aggregation='average' --critical-queuecount-average='10' --verbose --aggregation='average' --critical-queuecount-average='10' --verbose
@ -189,10 +187,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-queuecount-$aggregation$> =item B<--warning-queuecount-$aggregation$>
Thresholds warning ($aggregation$ can be: 'average', 'total'). Thresholds warning ($aggregation$ can be: 'average', 'total').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::queuemessagecount; package cloud::azure::storage::storageaccount::mode::queuemessagecount;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -66,7 +66,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -77,21 +76,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -120,7 +119,7 @@ sub manage_selection {
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = '/queueServices/default'; my $namespace_full = '/queueServices/default';
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/.*\/default$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/.*\/default$/) {
$resource_name = $1; $resource_name = $1;
$namespace_full = ''; $namespace_full = '';
} }
@ -161,19 +160,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources queue message count metric. Check storage account resources queue message count metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=queue-message-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=queue-message-count
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='average' --critical-queuemessagecount-average='10' --verbose
--aggregation='average' --critical-queuemessagecount-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=queue-message-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=queue-message-count
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/queueServices/default' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/queueServices/default'
--aggregation='average' --critical-queuemessagecount-average='10' --verbose --aggregation='average' --critical-queuemessagecount-average='10' --verbose
@ -189,10 +187,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-queuemessagecount-$aggregation$> =item B<--warning-queuemessagecount-$aggregation$>
Thresholds warning ($aggregation$ can be: 'average', 'total'). Thresholds warning ($aggregation$ can be: 'average', 'total').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::tablecapacity; package cloud::azure::storage::storageaccount::mode::tablecapacity;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -67,7 +67,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -78,21 +77,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -121,7 +120,7 @@ sub manage_selection {
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = '/tableServices/default'; my $namespace_full = '/tableServices/default';
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/.*\/default$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/.*\/default$/) {
$resource_name = $1; $resource_name = $1;
$namespace_full = ''; $namespace_full = '';
} }
@ -162,19 +161,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources table capacity metric. Check storage account resources table capacity metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=table-capacity perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=table-capacity
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='average' --critical-tablecapacity-average='10' --verbose
--aggregation='average' --critical-tablecapacity-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=table-capacity perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=table-capacity
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/tableServices/default' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/tableServices/default'
--aggregation='average' --critical-tablecapacity-average='10' --verbose --aggregation='average' --critical-tablecapacity-average='10' --verbose
@ -190,10 +188,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-tablecapacity-$aggregation$> =item B<--warning-tablecapacity-$aggregation$>
Thresholds warning ($aggregation$ can be: 'average', 'total'). Thresholds warning ($aggregation$ can be: 'average', 'total').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::tablecount; package cloud::azure::storage::storageaccount::mode::tablecount;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -66,7 +66,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -77,21 +76,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -120,7 +119,7 @@ sub manage_selection {
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = '/tableServices/default'; my $namespace_full = '/tableServices/default';
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/.*\/default$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/.*\/default$/) {
$resource_name = $1; $resource_name = $1;
$namespace_full = ''; $namespace_full = '';
} }
@ -161,19 +160,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources table count metric. Check storage account resources table count metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=table-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=table-count
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='average' --critical-tablecount-average='10' --verbose
--aggregation='average' --critical-tablecount-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=table-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=table-count
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/tableServices/default' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/tableServices/default'
--aggregation='average' --critical-tablecount-average='10' --verbose --aggregation='average' --critical-tablecount-average='10' --verbose
@ -189,10 +187,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-tablecount-$aggregation$> =item B<--warning-tablecount-$aggregation$>
Thresholds warning ($aggregation$ can be: 'average', 'total'). Thresholds warning ($aggregation$ can be: 'average', 'total').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::tableentitycount; package cloud::azure::storage::storageaccount::mode::tableentitycount;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -66,7 +66,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
}); });
return $self; return $self;
@ -77,21 +76,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -120,7 +119,7 @@ sub manage_selection {
foreach my $resource (@{$self->{az_resource}}) { foreach my $resource (@{$self->{az_resource}}) {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = '/tableServices/default'; my $namespace_full = '/tableServices/default';
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/.*\/default$/) { if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/.*\/default$/) {
$resource_name = $1; $resource_name = $1;
$namespace_full = ''; $namespace_full = '';
} }
@ -161,19 +160,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources table entity count metric. Check storage account resources table entity count metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=table-entity-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=table-entity-count
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource=MYFILER --resource-group=MYHOSTGROUP --aggregation='average' --critical-tableentitycount-average='10' --verbose
--aggregation='average' --critical-tableentitycount-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=table-entity-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=table-entity-count
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/tableServices/default' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx/tableServices/default'
--aggregation='average' --critical-tableentitycount-average='10' --verbose --aggregation='average' --critical-tableentitycount-average='10' --verbose
@ -189,10 +187,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--warning-tableentitycount-$aggregation$> =item B<--warning-tableentitycount-$aggregation$>
Thresholds warning ($aggregation$ can be: 'average', 'total'). Thresholds warning ($aggregation$ can be: 'average', 'total').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::transactionsavailability; package cloud::azure::storage::storageaccount::mode::transactionsavailability;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -70,7 +70,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
"resource-namespace:s" => { name => 'resource_namespace' }, "resource-namespace:s" => { name => 'resource_namespace' },
}); });
@ -82,21 +81,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*$/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -127,8 +126,8 @@ sub manage_selection {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = ($self->{az_resource_extra_namespace} ne '') ? '/' . lc($self->{az_resource_extra_namespace}) . 'Services/default' : ''; my $namespace_full = ($self->{az_resource_extra_namespace} ne '') ? '/' . lc($self->{az_resource_extra_namespace}) . 'Services/default' : '';
my $namespace_name = ($self->{az_resource_extra_namespace} ne '') ? $self->{az_resource_extra_namespace} : "Account"; my $namespace_name = ($self->{az_resource_extra_namespace} ne '') ? $self->{az_resource_extra_namespace} : "Account";
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/(.*)\/default$/ || if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/(.*)\/default$/ ||
$resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)$/) { $resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)$/) {
$resource_name = $1; $resource_name = $1;
$namespace_name = $2 if(defined($2)); $namespace_name = $2 if(defined($2));
} }
@ -172,19 +171,19 @@ __END__
=head1 MODE =head1 MODE
Check storage resources transaction availability metric. Check storage account resources transaction availability metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=transactions-availability perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=transactions-availability
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource-namespace=Blob --resource=MYFILER --resource-group=MYHOSTGROUP --resource-namespace=Blob --aggregation='average'
--aggregation='average' --critical-availability-average='10' --verbose --critical-availability-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=transactions-availability perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=transactions-availability
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx'
--aggregation='average' --critical-availability-average='10' --verbose --aggregation='average' --critical-availability-average='10' --verbose
@ -200,10 +199,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--resource-namespace> =item B<--resource-namespace>
Set resource namespace (Can be: 'Blob', 'File', 'Table', 'Queue'). Set resource namespace (Can be: 'Blob', 'File', 'Table', 'Queue').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::transactionscount; package cloud::azure::storage::storageaccount::mode::transactionscount;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -124,7 +124,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
"resource-namespace:s" => { name => 'resource_namespace' }, "resource-namespace:s" => { name => 'resource_namespace' },
"per-sec" => { name => 'per_sec' }, "per-sec" => { name => 'per_sec' },
}); });
@ -137,21 +136,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -184,8 +183,8 @@ sub manage_selection {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = ($self->{az_resource_extra_namespace} ne '') ? '/' . lc($self->{az_resource_extra_namespace}) . 'Services/default' : ''; my $namespace_full = ($self->{az_resource_extra_namespace} ne '') ? '/' . lc($self->{az_resource_extra_namespace}) . 'Services/default' : '';
my $namespace_name = ($self->{az_resource_extra_namespace} ne '') ? $self->{az_resource_extra_namespace} : "Account"; my $namespace_name = ($self->{az_resource_extra_namespace} ne '') ? $self->{az_resource_extra_namespace} : "Account";
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/(.*)\/default$/ || if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/(.*)\/default$/ ||
$resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)$/) { $resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)$/) {
$resource_name = $1; $resource_name = $1;
$namespace_name = $2 if(defined($2)); $namespace_name = $2 if(defined($2));
} }
@ -229,19 +228,19 @@ __END__
=head1 MODE =head1 MODE
Check storage resources transaction count metric. Check storage account resources transaction count metric.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=transactions-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=transactions-count
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource-namespace=Blob --resource=MYFILER --resource-group=MYHOSTGROUP --resource-namespace=Blob --aggregation='total'
--aggregation='total' --critical-transactions-total='10' --verbose --critical-transactions-total='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=transactions-count perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=transactions-count
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx'
--aggregation='total' --critical-transactions-total='10' --verbose --aggregation='total' --critical-transactions-total='10' --verbose
@ -257,10 +256,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--resource-namespace> =item B<--resource-namespace>
Set resource namespace (Can be: 'Blob', 'File', 'Table', 'Queue'). Set resource namespace (Can be: 'Blob', 'File', 'Table', 'Queue').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::transactionslatency; package cloud::azure::storage::storageaccount::mode::transactionslatency;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -72,7 +72,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
"resource-namespace:s" => { name => 'resource_namespace' }, "resource-namespace:s" => { name => 'resource_namespace' },
"filter-metric:s" => { name => 'filter_metric' }, "filter-metric:s" => { name => 'filter_metric' },
}); });
@ -85,21 +84,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -135,8 +134,8 @@ sub manage_selection {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = ($self->{az_resource_extra_namespace} ne '') ? '/' . lc($self->{az_resource_extra_namespace}) . 'Services/default' : ''; my $namespace_full = ($self->{az_resource_extra_namespace} ne '') ? '/' . lc($self->{az_resource_extra_namespace}) . 'Services/default' : '';
my $namespace_name = ($self->{az_resource_extra_namespace} ne '') ? $self->{az_resource_extra_namespace} : "Account"; my $namespace_name = ($self->{az_resource_extra_namespace} ne '') ? $self->{az_resource_extra_namespace} : "Account";
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/(.*)\/default$/ || if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/(.*)\/default$/ ||
$resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)$/) { $resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)$/) {
$resource_name = $1; $resource_name = $1;
$namespace_name = $2 if(defined($2)); $namespace_name = $2 if(defined($2));
} }
@ -180,19 +179,19 @@ __END__
=head1 MODE =head1 MODE
Check storage resources transaction latency metrics. Check storage account resources transaction latency metrics.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=transactions-latency perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=transactions-latency
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource-namespace=Blob --resource=MYFILER --resource-group=MYHOSTGROUP --resource-namespace=Blob --aggregation='average'
--aggregation='average' --critical-successserverlatency-average='10' --verbose --critical-successserverlatency-average='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=transactions-latency perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=transactions-latency
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx'
--aggregation='average' --critical-successserverlatency-average='10' --verbose --aggregation='average' --critical-successserverlatency-average='10' --verbose
@ -208,10 +207,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--resource-namespace> =item B<--resource-namespace>
Set resource namespace (Can be: 'Blob', 'File', 'Table', 'Queue'). Set resource namespace (Can be: 'Blob', 'File', 'Table', 'Queue').

View File

@ -18,7 +18,7 @@
# limitations under the License. # limitations under the License.
# #
package cloud::azure::storage::mode::transactionsthroughput; package cloud::azure::storage::storageaccount::mode::transactionsthroughput;
use base qw(centreon::plugins::templates::counter); use base qw(centreon::plugins::templates::counter);
@ -126,7 +126,6 @@ sub new {
{ {
"resource:s@" => { name => 'resource' }, "resource:s@" => { name => 'resource' },
"resource-group:s" => { name => 'resource_group' }, "resource-group:s" => { name => 'resource_group' },
"resource-type:s" => { name => 'resource_type' },
"resource-namespace:s" => { name => 'resource_namespace' }, "resource-namespace:s" => { name => 'resource_namespace' },
"filter-metric:s" => { name => 'filter_metric' }, "filter-metric:s" => { name => 'filter_metric' },
"per-sec" => { name => 'per_sec' }, "per-sec" => { name => 'per_sec' },
@ -140,21 +139,21 @@ sub check_options {
$self->SUPER::check_options(%options); $self->SUPER::check_options(%options);
if (!defined($self->{option_results}->{resource})) { if (!defined($self->{option_results}->{resource})) {
$self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group and --resource-type options or --resource <id>."); $self->{output}->add_option_msg(short_msg => "Need to specify either --resource <name> with --resource-group option or --resource <id>.");
$self->{output}->option_exit(); $self->{output}->option_exit();
} }
$self->{az_resource_group} = ''; $self->{az_resource_group} = '';
$self->{az_resource_type} = ''; $self->{az_resource_type} = 'storageAccounts';
$self->{az_resource_namespace} = 'Microsoft.Storage'; $self->{az_resource_namespace} = 'Microsoft.Storage';
foreach my $resource (@{$self->{option_results}->{resource}}) { foreach my $resource (@{$self->{option_results}->{resource}}) {
push @{$self->{az_resource}}, $resource; push @{$self->{az_resource}}, $resource;
if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/.*/) { if ($resource =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/.*/) {
$self->{az_resource_type} = '';
$self->{az_resource_namespace} = ''; $self->{az_resource_namespace} = '';
} else { } else {
$self->{az_resource_group} = $self->{option_results}->{resource_group}; $self->{az_resource_group} = $self->{option_results}->{resource_group};
$self->{az_resource_type} = $self->{option_results}->{resource_type};
} }
} }
@ -190,8 +189,8 @@ sub manage_selection {
my $resource_name = $resource; my $resource_name = $resource;
my $namespace_full = ($self->{az_resource_extra_namespace} ne '') ? '/' . lc($self->{az_resource_extra_namespace}) . 'Services/default' : ''; my $namespace_full = ($self->{az_resource_extra_namespace} ne '') ? '/' . lc($self->{az_resource_extra_namespace}) . 'Services/default' : '';
my $namespace_name = ($self->{az_resource_extra_namespace} ne '') ? $self->{az_resource_extra_namespace} : "Account"; my $namespace_name = ($self->{az_resource_extra_namespace} ne '') ? $self->{az_resource_extra_namespace} : "Account";
if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)\/(.*)\/default$/ || if ($resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)\/(.*)\/default$/ ||
$resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/.*\/(.*)$/) { $resource_name =~ /^\/subscriptions\/.*\/resourceGroups\/.*\/providers\/Microsoft\.Storage\/storageAccounts\/(.*)$/) {
$resource_name = $1; $resource_name = $1;
$namespace_name = $2 if(defined($2)); $namespace_name = $2 if(defined($2));
} }
@ -235,19 +234,18 @@ __END__
=head1 MODE =head1 MODE
Check storage resources transaction throughput metrics. Check storage account resources transaction throughput metrics.
Example: Example:
Using resource name : Using resource name :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=transactions-throughput perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=transactions-throughput
--resource=MYFILER --resource-group=MYHOSTGROUP --resource-type=storageAccounts --resource-namespace=Blob --resource=MYFILER --resource-group=MYHOSTGROUP--resource-namespace=Blob --aggregation='total' --critical-egress-total='10' --verbose
--aggregation='total' --critical-egress-total='10' --verbose
Using resource id : Using resource id :
perl centreon_plugins.pl --plugin=cloud::azure::storage::plugin --custommode=azcli --mode=transactions-throughput perl centreon_plugins.pl --plugin=cloud::azure::storage::storageaccount::plugin --custommode=azcli --mode=transactions-throughput
--resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx' --resource='/subscriptions/xxx/resourceGroups/xxx/providers/Microsoft.Storage/storageAccounts/xxx'
--aggregation='total' --critical-egress-total='10' --verbose --aggregation='total' --critical-egress-total='10' --verbose
@ -263,10 +261,6 @@ Set resource name or id (Required).
Set resource group (Required if resource's name is used). Set resource group (Required if resource's name is used).
=item B<--resource-type>
Set resource type (Required if resource's name is used) (Can be: 'storageAccounts').
=item B<--resource-namespace> =item B<--resource-namespace>
Set resource namespace (Can be: 'Blob', 'File', 'Table', 'Queue'). Set resource namespace (Can be: 'Blob', 'File', 'Table', 'Queue').

View File

@ -0,0 +1,66 @@
#
# Copyright 2018 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 cloud::azure::storage::storageaccount::plugin;
use strict;
use warnings;
use base qw(centreon::plugins::script_custom);
sub new {
my ( $class, %options ) = @_;
my $self = $class->SUPER::new( package => __PACKAGE__, %options );
bless $self, $class;
$self->{version} = '0.1';
%{ $self->{modes} } = (
'account-used-capacity' => 'cloud::azure::storage::storageaccount::mode::accountusedcapacity',
'blob-capacity' => 'cloud::azure::storage::storageaccount::mode::blobcapacity',
'blob-container-count' => 'cloud::azure::storage::storageaccount::mode::blobcontainercount',
'blob-count' => 'cloud::azure::storage::storageaccount::mode::blobcount',
'file-capacity' => 'cloud::azure::storage::storageaccount::mode::filecapacity',
'file-count' => 'cloud::azure::storage::storageaccount::mode::filecount',
'file-share-count' => 'cloud::azure::storage::storageaccount::mode::filesharecount',
'list-resources' => 'cloud::azure::storage::storageaccount::mode::listresources',
'queue-capacity' => 'cloud::azure::storage::storageaccount::mode::queuecapacity',
'queue-count' => 'cloud::azure::storage::storageaccount::mode::queuecount',
'queue-message-count' => 'cloud::azure::storage::storageaccount::mode::queuemessagecount',
'table-capacity' => 'cloud::azure::storage::storageaccount::mode::tablecapacity',
'table-count' => 'cloud::azure::storage::storageaccount::mode::tablecount',
'table-entity-count' => 'cloud::azure::storage::storageaccount::mode::tableentitycount',
'transactions-availability' => 'cloud::azure::storage::storageaccount::mode::transactionsavailability',
'transactions-count' => 'cloud::azure::storage::storageaccount::mode::transactionscount',
'transactions-latency' => 'cloud::azure::storage::storageaccount::mode::transactionslatency',
'transactions-throughput' => 'cloud::azure::storage::storageaccount::mode::transactionsthroughput',
);
$self->{custom_modes}{azcli} = 'cloud::azure::custom::azcli';
return $self;
}
1;
__END__
=head1 PLUGIN DESCRIPTION
Check Microsoft Azure storage account.
=cut