ライセンス監視 · 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
2010年6月14日
EOM
このスクリプトをあなたのウェブサーバーのcgi-binディレクトリ(私の場合は/usr/lib/cgi-bin)にコピーし、世界中で読み取り可能かつ実行可能にし、ウェブサーバーのCGIモジュールをロードすることを忘れないでください(もしそれがある場合、またはすでにロードされていない場合)、そして準備が整いました。出力は次のようになります:

このスクリプトは、次のようなURLでウェブブラウザで呼び出されます:
http://server/cgi-bin/licstate.cgi?prod2したがって、CGIスクリプトに「コマンドラインパラメータ」を提供することで、複数の製品の中から1つを選択できます。
このようなスクリプトを、常にほぼ最大に近いライセンスが利用可能な製品のユーザーに提供することで、ユーザーがライセンス使用に関する問題を自分たちで処理することが容易になり、管理者が関与する必要がなくなります;-)。
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/
- My Network Monitoring Appliance: https://www.howtoforge.com/network-monitoring-appliance
新しい投稿を受信箱で受け取る
スパムはありません。いつでも購読を解除できます。