Dans cet article


Offres d'emploi

Tags

Plugin de traitement d’information JBoss AS 7 pour Nagios

Plugin de traitement d’information JBoss AS 7 pour Nagios

Avec Jboss AS 7  il est difficile de trouver un plugin simple permettant à la fois de remonter les informations de monitoring et des graphiques de performances.

Pour cela il faut traiter les informations que nous remonte notre commande d’extraction (Voir l’article “Extraction des informations de monitoring JBoss AS 7”).

Le plugin permettra d’afficher les informations demandées et de remonter le graphique de chaque service sur Centreon.

Pour ce plugin nous travaillerons avec le langage perl, ce langage reprend des fonctionnalités du langage C et des langages de scripts sed, awk et shell(sh).

Ce langage est adapté au traitement et à la manipulation de fichiers texte, notamment du fait de l’intégration des Regex (Expressions régulières) dans la syntaxe même du langage.

Ce qu’il faut savoir

@_ permet la déclaration de variables ou de tableaux.

$_ suivi d’un mot permet de dire que le mot est une variable.

@_ suivi d’un mot signifie que ce mot est un tableau.

La commande split coupe une réponse en fonction du symbole désigné afin de le glisser dans les cellules d’un tableau.

Pour exploiter la cellule d’un tableau, il faut appeler le tableau comme variable en précisant la cellule voulu entre crochet à la fin de l’appellation.

<span >;</span>
<span >);</span>
<span >];</span></span>

Il faut toujours terminer par  “<span après une instruction sauf après une condition.

Mode opératoire

Il faut d’abord lui indiquer quel langage va interpréter notre script.

<span >#! /usr/bin/perl -w</span>

Ensuite il faut analyser la commande et transformer tout ce qui peut être modifié en variable.

<span >;
(</span><span >&nbsp;</span>

 Sans titre 2

Ce qui peut être changé sont :

– l’utilisateur            – le mot de passe          -le port          -le serveur          -l’argument

 

# Récupérer le fichier réponse#

<span >;
(</span><span >;</span>
<span >;</span>
<span >;</span>

 

Ensuite il faut faire un Regex afin de ne sélectionner que le  résultat dont il nous faut pour remonter des données de performances afin que Centreon (interface graphique améliorée des services de Nagios) les interprètes pour afficher les graphs.

Pour tester les Regex sous Perl j’ai choisi http://www.regexe.com.

<span >;
(</span><span >);</span>

Ensuite organiser la réponse dans un tableau afin de ne remonter que ce dont nous avons besoin.

Puis fait le traitement du résultat. Utiliser une boucle pour que toutes les cellules du tableau soit traitées en fonction de leurs nombres. On refait ensuite un autre regex pour retirer toutes les syntaxes qui pourrait nous gêner et on affiche le tout.

Le pipe (mot anglais, le tube “|”) permet de remonter les informations en données de performances, le point permet de concaténer les variables et les chaines de caractères.

Maintenant, le plus dur est fait, il faut ajouter des options au plugin pour lui permettre donner les valeurs aux variables à partir du terminal.

 

Afin que le plugin ne se lance pas s’il manque des informations il faut ajouter la commande “unless”.

Use Getopt ::Long ; permet d’attribuer aux variables la valeur des options.

On peut ajouter plus d’options comme l’affichage d’aide ou de la version du plugin.

 

Et ajouter en fin du plugin :

 

Ligne de commande

Une fois le plugin terminer lancer le en ligne de commande dans le dossier des plugins de Nagios, par default aller dans /usr/local/nagios/libexec/

Autoriser le plugin a s’exécuté : chmod 755 nom_de_mon_plugin.pl puis le plugin : ./nom_de_mon_plugin.pl

Le résultat devrait être de ce type : 

 

Sur centreon :

Aller dans Configuration –> Commandes –> Ajouter :

Complèter la page en vous aidant des listes déroulantes, selectionner le connecteur perl, et le modèle de graphique par default.

Puis ajouté un service de la même manière que pour la commande, l’attribuer à un Hôtes puis redémarrer.

Aller dans supervision cliquer sur le service et au bout de quelques minutes un graphique apparait.

Sans titre5

 

L'équipe AXOPEN

Voir aussi les articles suivants

JBOSS AS 7 : Correspondance CLI et webUI URL

Le 24/05/2013 par Alexandre Grondin

La puissante Command Line Interface Dans un article précédent nous avons vu que nous pouvions exploiter les informations de la CLI Jboss 7 directement en JSON via la management console. Vous trouverez très facilement sur le web les lignes de commandes pour le CLI et pour interroger les subsystems que vous souhaitez. Pour la syntaxe, on peut d’ailleurs s’aider de cette page très bien faite pour nous guider :
Lire l'article

Extraction des informations de monitoring JBoss AS 7

Le 24/05/2013 par Alexandre Grondin

MBean, JMX, CLI, Web… et monitoring Dans les précédentes versions de JBoss, il était très facile de récupérer des informations de monitoring via les MBean. Ce biais de récupération disparait dans JBoss 7 au profite du CLI et de la console web de management. Il est possible de récupérer les mêmes informations qu’auparavant simplement en se connectant par ces interfaces.  Nous allons voir comment récupérer par exemple une information qui me parait essentielle : L’état d’un datasource.
Lire l'article

Lazy Loading @Lob Hibernate

Lazy Loading @Lob Hibernate

Le 12/02/2013 par Alexandre Grondin

LazyLoading @Lob Hibernate 4 / JPA2 Dans la majorité des cas, posséder des blob dans une entity ne pose pas de problème majeur. Malheureusement, il existe des cas ou mapper ces champs peut induire une sérieuse perte de performance, spécialement lors de création de requêtes de recherche volumineuses. Exemple de mapping d’un blog avec JPA2: /** The documentimp. */ @Column(name="DOCUMENTIMP") @Lob() private byte[] documentimp;   Si vous exécuter une requête Critéria avec ce mapping, hibernate ramènera systématiquement le contenu du document ce qui n’est dans la majorité des cas pas nécessaire.
Lire l'article