mirror of
				https://github.com/centreon/centreon-plugins.git
				synced 2025-10-31 19:33:50 +01:00 
			
		
		
		
	add(plugin): fortinet fortiswitch snmp (#3367)
This commit is contained in:
		
							parent
							
								
									56339e6b98
								
							
						
					
					
						commit
						5e5db3ddbe
					
				| @ -0,0 +1,86 @@ | ||||
| # | ||||
| # Copyright 2021 Centreon (http://www.centreon.com/) | ||||
| # | ||||
| # Centreon is a full-fledged industry-strength solution that meets | ||||
| # the needs in IT infrastructure and application monitoring for | ||||
| # service performance. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| # | ||||
| 
 | ||||
| package network::fortinet::fortiswitch::snmp::mode::cpu ; | ||||
| 
 | ||||
| use base qw(centreon::plugins::templates::counter); | ||||
| 
 | ||||
| use strict; | ||||
| use warnings; | ||||
| 
 | ||||
| sub set_counters { | ||||
|     my ($self, %options) = @_; | ||||
| 
 | ||||
|     $self->{maps_counters_type} = [ | ||||
|         { name => 'global', type => 0, skipped_code => { -10 => 1 } } | ||||
|     ]; | ||||
| 
 | ||||
|     $self->{maps_counters}->{global} = [ | ||||
|         { label => 'cpu-utilization', nlabel => 'cpu.utilization.percentage', set => { | ||||
|                 key_values => [ { name => 'cpu_util' } ], | ||||
|                 output_template => 'Cpu utilization: %.2f%%', | ||||
|                 perfdatas => [ | ||||
|                     { template => '%s', min => 0, max => 100, unit => '%' } | ||||
|                 ] | ||||
|             } | ||||
|         } | ||||
|     ]; | ||||
| } | ||||
| 
 | ||||
| sub new { | ||||
|     my ($class, %options) = @_; | ||||
|     my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1); | ||||
|     bless $self, $class; | ||||
|      | ||||
|     return $self; | ||||
| } | ||||
| 
 | ||||
| sub manage_selection { | ||||
|     my ($self, %options) = @_; | ||||
| 
 | ||||
|     my $oid_cpu_util = '.1.3.6.1.4.1.12356.106.4.1.2.0'; # fsSysCpuUsage | ||||
|     my $snmp_result = $options{snmp}->get_leef( | ||||
|         oids => [$oid_cpu_util], | ||||
|         nothing_quit => 1 | ||||
|     ); | ||||
| 
 | ||||
|     $self->{global} = { | ||||
|         cpu_util => $snmp_result->{$oid_cpu_util} | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| 1; | ||||
| 
 | ||||
| __END__ | ||||
| 
 | ||||
| =head1 MODE | ||||
| 
 | ||||
| Check cpu. | ||||
| 
 | ||||
| =over 8 | ||||
| 
 | ||||
| =item B<--warning-*> B<--critical-*> | ||||
| 
 | ||||
| Thresholds. | ||||
| Can be: 'cpu-utilization' (%). | ||||
| 
 | ||||
| =back | ||||
| 
 | ||||
| =cut | ||||
							
								
								
									
										125
									
								
								centreon-plugins/network/fortinet/fortiswitch/snmp/mode/disk.pm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										125
									
								
								centreon-plugins/network/fortinet/fortiswitch/snmp/mode/disk.pm
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,125 @@ | ||||
| # | ||||
| # Copyright 2021 Centreon (http://www.centreon.com/) | ||||
| # | ||||
| # Centreon is a full-fledged industry-strength solution that meets | ||||
| # the needs in IT infrastructure and application monitoring for | ||||
| # service performance. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| # | ||||
| 
 | ||||
| package network::fortinet::fortiswitch::snmp::mode::disk; | ||||
| 
 | ||||
| use base qw(centreon::plugins::templates::counter); | ||||
| 
 | ||||
| use strict; | ||||
| use warnings; | ||||
| use centreon::plugins::misc; | ||||
| 
 | ||||
| sub custom_disk_output { | ||||
|     my ($self, %options) = @_; | ||||
| 
 | ||||
|     return sprintf( | ||||
|         "Disk total: %s %s used: %s %s (%.2f%%) free: %s %s (%.2f%%)", | ||||
|         $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}), | ||||
|         $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}), | ||||
|         $self->{result_values}->{prct_used}, | ||||
|         $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}), | ||||
|         $self->{result_values}->{prct_free} | ||||
|     ); | ||||
| } | ||||
| 
 | ||||
| sub set_counters { | ||||
|     my ($self, %options) = @_; | ||||
|      | ||||
|     $self->{maps_counters_type} = [ | ||||
|         { name => 'disk', type => 0 } | ||||
|     ]; | ||||
|      | ||||
|     $self->{maps_counters}->{disk} = [ | ||||
|         { label => 'usage', nlabel => 'disk.usage.bytes', set => { | ||||
|                 key_values => [ { name => 'used' }, { name => 'free' }, { name => 'prct_used' }, { name => 'prct_free' }, { name => 'total' } ], | ||||
|                 closure_custom_output => $self->can('custom_disk_output'), | ||||
|                 perfdatas => [ | ||||
|                     { template => '%d', min => 0, max => 'total', unit => 'B', cast_int => 1 } | ||||
|                 ] | ||||
|             } | ||||
|         }, | ||||
|         { label => 'usage-free', display_ok => 0, nlabel => 'disk.free.bytes', set => { | ||||
|                 key_values => [ { name => 'free' }, { name => 'used' }, { name => 'prct_used' }, { name => 'prct_free' }, { name => 'total' } ], | ||||
|                 closure_custom_output => $self->can('custom_disk_output'), | ||||
|                 perfdatas => [ | ||||
|                     { template => '%d', min => 0, max => 'total', unit => 'B', cast_int => 1 } | ||||
|                 ] | ||||
|             } | ||||
|         }, | ||||
|         { label => 'usage-prct', display_ok => 0, nlabel => 'disk.usage.percentage', set => { | ||||
|                 key_values => [ { name => 'prct_used' }, { name => 'free' }, { name => 'used' }, { name => 'prct_free' }, { name => 'total' } ], | ||||
|                 closure_custom_output => $self->can('custom_disk_output'), | ||||
|                 perfdatas => [ | ||||
|                     { template => '%.2f', min => 0, max => 100, unit => '%' } | ||||
|                 ] | ||||
|             } | ||||
|         } | ||||
|     ]; | ||||
| } | ||||
| 
 | ||||
| sub new { | ||||
|     my ($class, %options) = @_; | ||||
|     my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1); | ||||
|     bless $self, $class; | ||||
|      | ||||
|     $options{options}->add_options(arguments => {}); | ||||
| 
 | ||||
|     return $self; | ||||
| } | ||||
| 
 | ||||
| sub manage_selection { | ||||
|     my ($self, %options) = @_; | ||||
| 
 | ||||
|     my $oid_used = '.1.3.6.1.4.1.12356.106.4.1.5.0'; # fsSysDiskUsage | ||||
|     my $oid_total = '.1.3.6.1.4.1.12356.106.4.1.6.0'; # fsSysDiskCapacity | ||||
|     my $snmp_result = $options{snmp}->get_leef( | ||||
|         oids => [$oid_used, $oid_total], | ||||
|         nothing_quit => 1 | ||||
|     ); | ||||
| 
 | ||||
|     $snmp_result->{$oid_total} *= 1024; | ||||
|     $snmp_result->{$oid_used} *= 1024; | ||||
|     $self->{disk} = { | ||||
|         total => $snmp_result->{$oid_total}, | ||||
|         used => $snmp_result->{$oid_used}, | ||||
|         free => $snmp_result->{$oid_total} - $snmp_result->{$oid_used}, | ||||
|         prct_used => $snmp_result->{$oid_used} * 100 / $snmp_result->{$oid_total}, | ||||
|         prct_free => 100 - ($snmp_result->{$oid_used} * 100 / $snmp_result->{$oid_total}) | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| 1; | ||||
| 
 | ||||
| __END__ | ||||
| 
 | ||||
| =head1 MODE | ||||
| 
 | ||||
| Check disk usage. | ||||
| 
 | ||||
| =over 8 | ||||
| 
 | ||||
| =item B<--warning-*> B<--critical-*> | ||||
| 
 | ||||
| Thresholds. | ||||
| Can be: 'usage' (B), 'usage-free' (B), 'usage-prct' (%). | ||||
| 
 | ||||
| =back | ||||
| 
 | ||||
| =cut | ||||
| @ -0,0 +1,178 @@ | ||||
| # | ||||
| # Copyright 2021 Centreon (http://www.centreon.com/) | ||||
| # | ||||
| # Centreon is a full-fledged industry-strength solution that meets | ||||
| # the needs in IT infrastructure and application monitoring for | ||||
| # service performance. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| # | ||||
| 
 | ||||
| package network::fortinet::fortiswitch::snmp::mode::interfaces; | ||||
| 
 | ||||
| use base qw(snmp_standard::mode::interfaces); | ||||
| 
 | ||||
| use strict; | ||||
| use warnings; | ||||
| 
 | ||||
| sub new { | ||||
|     my ($class, %options) = @_; | ||||
|     my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1); | ||||
|     bless $self, $class; | ||||
| 
 | ||||
|     return $self; | ||||
| } | ||||
| 
 | ||||
| 1; | ||||
| 
 | ||||
| __END__ | ||||
| 
 | ||||
| =head1 MODE | ||||
| 
 | ||||
| Check interfaces. | ||||
| 
 | ||||
| =over 8 | ||||
| 
 | ||||
| =item B<--add-global> | ||||
| 
 | ||||
| Check global port statistics (By default if no --add-* option is set). | ||||
| 
 | ||||
| =item B<--add-status> | ||||
| 
 | ||||
| Check interface status. | ||||
| 
 | ||||
| =item B<--add-duplex-status> | ||||
| 
 | ||||
| Check duplex status (with --warning-status and --critical-status). | ||||
| 
 | ||||
| =item B<--add-traffic> | ||||
| 
 | ||||
| Check interface traffic. | ||||
| 
 | ||||
| =item B<--add-errors> | ||||
| 
 | ||||
| Check interface errors. | ||||
| 
 | ||||
| =item B<--add-cast> | ||||
| 
 | ||||
| Check interface cast. | ||||
| 
 | ||||
| =item B<--add-speed> | ||||
| 
 | ||||
| Check interface speed. | ||||
| 
 | ||||
| =item B<--add-volume> | ||||
| 
 | ||||
| Check interface data volume between two checks (not supposed to be graphed, useful for BI reporting). | ||||
| 
 | ||||
| =item B<--warning-status> | ||||
| 
 | ||||
| Set warning threshold for status. | ||||
| Can used special variables like: %{admstatus}, %{opstatus}, %{duplexstatus}, %{display} | ||||
| 
 | ||||
| =item B<--critical-status> | ||||
| 
 | ||||
| Set critical threshold for status (Default: '%{admstatus} eq "up" and %{opstatus} ne "up"'). | ||||
| Can used special variables like: %{admstatus}, %{opstatus}, %{duplexstatus}, %{display} | ||||
| 
 | ||||
| =item B<--warning-*> B<--critical-*> | ||||
| 
 | ||||
| Thresholds. | ||||
| Can be: 'total-port', 'total-admin-up', 'total-admin-down', 'total-oper-up', 'total-oper-down', | ||||
| 'in-traffic', 'out-traffic', 'in-error', 'in-discard', 'out-error', 'out-discard', | ||||
| 'in-ucast', 'in-bcast', 'in-mcast', 'out-ucast', 'out-bcast', 'out-mcast', | ||||
| 'speed' (b/s). | ||||
| 
 | ||||
| =item B<--units-traffic> | ||||
| 
 | ||||
| Units of thresholds for the traffic (Default: 'percent_delta') ('percent_delta', 'bps', 'counter'). | ||||
| 
 | ||||
| =item B<--units-errors> | ||||
| 
 | ||||
| Units of thresholds for errors/discards (Default: 'percent_delta') ('percent_delta', 'percent', 'delta', 'counter'). | ||||
| 
 | ||||
| =item B<--units-cast> | ||||
| 
 | ||||
| Units of thresholds for communication types (Default: 'percent_delta') ('percent_delta', 'percent', 'delta', 'counter'). | ||||
| 
 | ||||
| =item B<--nagvis-perfdata> | ||||
| 
 | ||||
| Display traffic perfdata to be compatible with nagvis widget. | ||||
| 
 | ||||
| =item B<--interface> | ||||
| 
 | ||||
| Set the interface (number expected) ex: 1,2,... (empty means 'check all interface'). | ||||
| 
 | ||||
| =item B<--name> | ||||
| 
 | ||||
| Allows to use interface name with option --interface instead of interface oid index (Can be a regexp) | ||||
| 
 | ||||
| =item B<--speed> | ||||
| 
 | ||||
| Set interface speed for incoming/outgoing traffic (in Mb). | ||||
| 
 | ||||
| =item B<--speed-in> | ||||
| 
 | ||||
| Set interface speed for incoming traffic (in Mb). | ||||
| 
 | ||||
| =item B<--speed-out> | ||||
| 
 | ||||
| Set interface speed for outgoing traffic (in Mb). | ||||
| 
 | ||||
| =item B<--map-speed-dsl> | ||||
| 
 | ||||
| Get interface speed configuration for interface type 'adsl' and 'vdsl2'. | ||||
| 
 | ||||
| Syntax: --map-speed-dsl=interface-src-name,interface-dsl-name | ||||
| 
 | ||||
| E.g: --map-speed-dsl=Et0.835,Et0-vdsl2 | ||||
| 
 | ||||
| =item B<--force-counters64> | ||||
| 
 | ||||
| Force to use 64 bits counters only. Can be used to improve performance. | ||||
| 
 | ||||
| =item B<--force-counters32> | ||||
| 
 | ||||
| Force to use 32 bits counters (even in snmp v2c and v3). Should be used when 64 bits counters are buggy. | ||||
| 
 | ||||
| =item B<--reload-cache-time> | ||||
| 
 | ||||
| Time in minutes before reloading cache file (default: 180). | ||||
| 
 | ||||
| =item B<--oid-filter> | ||||
| 
 | ||||
| Choose OID used to filter interface (default: ifName) (values: ifDesc, ifAlias, ifName, IpAddr). | ||||
| 
 | ||||
| =item B<--oid-display> | ||||
| 
 | ||||
| Choose OID used to display interface (default: ifName) (values: ifDesc, ifAlias, ifName, IpAddr). | ||||
| 
 | ||||
| =item B<--oid-extra-display> | ||||
| 
 | ||||
| Add an OID to display. | ||||
| 
 | ||||
| =item B<--display-transform-src> | ||||
| 
 | ||||
| Regexp src to transform display value. | ||||
| 
 | ||||
| =item B<--display-transform-dst> | ||||
| 
 | ||||
| Regexp dst to transform display value. | ||||
| 
 | ||||
| =item B<--show-cache> | ||||
| 
 | ||||
| Display cache interface datas. | ||||
| 
 | ||||
| =back | ||||
| 
 | ||||
| =cut | ||||
| @ -0,0 +1,122 @@ | ||||
| # | ||||
| # Copyright 2021 Centreon (http://www.centreon.com/) | ||||
| # | ||||
| # Centreon is a full-fledged industry-strength solution that meets | ||||
| # the needs in IT infrastructure and application monitoring for | ||||
| # service performance. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| # | ||||
| 
 | ||||
| package network::fortinet::fortiswitch::snmp::mode::memory; | ||||
| 
 | ||||
| use base qw(centreon::plugins::templates::counter); | ||||
| 
 | ||||
| use strict; | ||||
| use warnings; | ||||
| 
 | ||||
| sub custom_usage_output { | ||||
|     my ($self, %options) = @_; | ||||
| 
 | ||||
|     return sprintf( | ||||
|         'Memory total: %s %s used: %s %s (%.2f%%) free: %s %s (%.2f%%)', | ||||
|         $self->{perfdata}->change_bytes(value => $self->{result_values}->{total}), | ||||
|         $self->{perfdata}->change_bytes(value => $self->{result_values}->{used}), | ||||
|         $self->{result_values}->{prct_used}, | ||||
|         $self->{perfdata}->change_bytes(value => $self->{result_values}->{free}), | ||||
|         $self->{result_values}->{prct_free} | ||||
|     ); | ||||
| } | ||||
| 
 | ||||
| sub set_counters { | ||||
|     my ($self, %options) = @_; | ||||
| 
 | ||||
|     $self->{maps_counters_type} = [ | ||||
|         { name => 'ram', type => 0, skipped_code => { -10 => 1 } } | ||||
|     ]; | ||||
| 
 | ||||
|     $self->{maps_counters}->{ram} = [ | ||||
|         { label => 'usage', nlabel => 'memory.usage.bytes', set => { | ||||
|                 key_values => [ { name => 'used' }, { name => 'free' }, { name => 'prct_used' }, { name => 'prct_free' }, { name => 'total' } ], | ||||
|                 closure_custom_output => $self->can('custom_usage_output'), | ||||
|                 perfdatas => [ | ||||
|                     { template => '%d', min => 0, max => 'total', unit => 'B', cast_int => 1 } | ||||
|                 ] | ||||
|             } | ||||
|         }, | ||||
|         { label => 'usage-free', display_ok => 0, nlabel => 'memory.free.bytes', set => { | ||||
|                 key_values => [ { name => 'free' }, { name => 'used' }, { name => 'prct_used' }, { name => 'prct_free' }, { name => 'total' } ], | ||||
|                 closure_custom_output => $self->can('custom_usage_output'), | ||||
|                 perfdatas => [ | ||||
|                     { template => '%d', min => 0, max => 'total', unit => 'B', cast_int => 1 } | ||||
|                 ] | ||||
|             } | ||||
|         }, | ||||
|         { label => 'usage-prct', display_ok => 0, nlabel => 'memory.usage.percentage', set => { | ||||
|                 key_values => [ { name => 'prct_used' }, { name => 'used' }, { name => 'free' }, { name => 'prct_free' }, { name => 'total' } ], | ||||
|                 closure_custom_output => $self->can('custom_usage_output'), | ||||
|                 perfdatas => [ | ||||
|                     { template => '%.2f', min => 0, max => 100, unit => '%' } | ||||
|                 ] | ||||
|             } | ||||
|         } | ||||
|     ]; | ||||
| } | ||||
| 
 | ||||
| sub new { | ||||
|     my ($class, %options) = @_; | ||||
|     my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1); | ||||
|     bless $self, $class; | ||||
|      | ||||
|     return $self; | ||||
| } | ||||
| 
 | ||||
| sub manage_selection { | ||||
|     my ($self, %options) = @_; | ||||
| 
 | ||||
|     my $oid_total = '.1.3.6.1.4.1.12356.106.4.1.4.0'; # fsSysMemCapacity | ||||
|     my $oid_used = '.1.3.6.1.4.1.12356.106.4.1.3.0'; # fsSysMemUsage | ||||
|     my $snmp_result = $options{snmp}->get_leef( | ||||
|         oids => [ $oid_total, $oid_used ], | ||||
|         nothing_quit => 1 | ||||
|     ); | ||||
| 
 | ||||
|     $snmp_result->{$oid_total} *= 1024; | ||||
|     $snmp_result->{$oid_used} *= 1024; | ||||
|     $self->{ram} = { | ||||
|         total => $snmp_result->{$oid_total}, | ||||
|         used => $snmp_result->{$oid_used}, | ||||
|         free => $snmp_result->{$oid_total} - $snmp_result->{$oid_used}, | ||||
|         prct_used => $snmp_result->{$oid_used} * 100 / $snmp_result->{$oid_total}, | ||||
|         prct_free => 100 - ($snmp_result->{$oid_used} * 100 / $snmp_result->{$oid_total}) | ||||
|     }; | ||||
| } | ||||
| 
 | ||||
| 1; | ||||
| 
 | ||||
| __END__ | ||||
| 
 | ||||
| =head1 MODE | ||||
| 
 | ||||
| Check memory. | ||||
| 
 | ||||
| =over 8 | ||||
| 
 | ||||
| =item B<--warning-*> B<--critical-*> | ||||
| 
 | ||||
| Thresholds. | ||||
| Can be: 'usage' (B), 'usage-free' (B), 'usage-prct' (%). | ||||
| 
 | ||||
| =back | ||||
| 
 | ||||
| =cut | ||||
| @ -0,0 +1,77 @@ | ||||
| # | ||||
| # Copyright 2021 Centreon (http://www.centreon.com/) | ||||
| # | ||||
| # Centreon is a full-fledged industry-strength solution that meets | ||||
| # the needs in IT infrastructure and application monitoring for | ||||
| # service performance. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| # | ||||
| 
 | ||||
| package network::fortinet::fortiswitch::snmp::mode::uptime; | ||||
| 
 | ||||
| use base qw(snmp_standard::mode::uptime); | ||||
| 
 | ||||
| use strict; | ||||
| use warnings; | ||||
| 
 | ||||
| sub new { | ||||
|     my ($class, %options) = @_; | ||||
|     my $self = $class->SUPER::new(package => __PACKAGE__, %options, force_new_perfdata => 1); | ||||
|     bless $self, $class; | ||||
| 
 | ||||
|     return $self; | ||||
| } | ||||
| 
 | ||||
| 1; | ||||
| 
 | ||||
| __END__ | ||||
| 
 | ||||
| =head1 MODE | ||||
| 
 | ||||
| Check system uptime. | ||||
| 
 | ||||
| =over 8 | ||||
| 
 | ||||
| =item B<--warning-uptime> | ||||
| 
 | ||||
| Threshold warning. | ||||
| 
 | ||||
| =item B<--critical-uptime> | ||||
| 
 | ||||
| Threshold critical. | ||||
| 
 | ||||
| =item B<--add-sysdesc> | ||||
| 
 | ||||
| Display system description. | ||||
| 
 | ||||
| =item B<--force-oid> | ||||
| 
 | ||||
| Can choose your oid (numeric format only). | ||||
| 
 | ||||
| =item B<--check-overload> | ||||
| 
 | ||||
| Uptime counter limit is 4294967296 and overflow. | ||||
| With that option, we manage the counter going back. But there is a few chance we can miss a reboot. | ||||
| 
 | ||||
| =item B<--reboot-window> | ||||
| 
 | ||||
| To be used with check-overload option. Time in milliseconds (Default: 5000) | ||||
| You increase the chance of not missing a reboot if you decrease that value. | ||||
| 
 | ||||
| =item B<--unit> | ||||
| 
 | ||||
| Select the unit for performance data and thresholds. May be 's' for seconds, 'm' for minutes, | ||||
| 'h' for hours, 'd' for days, 'w' for weeks.  Default is seconds | ||||
| 
 | ||||
| =back | ||||
							
								
								
									
										53
									
								
								centreon-plugins/network/fortinet/fortiswitch/snmp/plugin.pm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										53
									
								
								centreon-plugins/network/fortinet/fortiswitch/snmp/plugin.pm
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,53 @@ | ||||
| # | ||||
| # Copyright 2021 Centreon (http://www.centreon.com/) | ||||
| # | ||||
| # Centreon is a full-fledged industry-strength solution that meets | ||||
| # the needs in IT infrastructure and application monitoring for | ||||
| # service performance. | ||||
| # | ||||
| # Licensed under the Apache License, Version 2.0 (the "License"); | ||||
| # you may not use this file except in compliance with the License. | ||||
| # You may obtain a copy of the License at | ||||
| # | ||||
| #     http://www.apache.org/licenses/LICENSE-2.0 | ||||
| # | ||||
| # Unless required by applicable law or agreed to in writing, software | ||||
| # distributed under the License is distributed on an "AS IS" BASIS, | ||||
| # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||||
| # See the License for the specific language governing permissions and | ||||
| # limitations under the License. | ||||
| # | ||||
| 
 | ||||
| package network::fortinet::fortiswitch::snmp::plugin; | ||||
| 
 | ||||
| use strict; | ||||
| use warnings; | ||||
| use base qw(centreon::plugins::script_snmp); | ||||
| 
 | ||||
| sub new { | ||||
|     my ($class, %options) = @_; | ||||
|     my $self = $class->SUPER::new(package => __PACKAGE__, %options); | ||||
|     bless $self, $class; | ||||
| 
 | ||||
|     $self->{modes} = { | ||||
|         'arp'             => 'snmp_standard::mode::arp', | ||||
|         'cpu'             => 'network::fortinet::fortiswitch::snmp::mode::cpu', | ||||
|         'disk'            => 'network::fortinet::fortiswitch::snmp::mode::disk', | ||||
|         'interfaces'      => 'network::fortinet::fortiswitch::snmp::mode::interfaces', | ||||
|         'list-interfaces' => 'snmp_standard::mode::listinterfaces', | ||||
|         'memory'          => 'network::fortinet::fortiswitch::snmp::mode::memory', | ||||
|         'uptime'          => 'network::fortinet::fortiswitch::snmp::mode::uptime' | ||||
|     }; | ||||
| 
 | ||||
|     return $self; | ||||
| } | ||||
| 
 | ||||
| 1; | ||||
| 
 | ||||
| __END__ | ||||
| 
 | ||||
| =head1 PLUGIN DESCRIPTION | ||||
| 
 | ||||
| Check FortiManager in SNMP. | ||||
| 
 | ||||
| =cut | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user