RRDTool 강좌 2

Posted by 잿빛푸우 greypoooh@daum.net
2007.06.13 16:15 리눅스의 모든것


<myrrd-2.gif> rrdtool 최신버전 다운로드

다운받은 후에는 우리가 알고 있는 평이한 수준의 컴파일을 하면 된다. 소스 디렉토리를 보면 알수 있듯이 필요한 gd 라이브러리나 libpng 같은 소스들을 이미 담고 있다. 만약에 위처럼 통합적으로 필요한 것 을 가지고 다니지 않는 소스라면 아마 이러저러한 패키지나 소스 구하느라 시간이 더 많이 소모될 것 이다.

# ./configure

<myrrd-3.gif> configure 실행

위와 같이 실행을 하면 그림처럼 실행이 되는 것을 볼 수 있는데 한 가지 이 것을 개발한 사람은 장난끼가 좀 많은 사람인 듯 싶었다. 필자가 일부러 위의 그림을 캡춰(capture) 한 것은 재미있는 화면이 있어서였다. 위에 보면 아래의 한 문구가 있다.

"ordering CD from http://people.ee.ethz.ch/~oetiker/wish ..."

CD 를 주문한다는 메세지(message)인데 거짓말인 것 을 모르는 건 아닌데 괜히 한번쯤 놀래
키는 한줄 이었다. 사실 'configure'를 하면서 위와 같은 문구의 내용은 처음본 것 같았다. 뒤에는 'just kidding' 이라는 말로 농담인 것 을 표시했지만 장난기 심한개발자의 모습을 볼 수 있었다.

# make

# make install

위의 두 명령을 내리면 컴파일과 함께 해당 디렉토리로 컴파일 된 패키지들이 옮겨진다. 그리고 위처럼 하고난 후에도 노파심에 한번 더 필요한 펄(perl)패키 지들이 제대로 복사가 되었는지 아래처럼 확인을 한다.

# cd perl-shared/
# make install
# cd perl-piped/
# make install

그러면 RRD 툴에서 제공하는 필요한 펄(perl)라이브러리들이 복사가 되는 것 을 알수가 있다. 위처럼 한 후 아래의 내용대로 원하는 디렉토리에 제대로 복사가 되었는 지와 어느 위치에 RRD 관련 바이너리 파일이 들어있는지를 확인해보자.

'configure' 를 실행할 때 따로 지정해 주지 않았다면 기본적인 디렉토리는
'/usr/local/rrdtool-1.0.45' 아래에 복사가 된다.

bin/ contrib/ doc/ examples/ html/ include/ lib/ man/ tmp/

위와 같이 복사가 되며 bin/ 아래에 필요한 실행파일이 들어있고 각각 문서 디렉토리 라던가 예제 혹은 맨(man)페이지등 필요한 위치에 파일들이 들어가 있다. 잊지 말아야 할 것 은 위와 같이 한 후에는 꼭 $PATH에 bin/ 디렉토리를 추가해서 사용하길 바란다.

여기까지 기본적인 설치는 끝났다. 한가지 짚고 넘어가야 할 것 은 개발된 시기와 관련이 있을 수도 있겠지만 대부분의 예제나 소스나 펄(perl)로 만들어져 있다는 것 이다. 이것은 결국 펄(perl) 이라는 언어(language)를 모르면 위의 RRD를 이용할 수 없다는 것인가 하는 생각이 드는데 그것은 결코 아니다. 요즘에 쉽게 사용할 수 있는 PHP4 와도 연동이 된다는 것을 알아두고 다음 소절에서 그 설치법을 알아 보고 후에 각각의 예제를 보면서 펄(perl),PHP,SHELL 등 어떠한 언어에서도 그 사용이 가능하다는 것을 확인해 보도록 하자.

✔ PHP4 와의 연동
여기에서는 윗 소절 마지막 부분에서 잠깐 언급했던 PHP4와의 연동에 대해서 알아보자. 사실 rrdtool 이라는 바이너리 파일을 말 그대로 '실행(execution)' 을 한다면 못 쓰이는 언어는 없다. 하지만 개발자의 세심한 배려로 조금 더 편하게 기본적인 몇 가지 함수를 제공하게 되었다.
이렇게 PHP4와 연동하기 위해서는 몇 가지 작업(?)을 해주어야 한다. 위에서 했던 컴파일 작업을 다시 해보자.
'configure' 부터 다시 해주어야 한다. 이유는 다른 모듈역할을 하는 php에서 사용하기위해 '--enable-shared'라는 옵션을 주어 다시 Makefile을 만들고 컴파일을 해야 하기 때문이다.

# ./configure --enable-shared
# make
# make install

위와 같이 하는 것 은 기본적인 rrdtool 을 컴파일 한 것 과 거의 똑같다. 여기에서 다시
rrdtool-1.0.45/ 의 소스가 있는 디렉토리로 위치를 옮기자. 거기에서 다시 contrib/php4 아래에 가면 몇 개의 간단한 소스를 볼 수 가 있는데 거기에서 아래와 같은 명령을 내린다.

\ ./configure --with-rrdtool=/usr/local/rrdtool-1.0.45/ \
--with-php-config=/usr/bin/php-config

위의 'configure' 할 때 에 rrdtool이 설치된 디렉토리와 php-config 라는 이름을 가진 바이너리 파일의 위치를 지정해주면 된다.




<myrrd-4.gif> configure

# make



<myrrd-5.gif> make

컴파일까지 하고 나면 위의 그림과 같은 메세지가 나오는데 결국 만들어진 라이브러리파일을 적당한 위치로 옮기고 나중에 PHP에서 호출할 수 있게 시스템 환경변수인 ld.so.conf 에 등록을 하라는 이야기 이다.적당한 위치를 선정하고 그쪽으로 rrdtool.so 파일을 복사 하자. 그쪽으로 복사하고 나서 아래와 같이 복사한 위치를 지정하도록 하자.




<myrrd-6.gif> ld.so.conf 편집

위의 경우는 /usr/local/rrd-1.0.45/lib 디렉토리 아래에 rrdtool.so 를 복사한 다음 ld.so.conf 파일에 위의 디렉토리를 추가한 것 이다. 그런 후 'ldconnfig' 로 등록을 해준다.

# /sbin/ldconfig
이 댓글을 비밀 댓글로