Monitoramento de Licenças · 4 min read · Jan 13, 2026

Monitoramento de Licenças Flexnet Com rrdtool - Página 2

4. Criando os gráficos

Os gráficos podem ser facilmente criados com a ajuda do programa rrdcgi, que está no pacote rrdtool. A criação é feita apenas sob demanda para economizar ciclos de CPU, você precisa criar alguns scripts CGI com tags RRD:: especiais, que são interpretadas pelo rrdcgi.

Meu script CGI se parece com:

#!/usr/bin/rrdcgi


Uso de Licença Prod1

Uso de Licença Prod1 em

' -s -24hours -w 600 -h 200 -W gbi@localhost@localdomain -v "Licenças usadas" --lazy --title "Usuários 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 detalhes, consulte as páginas de manual do rrdcgi e rrdgraph.

Este é um exemplo de um gráfico no estilo MRTG:

Uso diário de licença

Não há muito acontecendo aqui.

O script acima foi minha primeira abordagem simples. A ideia era implementar um conjunto de scripts para cada produto e para diferentes períodos, um para diário, um para semanal, um para mensal e um para anuais. Mas isso leva a uma inundação de scripts quase idênticos. Após uma nova olhada na documentação do rrdcgi, outra possibilidade foi encontrada, levando a uma solução com um script por produto e botões de opção para seleção interativa do período de tempo de interesse. O script se parece com:

#!/usr/bin/rrdcgi


Uso de Licença Prod1

Uso de Licença Prod1 em

Período de tempo

Diário, Semanal, Mensal, Anual.

.png --imginfo '' -s - -w 600 -h 200 -W [email protected] -v "Licenças usadas" --lazy --title "Usuários 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>

Os botões de opção acima dos gráficos para selecionar o período de tempo se parecem com:

Botões de opção

5. Criação dos bancos de dados rrd

Há um tópico que não mencionei até agora, como os bancos de dados rrd são criados. Eu usei, você sente, outro script. Ele se parece com:

#!/usr/bin/python
# Script para criar todos os bancos de dados rrd para todas as instâncias de licenças 
# de uma maneira compatível com mrtg


import sys, string, rrdtool

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

Claro que você precisa ajustar isso às suas necessidades.

6. Outro script CGI

Para facilitar ainda mais o manuseio do sistema Flexnet e dos usuários que precisam alugar uma licença para fazer seu trabalho, outro script CGI foi criado. Ele é usado para mostrar quem alugou quantas licenças, é apenas a saída de “lmutil lmstat -a”, mas sem fazer login em um sistema onde o lmutil está instalado. Mas esteja ciente, isso pode colidir com a proteção de privacidade em sua empresa, porque informações pessoais são acessíveis livremente. Portanto, você pode ter que proteger a execução deste script com algum mecanismo de autenticação, mas este tópico não é abordado neste tutorial.

O script é novamente um script dash como o do capítulo 2, você pode consultar mais de um produto em mais de um servidor, se implementado de acordo. É também um chamado here-script, que é um tipo especial, raramente usado de shellscript. Novamente, sinta-se à vontade para ajustar às suas necessidades:

#!/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 da Licença $PROD





Estado da Licença $PROD


EOM

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

/bin/cat << EOM


GBi

14.6.2010 EOM

Basta copiar este script para o diretório cgi-bin do seu servidor web ( /usr/lib/cgi-bin no meu caso), torná-lo legível e executável para todos, não se esqueça de carregar o módulo CGI do seu servidor web (se ele tiver um, ou não estiver carregado já), e você está pronto para decolar. A saída se parece com:

Estado da licença

Este script é chamado em seu navegador web com uma URL como:

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

Assim, você pode selecionar um de vários produtos simplesmente fornecendo um “parâmetro de linha de comando” para o script CGI.

Ao fornecer um script como este para os usuários de produtos onde as licenças disponíveis tendem a estar quase no máximo o tempo todo, é fácil que os usuários lidem com suas questões relacionadas ao uso de licenças entre si, e não há necessidade de o administrador estar envolvido ;-).

7. URLs

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.