Monitoreo de Licencias · 4 min read · Jan 13, 2026
Monitoreo de Licencias Flexnet Con rrdtool - Página 2
4. Creando los gráficos
Los gráficos se pueden crear fácilmente con la ayuda del programa rrdcgi, que está en el paquete rrdtool. La creación se realiza solo bajo demanda para ahorrar ciclos de CPU, debes crear algunos scripts CGI con etiquetas RRD:: especiales, que son interpretadas por rrdcgi.
Mi script CGI se ve así:
#!/usr/bin/rrdcgi
Uso de Licencias Prod1
Uso de Licencias Prod1 en
'
-s -24hours -w 600 -h 200 -W gbi@localhost@localdomain
-v "Licencias usadas" --lazy
--title "Usuarios 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>
Para más detalles, consulta las páginas del manual de rrdcgi y rrdgraph.
Este es un ejemplo de un gráfico de estilo MRTG bien conocido:

No hay mucho que ver aquí.
El script anterior fue mi primer enfoque simple. La idea era implementar un conjunto de scripts para cada producto y para diferentes períodos, uno para diario, uno para semanal, uno para mensual y uno para anuales. Pero esto lleva a una inundación de scripts que son casi idénticos. Después de otra mirada en la documentación de rrdcgi, se encontró otra posibilidad, que lleva a una solución con un script por producto y botones de opción para la selección interactiva del período de tiempo de interés. El script se ve así:
#!/usr/bin/rrdcgi
Uso de Licencias Prod1
Uso de Licencias Prod1 en
Período de tiempo
.png
--imginfo '
'
-s - -w 600 -h 200
-W [email protected]
-v "Licencias usadas" --lazy
--title "Usuarios 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>
Los botones de opción sobre los gráficos para seleccionar el período de tiempo se ven así:

5. Creación de las bases de datos rrd
Hay un tema que no he mencionado hasta ahora, cómo se crean las bases de datos rrd. He utilizado, como puedes imaginar, otro script. Se ve así:
#!/usr/bin/python
# Script para crear todas las bases de datos rrd para todas las instancias de licencias
# de una manera compatible con mrtg
import sys, string, rrdtool
search = [ { 'term':"Usuarios de CL:", 'val':10, 'max':5, 'db':'CL' },
{ 'term':"Usuarios de xyzabc:", 'val':10, 'max':5, 'db':'xyzabc' },
{ 'term':"Usuarios 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' )Por supuesto, debes ajustar esto a tus necesidades.
6. Otro script CGI
Para facilitar aún más el manejo del sistema Flexnet y los usuarios que necesitan alquilar una licencia para hacer su trabajo, se creó otro script CGI. Se utiliza para mostrar quién ha alquilado cuántas licencias, es solo la salida de “lmutil lmstat -a”, pero sin iniciar sesión en un sistema donde lmutil esté instalado. Pero ten en cuenta que esto puede chocar con la protección de la privacidad en tu empresa, porque la información personal es accesible libremente. Así que puede que tengas que proteger la ejecución de este script con algún mecanismo de autenticación, pero este tema no se cubre en este tutorial.
El script es nuevamente un script dash como el de el capítulo 2, puedes consultar más de un producto en más de un servidor, si se implementa de acuerdo. También es un llamado here-script, que es un tipo especial y raramente utilizado de script de shell. Nuevamente, siéntete libre de ajustarlo a tus necesidades:
#!/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
Estado de Licencia $PROD
Estado de Licencia $PROD
EOM
/usr/local/bin/lmutil lmstat -c $PORT@LICENSESERVER -a
/bin/cat << EOM
14.6.2010
EOM
Simplemente copia este script en el directorio cgi-bin de tu servidor web ( /usr/lib/cgi-bin en mi caso), hazlo legible y ejecutable para todos, no olvides cargar el módulo CGI de tu servidor web (si tiene uno, o no está cargado ya), y estarás listo para despegar. La salida se ve así:

Este script se llama en tu navegador web con una URL como:
http://server/cgi-bin/licstate.cgi?prod2Así que puedes seleccionar uno de varios productos simplemente proporcionando un “parámetro de línea de comando” al script CGI.
Al proporcionar un script como este a los usuarios de productos donde las licencias disponibles tienden a estar casi al máximo todo el tiempo, es fácil que los usuarios manejen sus problemas relacionados con el uso de licencias entre ellos, y no hay necesidad de que el administrador esté involucrado en absoluto ;-).
7. URLs
- 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/
- Mi Appliance de Monitoreo de Red: https://www.howtoforge.com/network-monitoring-appliance
Recibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.