Monitoraggio Licenze · 4 min read · Jan 13, 2026

Monitoraggio delle licenze Flexnet con rrdtool - Pagina 2

4. Creazione dei grafici

I grafici possono essere facilmente creati con l’aiuto del programma rrdcgi, che è nel pacchetto rrdtool. La creazione viene quindi effettuata solo su richiesta per risparmiare cicli CPU, è necessario creare alcuni script CGI con tag RRD:: speciali, che vengono interpretati da rrdcgi.

Il mio script CGI appare così:

#!/usr/bin/rrdcgi


Utilizzo Licenze Prod1

Utilizzo Licenze Prod1 alle

' -s -24hours -w 600 -h 200 -W gbi@localhost@localdomain -v "Licenze utilizzate" --lazy --title "Utenti di 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>

Per dettagli vedere le manpages di rrdcgi e rrdgraph.

Questo è un esempio di un grafico in stile MRTG ben noto:

Utilizzo giornaliero delle licenze

Non c’è molto da vedere qui.

Lo script sopra era il mio primo approccio semplice. L’idea era di implementare un insieme di script per ogni prodotto e per diversi periodi, uno per il giornaliero, uno per il settimanale, uno per il mensile e uno per le panoramiche annuali. Ma questo porta a un’inondazione di script quasi identici. Dopo un’altra occhiata alla documentazione di rrdcgi è stata trovata un’altra possibilità, che porta a una soluzione con uno script per prodotto e pulsanti di opzione per la selezione interattiva del periodo di interesse. Lo script appare così:

#!/usr/bin/rrdcgi


Utilizzo Licenze Prod1

Utilizzo Licenze Prod1 alle

Periodo di tempo

Giornaliero, Settimanale, Mensile, Annuale.

.png --imginfo '' -s - -w 600 -h 200 -W [email protected] -v "Licenze utilizzate" --lazy --title "Utenti di 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>

I pulsanti di opzione sopra i grafici per selezionare il periodo di tempo appaiono così:

Pulsanti di opzione

5. Creazione dei database rrd

C’è un argomento che non ho menzionato finora, come vengono creati i database rrd. Ho usato, lo senti, un altro script. Appare così:

#!/usr/bin/python
# Script per creare tutti i db rrd per tutte le istanze di licenze 
# in modo compatibile con mrtg


import sys, string, rrdtool

search = [ { 'term':"Utenti di CL:", 'val':10, 'max':5, 'db':'CL' },
           { 'term':"Utenti di xyzabc:", 'val':10, 'max':5, 'db':'xyzabc' },
           { 'term':"Utenti di 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' )

Naturalmente, è necessario adattarlo alle proprie esigenze.

6. Un altro script CGI

Per facilitare ulteriormente la gestione del sistema Flexnet e degli utenti che devono noleggiare una licenza per svolgere il proprio lavoro, è stato creato un altro script CGI. Viene utilizzato per mostrare chi ha noleggiato quante licenze, è solo l’output di “lmutil lmstat -a”, ma senza accedere a un sistema in cui lmutil è installato. Ma fai attenzione, questo potrebbe scontrarsi con la protezione della privacy nella tua azienda, poiché le informazioni personali sono liberamente accessibili. Quindi potresti dover proteggere l’esecuzione di questo script con qualche meccanismo di autenticazione, ma questo argomento non è trattato in questo tutorial.

Lo script è di nuovo uno script dash come quello nel capitolo 2, puoi interrogare più di un prodotto su più di un server, se implementato di conseguenza. È anche un cosiddetto here-script, che è un tipo speciale e raramente usato di shellscript. Ancora una volta, sentiti libero di adattarlo alle tue esigenze:

#!/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

Stato Licenze $PROD





Stato Licenze $PROD


EOM

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

/bin/cat << EOM


GBi

14.6.2010 EOM

Basta copiare questo script nella directory cgi-bin del tuo server web ( /usr/lib/cgi-bin nel mio caso), renderlo leggibile ed eseguibile da tutti, non dimenticare di caricare il modulo CGI del tuo server web (se ne ha uno, o non è già caricato), e sei pronto per decollare. L’output appare così:

Stato della licenza

Questo script viene chiamato nel tuo browser web con un URL come:

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

Quindi puoi selezionare uno di diversi prodotti semplicemente fornendo un “parametro della riga di comando” allo script CGI.

Fornendo uno script come questo agli utenti di prodotti in cui le licenze disponibili tendono a essere quasi esaurite tutto il tempo, è facile che gli utenti gestiscano i loro problemi riguardanti l’uso delle licenze tra di loro, e non c’è bisogno che l’amministratore sia coinvolto affatto ;-).

7. URL

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.