Doc review (for real)

This commit is contained in:
Quentin Delance 2015-01-05 14:30:13 +01:00
parent e668fca623
commit 9d8be1f6d4
2 changed files with 184 additions and 180 deletions

View File

@ -4,8 +4,8 @@ Description
This document introduces the best practices in the development of "centreon-plugins".
As all plugins are written in Perl, “there is more than on way to do it”.
But to not reinvent the wheel, you should first take a look at the “example” directory, you will get an overview of how to build your own plugin and associated modes.
As all plugins are written in Perl, “there is more than one way to do it”.
But to avoid reinventing the wheel, you should first take a look at the “example” directory, you will get an overview of how to build your own plugin and associated modes.
The lastest version is available on following git repository: http://git.centreon.com/centreon-plugins.git
@ -105,7 +105,7 @@ Several modes can be declared in the **new** constructor:
...
);
Then, Declare the module:
Then, declare the module:
.. code-block:: perl
@ -125,10 +125,10 @@ A description of the plugin is needed to generate the documentation:
.. tip::
you can copy-paste an other plugin.pm and adapt some lines (package, arguments...).
You can copy-paste an other plugin.pm and adapt some lines (package, arguments...).
.. tip::
plugin has ".pm" extension because it's a perl module. So don't forget to add **1;** at the end of the file
The plugin has ".pm" extension because it's a Perl module. So don't forget to add **1;** at the end of the file.
-------------
Mode creation
@ -192,7 +192,7 @@ Several options can be declared in the **new** constructor:
"option3" => { name => 'option3' },
});
This the description of arguments of this example:
Here is the description of arguments used in this example:
* option1 : String value
* option2 : String value with default value "value1"
@ -224,9 +224,9 @@ For example, Warning and Critical thresholds must be validate in **check_options
$self->{output}->option_exit();
}
In this example, help is printed if thresholds have not a correct format.
In this example, help is printed if thresholds do not have 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 performance datas.
This is an example to check a snmp value:
.. code-block:: perl
@ -257,8 +257,8 @@ This is an example to check a snmp value:
In this example, we check a snmp OID that we compare to warning and critical thresholds.
There are the methods which we use:
* get_leef : get a snmp value from an OID
* threshold_check : compare snmp value to warning and critical thresholds
* get_leef : get a SNMP value from an OID
* threshold_check : compare SNMP value to warning and critical thresholds
* output_add : add output
* perfdata_add : add perfdata to output
* display : display output
@ -286,9 +286,9 @@ A description of the mode and its arguments is needed to generate the documentat
Commit and push
---------------
Before commit the plugin, you need to create an **enhancement ticket** on the centreon-plugins forge : http://forge.centreon.com/projects/centreon-plugins
Before committing the plugin, you need to create an **enhancement ticket** on the centreon-plugins forge : http://forge.centreon.com/projects/centreon-plugins
Once plugin and modes are developed, you can commit and push your work :
Once plugin and modes are developed, you can commit (commit messages in english) and push your work :
::
git add path/to/plugin
@ -305,7 +305,7 @@ This chapter describes centreon libraries which you can use in your development.
Output
------
This library allows you to change output of your plugin.
This library allows you to build output of your plugin.
output_add
----------
@ -408,9 +408,9 @@ Output displays :
OK - Memory is ok | 'memory_used'=30000000B;80000000;90000000;0;100000000
-------
Perdata
-------
--------
Perfdata
--------
This library allows you to manage performance data.
@ -576,8 +576,8 @@ Output displays :
Snmp
----
This library allows you to use snmp protocol in your plugin.
To use it, Add the following line at the beginning of your **plugin.pm** :
This library allows you to use SNMP protocol in your plugin.
To use it, add the following line at the beginning of your **plugin.pm**:
.. code-block:: perl
@ -590,7 +590,7 @@ get_leef
Description
^^^^^^^^^^^
Return hash table table of SNMP values for multiple OIDs (Do not work with SNMP table).
Return hash table table of SNMP values for multiple OIDs (do not work with SNMP table).
Parameters
^^^^^^^^^^
@ -608,7 +608,7 @@ Parameters
Example
^^^^^^^
This is an example of how to get 2 snmp values :
This is an example of how to get 2 SNMP values:
.. code-block:: perl
@ -627,7 +627,7 @@ load
Description
^^^^^^^^^^^
Load a range of oids to use with **get_leef** method.
Load a range of OIDs to use with **get_leef** method.
Parameters
^^^^^^^^^^
@ -649,7 +649,7 @@ Parameters
Example
^^^^^^^
This is an example of how to get 4 instances of a snmp table by using **load** method :
This is an example of how to get 4 instances of a SNMP table by using **load** method:
.. code-block:: perl
@ -662,7 +662,7 @@ This is an example of how to get 4 instances of a snmp table by using **load** m
use Data::Dumper;
print Dumper($result);
This is an example of how to get multiple instances dynamically (memory modules of dell hardware) by using **load** method :
This is an example of how to get multiple instances dynamically (memory modules of Dell hardware) by using **load** method:
.. code-block:: perl
@ -702,7 +702,7 @@ Parameters
+-----------------+----------------------+----------------+--------------------------------------------------------------+
| end | Int | | Last OID to check. |
+-----------------+----------------------+----------------+--------------------------------------------------------------+
| dont_quit | Int (0 or 1) | 0 | Don't quit even if an snmp error occured. |
| dont_quit | Int (0 or 1) | 0 | Don't quit even if an SNMP error occured. |
+-----------------+----------------------+----------------+--------------------------------------------------------------+
| nothing_quit | Int (0 or 1) | 0 | Quit if no value is returned. |
+-----------------+----------------------+----------------+--------------------------------------------------------------+
@ -712,7 +712,7 @@ Parameters
Example
^^^^^^^
This is an example of how to get a snmp table :
This is an example of how to get a SNMP table:
.. code-block:: perl
@ -742,7 +742,7 @@ Parameters
| **oids** | Hash table | | Hash table of OIDs to check (Can be set by 'load' method). |
| | | | Keys can be: "oid", "start", "end". |
+-----------------+----------------------+----------------+--------------------------------------------------------------+
| dont_quit | Int (0 or 1) | 0 | Don't quit even if an snmp error occured. |
| dont_quit | Int (0 or 1) | 0 | Don't quit even if an SNMP error occured. |
+-----------------+----------------------+----------------+--------------------------------------------------------------+
| nothing_quit | Int (0 or 1) | 0 | Quit if no value is returned. |
+-----------------+----------------------+----------------+--------------------------------------------------------------+
@ -752,7 +752,7 @@ Parameters
Example
^^^^^^^
This is an example of how to get 2 snmp tables :
This is an example of how to get 2 SNMP tables:
.. code-block:: perl
@ -889,7 +889,6 @@ Output displays :
::
Hello world !
Hello world !
change_seconds
@ -1001,7 +1000,7 @@ Example
^^^^^^^
This is an example of how to use **execute** method.
We suppose --remote option is enable :
We suppose ``--remote`` option is enabled:
.. code-block:: perl
@ -1056,7 +1055,7 @@ This is an example of how to use **windows_execute** method.
command_path => '',
command_options => '/all');
Output displays ip configuration on a Windows host.
Output displays IP configuration on a Windows host.
---------
@ -1064,7 +1063,7 @@ Statefile
---------
This library provides a set of methods to use a cache file.
To use it, Add the following line at the beginning of your **mode** :
To use it, add the following line at the beginning of your **mode**:
.. code-block:: perl
@ -1181,7 +1180,7 @@ This is an example of how to use **write** method :
$new_datas->{last_timestamp} = time();
$self->{statefile_value}->write(data => $new_datas);
Then, you can take a look to '/var/lib/centreon/centplugins/my_cache_file', timestamp is written in it.
Then, you can read the result in '/var/lib/centreon/centplugins/my_cache_file', timestamp is written in it.
----
@ -1189,7 +1188,7 @@ Http
----
This library provides a set of methodss to use HTTP protocol.
To use it, Add the following line at the beginning of your **mode** :
To use it, add the following line at the beginning of your **mode**:
.. code-block:: perl
@ -1256,7 +1255,7 @@ Dbi
---
This library allows you to connect to databases.
To use it, Add the following line at the beginning of your **plugin.pm** :
To use it, add the following line at the beginning of your **plugin.pm**:
.. code-block:: perl
@ -1367,7 +1366,7 @@ fetchall_arrayref
Description
^^^^^^^^^^^
Return Array from sql query.
Return Array from SQL query.
Parameters
^^^^^^^^^^
@ -1406,7 +1405,7 @@ fetchrow_hashref
Description
^^^^^^^^^^^
Return Hash table from sql query.
Return Hash table from SQL query.
Parameters
^^^^^^^^^^
@ -1785,7 +1784,7 @@ This is an example of command line :
$ perl centreon_plugins.pl --plugin apps::pfsense::snmp::plugin --mode memory-dropped-packets --hostname 192.168.0.1 --snmp-community 'public' --snmp-version '2c' --warning '1' --critical '2'
Output may displays :
Output may display:
::
OK: Dropped packets due to memory limitations : 0.00 /s | dropped_packets_Per_Sec=0.00;0;;1;2

View File

@ -4,7 +4,7 @@ Description
Ce document présente les bonnes pratiques pour le développement de "centreon-plugins".
Comme tous les plugins sont écrits en Perl, “il y plus d'une façon de faire”.
Mais pour ne pas réinventer la roue, vous devirez d'abord regarder le dossier “example”, vous aurez alors un aperçu de comment construire votre propre plugin ainsi que ses modes associés.
Mais pour ne pas réinventer la roue, vous devriez d'abord regarder le dossier “example”, vous aurez alors un aperçu de comment construire votre propre plugin ainsi que ses modes associés.
La dernière version est disponible sur le dépôt git suivant: http://git.centreon.com/centreon-plugins.git
@ -94,7 +94,7 @@ La version du plugin doit être déclarée dans le constructeur **new**:
$self->{version} = '0.1';
Plusieurs mode peuvent être déclarés dans le constructeur **new**:
Plusieurs modes peuvent être déclarés dans le constructeur **new** :
.. code-block:: perl
@ -124,10 +124,10 @@ Une description du plugin est nécessaire pour générer la documentation:
.. tip::
you can copy-paste an other plugin.pm and adapt some lines (package, arguments...).
TODO you can copy-paste an other plugin.pm and adapt some lines (package, arguments...).
.. tip::
plugin has ".pm" extension because it's a perl module. So don't forget to add **1;** at the end of the file
TODO plugin has ".pm" extension because it's a perl module. So don't forget to add **1;** at the end of the file
----------------
Création du mode
@ -174,7 +174,7 @@ Le mode nécessite un constructeur **new** pour instancier l'objet:
return $self;
}
La version du mode doit être déclaré dans le constructeur **new**:
La version du mode doit être déclarée dans le constructeur **new** :
.. code-block:: perl
@ -198,7 +198,7 @@ Voici la description des arguments de cet exemple:
* option3 : Booléen
.. tip::
Vous pouvez obtenir plus d'informations sur les format des options ici : http://perldoc.perl.org/Getopt/Long.html
Vous pouvez obtenir plus d'informations sur les formats des options ici : http://perldoc.perl.org/Getopt/Long.html
Le mode nécessite une méthode **check_options** pour valider les options :
@ -210,7 +210,7 @@ Le mode nécessite une méthode **check_options** pour valider les options:
...
}
Par exemple, les seuils dégradé et critique doivent être validés dans la méthode **check_options**:
Par exemple, les seuils Dégradé (Warning) et Critique (Critical) doivent être validés dans la méthode **check_options** :
.. code-block:: perl
@ -226,7 +226,7 @@ Par exemple, les seuils dégradé et critique doivent être validés dans la mé
Dans cet exemple, l'aide est affichée si les seuils spécifiés ne sont pas au bon format.
Ensuite vient la méthode **run**, où vous effectuez le traitement, vérifiez les seuils, affichez le message de sortie et les données de performance.
Voici un exemple pour vérifier une valeur snmp:
Voici un exemple pour vérifier une valeur SNMP :
.. code-block:: perl
@ -253,7 +253,7 @@ Voici un exemple pour vérifier une valeur snmp:
$self->{output}->exit();
}
Dans cet exemple, nous vérifions un OID snmp que nous comparons aux seuils dégradé et critique.
Dans cet exemple, nous vérifions un OID SNMP que nous comparons aux seuils dégradé et critique.
Voici les méthodes que nous utilisons :
* get_leef : obtient une valeur snmp à partir d'un OID
@ -285,9 +285,9 @@ Une description du mode et ses arguments est nécessaire pour générer la docum
Commit et push
--------------
Avant de commiter le plugin, you devez créer un **ticket amélioration** dans le forge centreon-plugins : http://forge.centreon.com/projects/centreon-plugins
Avant de commiter le plugin, you devez créer un **ticket amélioration** (enhancement) dans la forge centreon-plugins : http://forge.centreon.com/projects/centreon-plugins
Une fois que le plugin et ses modes sont développés, vous pouvez commiter et pusher votre travail:
Une fois que le plugin et ses modes sont développés, vous pouvez commiter (messages de commit en anglais) et pusher votre travail :
::
git add path/to/plugin
@ -298,13 +298,13 @@ Une fois que le plugin et ses modes sont développés, vous pouvez commiter et p
Référentiel des bibliothèques
*****************************
Ce chapitre décrit les bibliothèques centreon qui peuvent être utilisés dans votre développement.
Ce chapitre décrit les bibliothèques Centreon qui peuvent être utilisées dans votre développement.
------
Output
------
Cette bibliothèque vous permet de modifier la sortie de votre plugin.
Cette bibliothèque vous permet de construire la sortie de votre plugin.
output_add
----------
@ -315,6 +315,8 @@ Description
Ajoute une chaîne de caractères à la sortie (affichée avec la méthode **display**).
Si le statut est différent de 'ok', le message de sortie associé à 'ok' n'est pas affiché.
TODO Est ce que ca n'est pas plutôt "Lorsque plusieurs statut et messages sont ajoutés, seuls les dernières valeurs sont affichées lors de l'appel à display" ?
Paramètres
^^^^^^^^^^
@ -358,7 +360,7 @@ perfdata_add
Description
^^^^^^^^^^^
Ajouter une donnée de performance à la sortie (affichée avec la méthode **display**).
Ajoute une donnée de performance à la sortie (affichée avec la méthode **display**).
Les données de performance sont affichées après le symbol '|'.
Paramètres
@ -407,9 +409,9 @@ La sortie affiche :
OK - Memory is ok | 'memory_used'=30000000B;80000000;90000000;0;100000000
-------
Perdata
-------
--------
Perfdata
--------
Cette bibliothèque vous permet de gérer les données de performance.
@ -492,7 +494,7 @@ Voici un exemple vérifiant si le seuil dégradé est correct:
}
.. tip::
Vous pouvez voir les bon format de seuil ici : https://nagios-plugins.org/doc/guidelines.html#THRESHOLDFORMAT
Vous pouvez voir les bon formats de seuils ici : https://nagios-plugins.org/doc/guidelines.html#THRESHOLDFORMAT
threshold_check
---------------
@ -541,7 +543,7 @@ change_bytes
Description
^^^^^^^^^^^
Convertie des bytes en unité de mesure lisible.
Convertit des bytes en unité de mesure lisible.
Retourne une valeur et une unité.
Paramètres
@ -575,7 +577,7 @@ La sortie affiche:
Snmp
----
Cette bibliothèque vous permet d'utiliser le protocole snmp dans votre plugin.
Cette bibliothèque vous permet d'utiliser le protocole SNMP dans votre plugin.
Pour l'utiliser, vous devez ajouter la ligne suivant au début de votre **plugin.pm** :
.. code-block:: perl
@ -607,7 +609,7 @@ Paramètres
Exemple
^^^^^^^
Voici un exemple pour obtenir 2 valeurs snmp:
Voici un exemple pour obtenir 2 valeurs SNMP :
.. code-block:: perl
@ -626,7 +628,7 @@ load
Description
^^^^^^^^^^^
Charge une liste d'oids à utiliser avec la méthode **get_leef**.
Charge une liste d'OIDs à utiliser avec la méthode **get_leef**.
Paramètres
^^^^^^^^^^
@ -642,13 +644,13 @@ Paramètres
+-----------------+----------------------+--------------+----------------------------------------------------------------------------+
| begin | Int | | Instance de début |
+-----------------+----------------------+--------------+----------------------------------------------------------------------------+
| end | Int | | Instance to fin |
| end | Int | | Instance de fin |
+-----------------+----------------------+--------------+----------------------------------------------------------------------------+
Exemple
^^^^^^^
Voici un exemple pour obtenir les 4 premières instances d'une table snmp en utilisant la méthode **load**:
Voici un exemple pour obtenir les 4 premières instances d'une table SNMP en utilisant la méthode **load** :
.. code-block:: perl
@ -711,7 +713,7 @@ Paramètres
Exemple
^^^^^^^
Voici un exemple pour obtenir une table snmp:
Voici un exemple pour obtenir une table SNMP :
.. code-block:: perl
@ -751,7 +753,7 @@ Paramètres
Exemple
^^^^^^^
Voici un exemple pour obtenir 2 tables snmp:
Voici un exemple pour obtenir 2 tables SNMP :
.. code-block:: perl
@ -868,7 +870,7 @@ Paramètres
+-----------------+-----------------+-------------+---------------------------------------------------------+
| Paramètre | Type | Défaut | Description |
+=================+=================+=============+=========================================================+
| **-** | String | | String to strip. |
| **-** | String | | TODO String to strip. |
+-----------------+-----------------+-------------+---------------------------------------------------------+
Exemple
@ -888,7 +890,6 @@ La sortie affiche:
::
Hello world !
Hello world !
change_seconds
@ -897,7 +898,7 @@ change_seconds
Description
^^^^^^^^^^^
Convertie des secondes en unité de mesure lisible.
Convertit des secondes en unité de mesure lisible.
Paramètres
^^^^^^^^^^
@ -1011,7 +1012,7 @@ Nous supposons que l'option ``--remote`` est activée:
command_path => '/bin/',
command_options => '-l');
Output displays files in /home using ssh on a remote host.
TODO Output displays files in /home using ssh on a remote host.
windows_execute
@ -1038,7 +1039,7 @@ Paramètres
+------------------+-----------------+-------------+-----------------------------------------------------------------+
| timeout | Int | | Timeout de la commande. |
+------------------+-----------------+-------------+-----------------------------------------------------------------+
| no_quit | Int | | Ne quitte pas même si une erreur snmp se produit. |
| no_quit | Int | | Ne quitte pas même si une erreur SNMP se produit. |
+------------------+-----------------+-------------+-----------------------------------------------------------------+
@ -1055,7 +1056,7 @@ Voici un exemple d'utilisation de la méthode **windows_execute**.
command_path => '',
command_options => '/all');
La sortie affiche la configuration ip d'un hôte Windows.
La sortie affiche la configuration IP d'un hôte Windows.
---------
@ -1152,7 +1153,7 @@ write
Description
^^^^^^^^^^^
Ecris des données dans le fichier de cache.
Ecrit des données dans le fichier de cache.
Paramètres
^^^^^^^^^^
@ -1180,7 +1181,7 @@ Voici un exemple d'utilisation de la méthode **write**:
$new_datas->{last_timestamp} = time();
$self->{statefile_value}->write(data => $new_datas);
Ensuite, vous pouvez jeter un oeil dans le fichier '/var/lib/centreon/centplugins/my_cache_file', le timestamp y est écris.
Ensuite, vous pouvez voir le résultat dans le fichier '/var/lib/centreon/centplugins/my_cache_file', le timestamp y est écrit.
----
@ -1224,7 +1225,7 @@ connect
Description
^^^^^^^^^^^
Teste la connection vers une url http.
Teste la connexion vers une url http.
Retourne le contenu de la page web.
Paramètres
@ -1267,15 +1268,17 @@ connect
Description
^^^^^^^^^^^
Se connecter à une ou plusieurs bases de données.
Se connecte à une ou plusieurs bases de données.
Paramètres
^^^^^^^^^^
TODO, sans doute pas SNMP dans le tableau ci dessous.
+-------------------+-----------------+-------------+---------------------------------------------------------+
| Paramètre | Type | Défaut | Description |
+===================+=================+=============+=========================================================+
| dontquit | Int (0 or 1) | 0 | Ne quitte pas même si une erreur snmp se produit. |
| dontquit | Int (0 or 1) | 0 | Ne quitte pas même si une erreur SNMP se produit. |
+-------------------+-----------------+-------------+---------------------------------------------------------+
Exemple
@ -1283,6 +1286,8 @@ Exemple
Voici un exemple d'utilisation de la méthode **connect**.
TODO format de la chaîne de connexion ?
Dans plugin.pm :
.. code-block:: perl
@ -1305,7 +1310,7 @@ query
Description
^^^^^^^^^^^
Exécute une requête sql sur la base de données.
Exécute une requête SQL sur la base de données.
Paramètres
^^^^^^^^^^
@ -1366,7 +1371,7 @@ fetchall_arrayref
Description
^^^^^^^^^^^
Retourne un tableau à partir d'une requête sql.
Retourne un tableau à partir d'une requête SQL.
Paramètres
^^^^^^^^^^
@ -1405,7 +1410,7 @@ fetchrow_hashref
Description
^^^^^^^^^^^
Retourne une table de hashage à partir d'une requête sql.
Retourne une table de hashage à partir d'une requête SQL.
Paramètres
^^^^^^^^^^
@ -1427,7 +1432,7 @@ Voici un exemple d'utilisation de la méthode **fetchrow_hashref**:
print $row->{datname}."\n";
}
La sortie affiche la liste des base de données Postgres.
La sortie affiche la liste des bases de données Postgres.
*****************
@ -1442,8 +1447,8 @@ Description
-----------
| Cet exemple explique comment vérifier une valeur SNMP unique sur un pare-feu PfSense (paquets supprimés pour cause de surcharge mémoire).
| Nous utilisons un fiçhier de cache car c'est un compteur SNMP. Nous avons donc besoin d'obtenir la valuer différentielle en tre 2 contrôles.
| Nous récupérons la valeur et la comparons aux seuils dégradé et critique.
| Nous utilisons un fichier de cache car c'est un compteur SNMP. Nous avons donc besoin d'obtenir la valeur différentielle entre 2 contrôles.
| Nous récupérons la valeur et la comparons aux seuils Dégradé et Critique.
Fichier du plugin
-----------------