ライセンス監視 · 1 min read · Jan 13, 2026

Flexnetライセンス監視とrrdtool - ページ2

4. グラフの作成

グラフはrrdtoolパッケージに含まれるrrdcgiプログラムの助けを借りて簡単に作成できます。CPUサイクルを節約するために、作成は要求に応じてのみ行われます。特別なRRD::タグを持つCGIスクリプトを作成する必要があり、これらはrrdcgiによって解釈されます。

私のCGIスクリプトは次のようになります:

#!/usr/bin/rrdcgi


Prod1ライセンス使用状況

Prod1ライセンス使用状況

' -s -24hours -w 600 -h 200 -W gbi@localhost@localdomain -v "使用されたライセンス" --lazy --title "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>

詳細については、rrdcgiとrrdgraphのマニュアルページを参照してください。

これはよく知られたMRTGスタイルのグラフの例です:

日次ライセンス使用状況

ここではあまり動きがありません。

上記のスクリプトは私の最初のシンプルなアプローチでした。アイデアは、毎製品ごとに、日次、週次、月次、年次の概要のためのスクリプトセットを実装することでした。しかし、これはほぼ同一のスクリプトの洪水につながります。rrdcgiのドキュメントをもう一度見た後、製品ごとに1つのスクリプトと、興味のある期間をインタラクティブに選択するためのラジオボタンを持つ解決策が見つかりました。スクリプトは次のようになります:

#!/usr/bin/rrdcgi


Prod1ライセンス使用状況

Prod1ライセンス使用状況

期間

日次, 週次, 月次, 年次。

.png --imginfo '' -s - -w 600 -h 200 -W [email protected] -v "使用されたライセンス" --lazy --title "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>

グラフの上の期間を選択するためのラジオボタンは次のようになります:

ラジオボタン

5. rrdデータベースの作成

これまで触れていなかったトピックがあります。それは、rrdデータベースがどのように作成されるかです。私は、あなたが感じるように、別のスクリプトを使用しました。それは次のようになります:

#!/usr/bin/python
# すべてのライセンスインスタンスのためのすべてのrrd dbを作成するスクリプト
# mrtg互換の方法で


import sys, string, rrdtool

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

もちろん、これはあなたのニーズに合わせて調整する必要があります。

6. 別のCGIスクリプト

Flexnetシステムの取り扱いをさらに容易にし、ライセンスを借りて作業を行う必要があるユーザーのために、別のCGIスクリプトが作成されました。これは、誰がどれだけのライセンスを借りたかを表示するために使用されます。これは「lmutil lmstat -a」の出力に過ぎませんが、lmutilがインストールされているシステムにログインすることなく行えます。しかし、これはあなたの企業のプライバシー保護と衝突する可能性があるため、個人情報が自由にアクセス可能になります。このスクリプトを実行する際には、認証メカニズムで保護する必要があるかもしれませんが、このトピックはこのチュートリアルではカバーされていません。

スクリプトは再び第2章のものと同様のダッシュスクリプトであり、適切に実装されていれば、複数のサーバーで複数の製品を照会できます。また、これはいわゆるヒアスクリプトであり、特別であまり使用されない種類のシェルスクリプトです。再び、あなたのニーズに合わせて調整してください:

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

ライセンス状態 $PROD





ライセンス状態 $PROD


EOM

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

/bin/cat << EOM


GBi

2010年6月14日 EOM

このスクリプトをあなたのウェブサーバーのcgi-binディレクトリ(私の場合は/usr/lib/cgi-bin)にコピーし、世界中で読み取り可能かつ実行可能にし、ウェブサーバーのCGIモジュールをロードすることを忘れないでください(もしそれがある場合、またはすでにロードされていない場合)、そして準備が整いました。出力は次のようになります:

ライセンス状態

このスクリプトは、次のようなURLでウェブブラウザで呼び出されます:

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

したがって、CGIスクリプトに「コマンドラインパラメータ」を提供することで、複数の製品の中から1つを選択できます。

このようなスクリプトを、常にほぼ最大に近いライセンスが利用可能な製品のユーザーに提供することで、ユーザーがライセンス使用に関する問題を自分たちで処理することが容易になり、管理者が関与する必要がなくなります;-)。

7. URLs

Share: X/Twitter LinkedIn

新しい投稿を受信箱で受け取る

スパムはありません。いつでも購読を解除できます。