2010-02-25 18:25:38 : Gros plan sur Visual TOM

Surveillance générique pour Dollar Universe

La mise en place de la surveillance est extrêmement simple à réaliser dans la mesure où les fichiers nécessaires sont déjà dans le répertoire des binaires.

Voici les etapes :
- Arrêt $U (non obligatoire)
- on utilise la bibliothèque libuxspv_com.so au lieu de libuxspv.com dans uxexe/lib (on aurait pu tout aussi bien utiliser la surveillance patrol, tng, tivoli...)
- on crée un fichier d’environnement uxsetenv_com dans $UXMGR

Modifications des liens

- Connectez vous sur le noeud $U
- Aller dans uxexe
- Lister les bibliothèques de supervision :

cd $UXEXE/lib
ls -rtl /libuxspv*

Ce qui nous donne :

-rwxr-xr-x   1 root     other       6684 Dec 13  2005 libuxspv.so
-r-xr-xr-x   1 root     other       6684 Dec 13  2005 libuxspv.so_model
-rwxr-xr-x   1 root     other      10892 Dec 13  2005 libuxspv_tiv.so
-rwxr-xr-x   1 root     other      16016 Dec 13  2005 libuxspv_ito.so
-rwxr-xr-x   1 root     other    1560888 Dec 13  2005 libuxspv_pat.so
-r-xr-xr-x   1 root     other      13784 Dec 13  2005 libuxspv_com.so
-rwxr-xr-x   1 root     other       8360 Dec 13  2005 libuxspv_tv.so
-r-xr-xr-x   1 root     other      14204 Dec 13  2005 libuxspv_tng.so

$U appelle systématiquement libuxspv.so, le but du jeu est donc de remplacer cette bibliothèque par celle qui permettra de renvoyer les informations vers son outil de supervision.

Dans notre cas, on utilisera libuxspv_com.so qui correspond à la surveillance générique. Le changement peut être fait par simple copie ou par création d’un lien symbolique.

Exemple avec une création de lien :

rm libuxspv.so
ln -s libuxspv_com.so libuxspv.so

Variables d’environnement

La configuration de la surveillance se fait à travers des variables d’environnement qui l’on stockera dans le fichier uxsetenv_com.

Contenu du fichier uxsetenv_com :

#!/bin/ksh
#set -vx
# -----------------------------------------------------------------
# uxsetenv_com ? Environnement pour la supervision generique
# -----------------------------------------------------------------
# Description : Ce script positionne l'environnement necessaire au
#   fonctionnement de la supervision applicative generique de
#   Dollar Universe Non Stop Services.
# -----------------------------------------------------------------
export U_COM_SND_T=YES
export U_COM_SND_I=YES
export U_COM_SND_O=YES
export U_COM_SND_W=NO
export U_COM_SND_R=YES
export U_COM_SND_E=NO

export U_COM_WORD_R=Refuse
export U_COM_WORD_E=Demarre
export U_COM_WORD_W=Attente
export U_COM_WORD_O=Horaire depasse
export U_COM_WORD_I=Incidente
export U_COM_WORD_T=Termine

export U_COM_TRACE=n

export UXSPV_MSGJOB=$UXMGR/U_SPV_JOB

Dans ce fichier d’exemple, on ne traitera pas les évènements des uprocs en cours de démarrage et celles en attente. Suivant vos besoins, vous pouvez ajoutez ou supprimer d’autres types d’évènements.

Le mode TRACE permettra de suivre la communication entre le $U et votre script de surveillance.

La prise en compte de ces variables se fera à travers l’uxsetenv puisque ce dernier est systématiquement chargé.

Fin du fichier uxsetenv :

# Ajout de la supervision generique
. $UXMGR/uxsetenv_com

Script de supervision

Le script de surveillance proprement dit est indiqué par la variable globale UXSPV_MSGJOB.

Pour effectuer un minimum de modification sur les fichiers d’origine, j’ai simplement inclus un appel vers mon script Perl.

Contenu du fichier U_SPV_JOB :

#!/bin/ksh
#set -vx
# -----------------------------------------------------------------
# U_SPV_JOB ? Supervision generique
# -----------------------------------------------------------------
# Description : This script receives a message each time a status
#   transition is detected for a Dollar Universe job. This script
#   sends the incoming message to your supervision tool.
# -----------------------------------------------------------------
# -----------------------------------------------------------------
# Positionnement de l'environnement Dollar Universe
. $UXMGR/uxsetenv

# Environnement TNG
AGENTWORKS_DIR=MON_AGENT_TNG
export AGENTWORKS_DIR
if [ -f ${AGENTWORKS_DIR}/scripts/envset ]
then
 . $AGENTWORKS_DIR/scripts/envset
fi

# Positionnement de variables, eventuellement en fonction du contexte
echo ---------------------------------------------------------------->>$UXLOG/u_spv_job.log
echo $1 >> $UXLOG/u_spv_job.log
exec $UXMGR/spv2tng.pl "$1" >>$UXLOG/u_spv_job.log

# -----------------------------------------------------------------

Dans cet exemple, j’utilise l’exécutable awtrap fournit par CA, cet outil se trouve dans un répertoire "MON_AGENT_TNG", cela peut être un autre outil (ou bien un envoi de mail sur des jobs critiques ou la création d’un log particulier...), dans tous les cas on profite de ce script pour initialiser l’environnement.

Script de connexion

Le script perl se charge de traiter l’information fournie par le SPV pour l’envoyer en trap. Le script perl recupère les infirmations, puis fais un uxlst ctl qu’il envoie sous forme de trap. Quel est l’interet de refaire un uxlst ctl ? Simplement pour avoir l’ensemble des informations (jalon, noeud, user...).

Les 2 méthodes renvoient la même chaîne de caractères, mise à part que la deuxième complète les espaces avec les données du suivi d’exploitation.

L’aspect performance est discutable et la mise en place déconseillé pour les noeuds chargés mais dans l’exemple est intéressant dans la mesure où l’on souhaite remonter nu maximum d’informations.

Script spv2tng.pl :

#!/usr/bin/perl
@Infos = split(" ",$ARGV[0]);

# 2 formats : avec ou sans uproc
if ($#Infos==11) {
      ($dummy, $status, $job, $ses, $upr, $mu, $date, $time, $nupr, $nses, $soc, $s) = @Infos;
}
else {
      ($dummy, $status, $job, $upr, $mu, $date, $time, $nupr, $nses, $soc, $s) = @Infos;
}

# On en fait une ligne de suivi d'exploitation
# BIRJGPSG   BIRGPSG    T_BIR01    TERMINE               20070413   1100 20070413   1100
birexptt   SYS_BATCH                       2107   100 0009018 0016326 20070413   birexplo     000  000  99  00162
21
# Methode 1 :  sprintf. probleme : il manque des infos (reprise, jalon...)
#$res = "sprintf(" %10s %10s %10s %21s %10s %4s %10s %4s                           %10s %31s %6s %03d %07d %07d %1
0s %12s %03d  %03d  %02d  %07d");

# Methode 2 : on refait un uxlst
$uxlst = `$ENV{UXEXE}/uxlst ctl full ses=$ses upr=$upr mu=$mu nupr=$nupr nsess=$nses`;

@UX = split("\n",$uxlst);
$line = $UX[4];

##########################################################
# Envoi de trap

$host = 'DESTINATAIRE DES TRAPS';

print STDERR "$line\t$host\n";
`awtrap -h $host -p 162 -c public 1.3.6.1.4.1.311 6 . 1.3.6.1.4.1.311 -s "$line"` ;

Du côté serveur, on devrait récpetionner des messages de ce type : %CATD_I_060, SNMPTRAP: -c public 311 IP_SOURCE MACHINE 6 0 11:56:52 2 OID: 1.3.6.1.4.1.311 .iso.org.dod.internet.private.enterprises.microsoft VALUE:  IU_TEST    TEST       T_IU       INCIDENTE             13/04/2007 1743 13/04/2007 1743                           global     SYS_BATCH                       0067   100 0000271 0000303 13/04/2007 uniexp_a     000  000  00  0000313 OID: 1.3.6.1.3.1057.1 .iso.org.dod.internet.experimental.1057.1 VALUE: IP_SOURCE

Article

La remontée d’informations vers un outil de surveillance de surveillance se fait à travers des bibliothèques dynamiques, chaque connecteur est dédié à un outil de surveillance (HP openview, TNG, Patrol...) mais le connecteur le plus intéressant est certainement celui de la supervision générique car il va permettre la mise en place d’une surveillance personnalisée.

Date : 21 janvier 2010
Visites : 579
Auteur : E. Angenault
Site : Angenault.net

Téléchargement

  • Supervison générique
    PDF | 4 juillet 2008 | 16.6 ko

Accès rapide

Article d’actualité publié en première page du site.

Open Source Scheduler en tant qu’agent distant
Cet article présente une architecture "agentless" avec un agent open source. Le terme d’agentless signifiant que l’agent n’est pas un agent de l’éditeur. La solution habituellement préconisée repose sur une commande distante (...)
Communiquer avec le RCS
Le Remote Commande Server est un composant, installé sur chaque agent, permettant de réaliser des opérations à distance. Communiquer avec lui permet de bénéficier d’un outil distant multi-plateforme.
Gros plan sur Visual TOM
La dernière présentation à laquelle j’avais assisté remontait à 2005, il était temps de se mettre à jour, j’ai donc profité de l’invitation d’Absyss pour faire un point sur les versions et les améliorations apportées depuis la (...)
Jobs cycliques déportés
Cet article est l’un des premiers de la série "Cas pratique", cette série concerne des sujets traités chez nos clients mais qui peuvent servir sur d’autres sites. Ils sont représentatifs des problématiques que l’on peut rencontrer (...)
Présentation OpCon/xps 4.0
Lors du "SMA customer day" du 23 Octobre, SMA nous a présenté la version 4.0 considérée comme une version majeure. La présentation s’est effectivement révélée à la hauteur de l’annonce avec une bonne partie dédiée à la partie interface (...)

Dossier

$U peut être connecté à différents outils de supervision mais aussi à des systèmes génériques tels que l’envoi de trap SNMP ou l’exécution de script maisons.

Téléchargement

  • Supervison générique
    PDF | 4 juillet 2008 | 16.6 ko

Architecture