블로그 > kdnnetwork님의 블로그 http://blog.naver.com/kdnnetwork/140000675195 | ||||||||||||||||||||||||||||||||||
제 목 : 서버 모니터링 툴의 강자, RRDtool 가이드 (작성중. alpha 버전) 작성자 : 좋은진호(truefeel) 작성일 : 2003.9.22(월)~ 그래픽 모니터링 툴인 RRDtool과 그 프론트엔드 툴 HotSaNIC의 설치, 운영가이드이다. 1. RRDtool의 이해 2. RRDtool 설치 3. HotSaNIC 설치 4. RRDtool 직접 다루기 5. 문제 해결 6. 이용 사례 1. RRDtool의 이해 RRDtool에 대해 들어가기 전에 먼저 MRTG 툴을 설명할 필요가 있을 듯 하다. MRTG(Multi Router Traffic Grapher)는 이름에서도 드러난대로, SNMP 프로토콜을 사용하여 라우터를 거쳐가는 트래픽을 실시간 그래픽을 통해 모니터링하는데 가장 많이 사용한다. 이외에 시스템을 모니터링하는 여러 addon들이 있다. DISK 사용량, CPU사용량, 메모리 사용량, 데몬, 세션 개수 등.. 심지어는 P2P인 당나귀의 트래픽, 프락시 서버인 Squid 트래픽까지 실시간(실시간이라기 보다는 특정 시간간격으로 변화하여 보여준다는게 더 정확하지만)으로 웹에서 볼 수 있다. RRDtool은 MRTG처럼 실시간 그래픽 모니터링 기능을 가지고 있으면서 보다 더 개선된 형태의 툴이다. 보다 빠르고 시스템 로드를 덜 잡아먹는다. 또한 MRTG의 제약이었던 2개 이상의 데이터를 하나의 그래픽을 통해 표시할 수 있다. 그래픽의 유연성(?)면에서도 단연 RRDtool이 압도한다. [ MRTG로 트래픽 모니터링하는 화면 ] [ RRDtool과 HotSaNIC으로 CPU 사용률을 모니터링하는 화면 ] 2. RRDtool 설치 RRDtool : http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/ RRDtool의 시스템 요구사항은 다음과 같다. Perl 5.005 (컴파일시에 문제가 발생하면 더 최신 것을 설치해본다.) GNU make GNU gcc 위 RRDtool 사이트에서 최신 버전을 받아온다. /usr/local/rrdtool에 하는 것으로 가정한다.
3. HotSaNIC 설치 HotSaNIC : http://hotsanic.sourceforge.net/archive/ HotSaNIC은 RRDtool을 사용하는 툴로 시스템 통계정보를 그래프로 생성해준다. * 시스템 요구 사항 - RRDtool - iptables 또는 ipchains (네트워크 트래픽 통계용으로 쓰기 위함) 위 사이트에서 받은 최신 버전은 컴파일없이 환경설정만으로 바로 사용하므로 /usr/local에서 압축을 푼다.
모니터링중이 아니라면 N) 있다면
3) 필요한 디렉토리 생성 이제 RRDtool의 웹용 이미지와 html이 저장될 디렉토리와 로그 파일 저장 디렉토리를 생성한다. 디폴트로 로그는 HoSaNIC 홈의 var/log에 생성된다. (html 홈은 /usr/local/apache/htdocs/ 라고 가정)
4) 환경 파일의 주요 설정 HoSaNIC 홈/settings가 주 설정 파일이고 HoSaNIC 홈/modules/모듈명/settings는 각 모듈별 설정 파일이다. 주 settings 파일에서 주요 설정을 살펴보자.(반드시 확인할 것에 * 표시해둠)
각 모듈별 설정은 해당 디렉토리의 settings을 보면 자세히 설명이 되어 있다. 여기서는 ping, diskio, apps에 대해서만 예를 들어본다. * ping 모듈 ( HoSaNIC홈/modules/ping/settings ) 192.168.123.15(파일서버)에 대해 ping을 한다면, 다음을 추가하면 된다.
설정했는데 ping 이미지가 생성안된다면 '5. 문제해결'에 해결방법을 설명해뒀다. * diskio 모듈 ( HoSaNIC홈/modules/ping/settings ) /proc/stat 에서 disk_io 라인을 살펴보면 다음과 같이 되어 있다. disk_io: (2,0):(1,1,2,0,0) (3,0):(306090,39930,942826,266160,5212040) (3,1):(55015,28746,1435800,26269,909568) (8,0):(50,50,253,0,0) 여기서 (3,0) = hda, (3,1) = hdb, (8,0) = sda를 각각 의미한다. 따라서 hda와 hdb의 disk 입출력을 보려면 다음과 같이 설정한다.
* apps 모듈 ( HoSaNIC/modules/apps/settings )
5) 실행 자~ 이제 웹페이지를 생성하고 rrdgraph만 실행하면 모니터링할 수 있다.
이제 웹브라우저를 띄우고 보면 된다. 아직 이미지도 안나온는데 뭘 보라는 것일까? 최소 15분(settings의 DTIME)이 지내야 모듈내의 큰 이미지들이 생성되고 24시간(CTIME)이 지나면 메인의 작은 이미지가 보일 것이다. 24시간 전이라도 적당한 시기에 ./convert.pl을 실행하면 메인에서도 이미지를 볼 수 있다. 부팅할 때 자동으로 rrdgraph가 실행되록 하려면 어떻게 해야할까? rrdgraph 스크립트를 /etc/rc.d/init.d 에 복사를 한 후 chkconfig로 서비스를 추가한다.
4. RRDtool 직접 다루기 HoSaNIC은 이미 정해진 모듈을 통해서 RRDtool을 다루는 것이다. 이제 시스템관리자가 원하는 데이터를 RRDtool로 직접 조작하여 통계용 이미지를 생성하는 방법을 알아본다. 간단히 과정을 정리해보면. - RRDtool용 자체 DB(일반적으로 .rrd로 지정)를 생성한다.(create) -> - 데이터를 업데이트하거나 (update) 가져온다.(fetch) -> - 이미지를 생성한다. (graph) 1) rrdtool 명령 익히기 DB 생성, 이미지 만드는 것은 모두 RRDtool홈/bin/rrdtool 명령을 통해서 한다.
rrdtool에서 사용 가능한 명령은 무엇이 있을까? ---------- ----------------------------------------------------------------------- 명 령 설 명 ---------- ----------------------------------------------------------------------- create 새로운 RRD DB를 만든다. update DB에 새 데이터를 저장한다. graph 저장된 DB자료를 이용해서 이미지를 생성한다. (.gif 또는 .png) dump RRD DB의 데이터를 XML 포맷으로 뽑아준다. restore XML 포맷에서 RRD DB로 저장한다. fetch RRD DB에서 데이터를 얻어온다. tune RRD DB의 설정을 변경한다. last RRD DB의 최종 업데이트 시간을 알려준다. info RRD DB의 헤더 정보를 보여준다. (파일명, 최근업데이트일, 설정값...) rrdresize RRA 크기를 변경한다. 가능하면 사용하지 말기를 xport RRD DB의 데이터를 XML 포맷으로 뽑아준다. (출력 포맷 지정) ---------- ----------------------------------------------------------------------- 2) 샘플 DB 생성 3) 이미지 만들기 5. 문제 해결 1) HoSaNIC 로그 파일을 보니 Can't locate RRDs.pm in @INC (@INC contains... 오류가 있습니다. RRDtool 설치할 때 make site-perl-install 를 하지 않아 RRDs.pm 펄 모듈이 설치되지 않아서 입니다. RRDtool 소스 디렉토리에 가서 make site-perl-install을 하세요. 2) makeindex.pl 실행할 때 다음 오류가 발행합니다. WEBDIR (path to HotSaNIC's output directory) does not exist. 시스템 모니터링 결과가 저장될 웹디렉토리를 생성하지 않았다. 위 글중 '3 - 3) 필요한 디렉토리 생성'을 확인해봐라. 3) 시간이 한참지났는데 ping 이미지가 생성이 안됩니다. 물론 ping설정은 했습니다. 로그를 보니 Can't locate asm/unistd.ph in @INC (did you run h2ph?).. 가 있습니다. 펄용 헤더 파일이 없기 때문입니다. 펄 헤더로 변환해주는 h2ph로 해결할 수 있습니다. cd /usr/include; h2ph -r -l . 6. 이용 사례 HanIRC의 채널별 사용자 통계를 보여준다. 5분간격의 데이터를 1시간 단위로 자동 업데이트한다. 장혜식님의 py-rrdtool을 사용한 페이지 http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/gallery/ * 참고 자료 http://people.ee.ethz.ch/~oetiker/webtools/rrdtool/manual/index.html http://myhome.hanafos.com/~itup/index.html http://kltp.kldp.org/stories.php?story=03/02/13/1717339 |
0