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:

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

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

Este script é chamado em seu navegador web com uma URL como:
http://server/cgi-bin/licstate.cgi?prod2Assim, 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
- 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/
- Meu Aparelho de Monitoramento de Rede: https://www.howtoforge.com/network-monitoring-appliance
Receba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.