update documentation
This commit is contained in:
parent
5e9529d66b
commit
c845968e75
|
@ -19,7 +19,7 @@ Directory creation
|
||||||
|
|
||||||
First of all, you need to create a directory on the git to store the new plugin.
|
First of all, you need to create a directory on the git to store the new plugin.
|
||||||
|
|
||||||
Root directories are organized by section :
|
Root directories are organized by section:
|
||||||
|
|
||||||
* Application : apps
|
* Application : apps
|
||||||
* Database : database
|
* Database : database
|
||||||
|
@ -28,19 +28,19 @@ Root directories are organized by section :
|
||||||
* Operating System : os
|
* Operating System : os
|
||||||
* Storage equipment : storage
|
* Storage equipment : storage
|
||||||
|
|
||||||
According to the monitored object, it exists an organization which can use :
|
According to the monitored object, it exists an organization which can use:
|
||||||
|
|
||||||
* Type
|
* Type
|
||||||
* Constructor
|
* Constructor
|
||||||
* Model
|
* Model
|
||||||
* Monitoring Protocol
|
* Monitoring Protocol
|
||||||
|
|
||||||
For example, if you want to add a plugin to monitor Linux by SNMP, you need to create this directory :
|
For example, if you want to add a plugin to monitor Linux by SNMP, you need to create this directory:
|
||||||
::
|
::
|
||||||
|
|
||||||
$ mkdir -p os/linux/snmp
|
$ mkdir -p os/linux/snmp
|
||||||
|
|
||||||
You also need to create a "mode" directory for futures modes :
|
You also need to create a "mode" directory for futures modes:
|
||||||
::
|
::
|
||||||
|
|
||||||
$ mkdir os/linux/snmp/mode
|
$ mkdir os/linux/snmp/mode
|
||||||
|
@ -49,12 +49,12 @@ You also need to create a "mode" directory for futures modes :
|
||||||
Plugin creation
|
Plugin creation
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
Once the directory is created, create the plugin file inside it :
|
Once the directory is created, create the plugin file inside it:
|
||||||
::
|
::
|
||||||
|
|
||||||
$ touch plugin.pm
|
$ touch plugin.pm
|
||||||
|
|
||||||
Then, edit plugin.pm to add **license terms** by copying it from an other plugin. Don't forget to put your name at the end of it :
|
Then, edit plugin.pm to add **license terms** by copying it from an other plugin. Don't forget to put your name at the end of it:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
|
@ -67,7 +67,7 @@ Next, describe your **package** name : it matches your plugin directory.
|
||||||
|
|
||||||
package path::to::plugin;
|
package path::to::plugin;
|
||||||
|
|
||||||
Declare used libraries (**strict** and **warnings** are mandatory). Centreon libraries are described later :
|
Declare used libraries (**strict** and **warnings** are mandatory). Centreon libraries are described later:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
|
@ -75,7 +75,7 @@ Declare used libraries (**strict** and **warnings** are mandatory). Centreon lib
|
||||||
use warnings;
|
use warnings;
|
||||||
use base qw(**centreon_library**);
|
use base qw(**centreon_library**);
|
||||||
|
|
||||||
The plugin need a **new** constructor to instantiate the object :
|
The plugin need a **new** constructor to instantiate the object:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
|
@ -89,13 +89,13 @@ The plugin need a **new** constructor to instantiate the object :
|
||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
Plugin version must be declared in the **new** constructor :
|
Plugin version must be declared in the **new** constructor:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
$self->{version} = '0.1';
|
$self->{version} = '0.1';
|
||||||
|
|
||||||
Several modes can be declared in the **new** constructor :
|
Several modes can be declared in the **new** constructor:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
|
@ -105,13 +105,13 @@ Several modes can be declared in the **new** constructor :
|
||||||
...
|
...
|
||||||
);
|
);
|
||||||
|
|
||||||
Then, Declare the module :
|
Then, Declare the module:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
1;
|
1;
|
||||||
|
|
||||||
A description of the plugin is needed to generate the documentation :
|
A description of the plugin is needed to generate the documentation:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
|
@ -134,13 +134,13 @@ A description of the plugin is needed to generate the documentation :
|
||||||
Mode creation
|
Mode creation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
Once **plugin.pm** is created and modes are declared in it, create modes in the **mode directory** :
|
Once **plugin.pm** is created and modes are declared in it, create modes in the **mode** directory:
|
||||||
::
|
::
|
||||||
|
|
||||||
cd mode
|
cd mode
|
||||||
touch mode1.pm
|
touch mode1.pm
|
||||||
|
|
||||||
Then, edit mode1.pm to add **license terms** by copying it from an other plugin. Don't forget to put your name at the end of it :
|
Then, edit mode1.pm to add **license terms** by copying it from an other mode. Don't forget to put your name at the end of it:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
|
@ -161,7 +161,7 @@ Declare used libraries (always the same) :
|
||||||
use warnings;
|
use warnings;
|
||||||
use base qw(centreon::plugins::mode);
|
use base qw(centreon::plugins::mode);
|
||||||
|
|
||||||
The mode needs a **new** constructor to instantiate the object :
|
The mode needs a **new** constructor to instantiate the object:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
|
@ -175,13 +175,13 @@ The mode needs a **new** constructor to instantiate the object :
|
||||||
return $self;
|
return $self;
|
||||||
}
|
}
|
||||||
|
|
||||||
Mode version must be declared in the **new** constructor :
|
Mode version must be declared in the **new** constructor:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
$self->{version} = '1.0';
|
$self->{version} = '1.0';
|
||||||
|
|
||||||
Several options can be declared in the **new** constructor :
|
Several options can be declared in the **new** constructor:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
|
@ -192,7 +192,7 @@ Several options can be declared in the **new** constructor :
|
||||||
"option3" => { name => 'option3' },
|
"option3" => { name => 'option3' },
|
||||||
});
|
});
|
||||||
|
|
||||||
This the description of arguments of this example :
|
This the description of arguments of this example:
|
||||||
|
|
||||||
* option1 : String value
|
* option1 : String value
|
||||||
* option2 : String value with default value "value1"
|
* option2 : String value with default value "value1"
|
||||||
|
@ -201,7 +201,7 @@ This the description of arguments of this example :
|
||||||
.. tip::
|
.. tip::
|
||||||
You can have more informations about options format here : http://perldoc.perl.org/Getopt/Long.html
|
You can have more informations about options format here : http://perldoc.perl.org/Getopt/Long.html
|
||||||
|
|
||||||
The mode need a **check_options** method to validate options :
|
The mode need a **check_options** method to validate options:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
|
@ -211,7 +211,7 @@ The mode need a **check_options** method to validate options :
|
||||||
...
|
...
|
||||||
}
|
}
|
||||||
|
|
||||||
For example, Warning and Critical thresholds must be validate in **check_options** method :
|
For example, Warning and Critical thresholds must be validate in **check_options** method:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
|
@ -227,7 +227,7 @@ For example, Warning and Critical thresholds must be validate in **check_options
|
||||||
In this example, help is printed if thresholds have not a correct format.
|
In this example, help is printed if thresholds have not a correct format.
|
||||||
|
|
||||||
Then comes the **run** method, where you perform measurement, check thresholds, display output and format perfdatas.
|
Then comes the **run** method, where you perform measurement, check thresholds, display output and format perfdatas.
|
||||||
This is an example to check a snmp value :
|
This is an example to check a snmp value:
|
||||||
|
|
||||||
.. code-block:: perl
|
.. code-block:: perl
|
||||||
|
|
||||||
|
@ -254,8 +254,8 @@ This is an example to check a snmp value :
|
||||||
$self->{output}->exit();
|
$self->{output}->exit();
|
||||||
}
|
}
|
||||||
|
|
||||||
In this example, we check a snmp OID that we compare to wargning and critical thresholds.
|
In this example, we check a snmp OID that we compare to warning and critical thresholds.
|
||||||
There are the methods which we use :
|
There are the methods which we use:
|
||||||
|
|
||||||
* get_leef : get a snmp value from an OID
|
* get_leef : get a snmp value from an OID
|
||||||
* threshold_check : compare snmp value to warning and critical thresholds
|
* threshold_check : compare snmp value to warning and critical thresholds
|
||||||
|
|
Loading…
Reference in New Issue