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:

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
.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ì:

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
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ì:

Questo script viene chiamato nel tuo browser web con un URL come:
http://server/cgi-bin/licstate.cgi?prod2Quindi 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
- MRTG: http://oss.oetiker.ch/mrtg/
- RRDTOOL: http://oss.oetiker.ch/rrdtool/
- Apache: http://httpd.apache.org/
- THTTPD: http://www.acme.com/software/thttpd/
- DASH: http://gondor.apana.org.au/~herbert/dash/
- Python: http://www.python.org/
- Il mio dispositivo di monitoraggio di rete: https://www.howtoforge.com/network-monitoring-appliance
Ricevi i nuovi post nella tua casella di posta.
Nessuno spam. Disiscriviti in qualsiasi momento.