Surveillance des licences · 4 min read · Jan 13, 2026

Surveillance des licences Flexnet avec rrdtool - Page 2

4. Création des graphiques

Les graphiques peuvent facilement être créés avec l’aide du programme rrdcgi, qui se trouve dans le paquet rrdtool. La création se fait alors uniquement à la demande pour économiser des cycles CPU, vous devez créer quelques scripts CGI avec des balises RRD:: spéciales, qui sont interprétées par rrdcgi.

Mon script CGI ressemble à ceci :

#!/usr/bin/rrdcgi


Utilisation des licences Prod1

Utilisation des licences Prod1 à

' -s -24hours -w 600 -h 200 -W gbi@localhost@localdomain -v "Licences utilisées" --lazy --title "Utilisateurs de CL" -l 0 -Y DEF:value=/var/rrd/CL.rrd:value:MAX DEF:total=/var/rrd/CL.rrd:total:MAX AREA:value#660000 LINE3:total#FF00FF>

Pour plus de détails, consultez les pages de manuel de rrdcgi et rrdgraph.

Voici un exemple d’un graphique de style MRTG bien connu :

Utilisation quotidienne des licences

Pas grand-chose ici.

Le script ci-dessus était ma première approche simple. L’idée était de mettre en œuvre un ensemble de scripts pour chaque produit et pour différentes périodes, un pour quotidien, un pour hebdomadaire, un pour mensuel et un pour les aperçus annuels. Mais cela conduit à une inondation de scripts presque identiques. Après un autre examen de la documentation de rrdcgi, une autre possibilité a été trouvée, menant à une solution avec un script par produit et des boutons radio pour la sélection interactive de la période d’intérêt. Le script ressemble à ceci :

#!/usr/bin/rrdcgi


Utilisation des licences Prod1

Utilisation des licences Prod1 à

Période de temps

Quotidien, Hebdomadaire, Mensuel, Annuel.

.png --imginfo '' -s - -w 600 -h 200 -W [email protected] -v "Licences utilisées" --lazy --title "Utilisateurs de CL" -l 0 -Y DEF:value=/var/rrd/CL.rrd:value:MAX DEF:total=/var/rrd/CL.rrd:total:MAX AREA:value#660000 LINE3:total#FF00FF>

Les boutons radio au-dessus des graphiques pour sélectionner la période de temps ressemblent à ceci :

Boutons radio

5. Création des bases de données rrd

Il y a un sujet que je n’ai pas mentionné jusqu’à présent, comment les bases de données rrd sont créées. J’ai utilisé, vous le sentez, un autre script. Il ressemble à ceci :

#!/usr/bin/python
# Script pour créer toutes les bases de données rrd pour toutes les instances de licences 
# d'une manière compatible avec mrtg


import sys, string, rrdtool

search = [ { 'term':"Utilisateurs de CL:", 'val':10, 'max':5, 'db':'CL' },
           { 'term':"Utilisateurs de xyzabc:", 'val':10, 'max':5, 'db':'xyzabc' },
           { 'term':"Utilisateurs de qwerty:", 'val':10, 'max':5, 'db':'qwerty' } ]


for x in search:

      rrdtool.create( '/var/rrd/' + x[ 'db' ] + '.rrd', '-s 300', \
    'DS:value:GAUGE:600:U:U', 'DS:total:GAUGE:600:U:U', \
        'RRA:MAX:0.5:1:600', 'RRA:MAX:0.5:6:700', 'RRA:MAX:0.5:24:775', \
    'RRA:MAX:0.5:288:797' )

Bien sûr, vous devez l’ajuster à vos besoins.

6. Un autre script CGI

Pour faciliter davantage la gestion du système Flexnet et des utilisateurs qui ont besoin de louer une licence pour faire leur travail, un autre script CGI a été créé. Il est utilisé pour montrer qui a loué combien de licences, c’est seulement la sortie de “lmutil lmstat -a”, mais sans se connecter à un système où lmutil est installé. Mais attention, cela peut entrer en conflit avec la protection de la vie privée dans votre entreprise, car les informations personnelles sont librement accessibles. Vous devrez donc peut-être protéger l’exécution de ce script avec un mécanisme d’authentification, mais ce sujet n’est pas couvert dans ce tutoriel.

Le script est à nouveau un script dash comme celui du chapitre 2, vous pouvez interroger plus d’un produit sur plus d’un serveur, si cela est mis en œuvre en conséquence. C’est aussi un soi-disant here-script, qui est un type spécial et rarement utilisé de script shell. Encore une fois, n’hésitez pas à l’ajuster à vos besoins :

#!/bin/dash

case $1 in
        prod1)          PORT=27000; PROD="Prod1";;
        prod2)          PORT=27002; PROD="Prod2";;
        prod3)          PORT=27042; PROD="Prod3";;
        *|prod4)        PORT=27001; PROD="Prod4";;
esac

echo Content-type: text/html
echo ""

/bin/cat << EOM

État des licences $PROD





État des licences $PROD


EOM

/usr/local/bin/lmutil lmstat -c $PORT@LICENSESERVER -a

/bin/cat << EOM


GBi

14.6.2010 EOM

Il suffit de copier ce script dans le répertoire cgi-bin de votre serveur web ( /usr/lib/cgi-bin dans mon cas), de le rendre lisible et exécutable par tous, n’oubliez pas de charger le module CGI de votre serveur web (s’il en a un, ou s’il n’est pas déjà chargé), et vous êtes prêt à partir. La sortie ressemble à ceci :

État des licences

Ce script est appelé dans votre navigateur web avec une URL comme :

http://server/cgi-bin/licstate.cgi?prod2

Ainsi, vous pouvez sélectionner l’un des plusieurs produits simplement en fournissant un “paramètre de ligne de commande” au script CGI.

En fournissant un script comme celui-ci aux utilisateurs de produits où les licences disponibles tendent à être presque maximisées tout le temps, il est facile que les utilisateurs gèrent leurs problèmes concernant l’utilisation des licences entre eux, et il n’est pas nécessaire que l’administrateur soit impliqué du tout ;-).

7. URLs

Share: X/Twitter LinkedIn

Recevez de nouveaux articles dans votre boîte de réception.

Aucun spam. Désabonnez-vous à tout moment.