라이센스 모니터링 · 3 min read · Jan 13, 2026
Flexnet 라이센스 모니터링과 rrdtool - 2페이지
4. 그래프 생성
그래프는 rrdtool 패키지에 포함된 rrdcgi 프로그램의 도움으로 쉽게 생성할 수 있습니다. CPU 사이클을 절약하기 위해 생성은 필요할 때만 수행되며, rrdcgi에 의해 해석되는 특별한 RRD:: 태그가 있는 CGI 스크립트를 만들어야 합니다.
내 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의 문서를 다시 살펴본 후, 관심 있는 기간을 선택하기 위한 라디오 버튼이 있는 제품당 하나의 스크립트로 해결할 수 있는 또 다른 가능성을 찾았습니다. 스크립트는 다음과 같습니다:
#!/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
14.6.2010
EOM
이 스크립트를 웹 서버의 cgi-bin 디렉토리(내 경우 /usr/lib/cgi-bin)에 복사하고, 모든 사용자가 읽고 실행할 수 있도록 설정한 후, 웹 서버의 CGI 모듈을 로드하는 것을 잊지 마세요(모듈이 없거나 이미 로드되어 있지 않은 경우). 출력은 다음과 같습니다:

이 스크립트는 다음과 같은 URL로 웹 브라우저에서 호출됩니다:
http://server/cgi-bin/licstate.cgi?prod2따라서 CGI 스크립트에 “명령줄 매개변수“를 제공하여 여러 제품 중 하나를 선택할 수 있습니다.
이와 같은 스크립트를 사용 가능한 라이센스가 거의 최대에 도달하는 제품의 사용자에게 제공함으로써, 사용자가 라이센스 사용과 관련된 문제를 서로 처리할 수 있도록 쉽게 할 수 있으며, 관리자가 전혀 개입할 필요가 없습니다 ;-).
7. URL
- 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/
- 내 네트워크 모니터링 장치: https://www.howtoforge.com/network-monitoring-appliance
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.