본문 바로가기
  • AI (Artificial Intelligence)
Fundamental/Technical

[Terms] RRDtool (round robin database tool)

by 로샤스 2014. 11. 28.

RRD Tool


1. http://www.terms.co.kr/RRDtool.htm

RRDtool은 MRTG의 그래프 기능과 로깅 기능을 강화하여 새로 구현된 도구라고 이해할 수 있으며, 가장 큰 차이는 더욱 빠르고 유연해졌다는 점이다.

RRD는 네트웍 대역폭, 기계실 온도, 서버의 평균 부하 등과 같은 시간대별 데이터를 저장하고 표시하기 위한 시스템이다. RRD는 매우 간결한 방법으로 데이터를 저장하므로, 시간이 흐름에 따라 양이 그리 크게 늘어나지 않는다. RRD는 항상 일정한 데이터 밀도를 강제로 유지하기 위해 데이터를 처리함으로써, 유용한 그래프를 제공한다. 이를 위해서는 쉘이나 펄 등으로부터 만들어진 단순한 래퍼 스크립트나, 또는 네트웍 장비에 주기적으로 질문을 던지고 편리한 인터페이스를 제공하는 프론트엔드의 이용 등 어떤 방식이라도 이용할 수 있다.

RRDtool은 윈도우NT와 그 밖의 여러 가지 유닉스 플랫폼 상에서 컴파일 되며, 바이너리 버전은 현재 공식적으로 제공되지 않는다. RRDtool은 MRTG의 프론트엔드와 데이터 취득 기능을 제공하지 않으므로, 엄밀히 말해 MRTG의 대체용은 아니다 (MRTG는 RRDtool를 데이터베이스 백엔드로 이용하고, 필요에 따라 모든 mrtg 그래프를 만들어 낼 수 있는 14all 또는 mrtg-rrd와 같은 CGI 그래프 작성기와 함께 구성될 수 있다). 만약 프로그래밍이 가능한 사람이라면, 즉시 RRDtool을 사용할 수 있을 것이며, 그렇지 않다면 RRDtool을 사용하는 여러 프론트엔드를 사용할 수 있다.

RRDtool은 GNU의 GPL 정신에 입각하여 이용할 수 있다. 이 말은 이 소프트웨어를 이용해 자신이 만든 소프트웨어를 GNU GPL이 아닌 별도의 라이선스 형태로 판매하지 않는다는 전제 하에 필요한 모든 수정을 할 수 있다는 것을 의미한다.


2. http://lily.mmu.ac.kr/lecture/08sm/Solaris/system12.php#15

- RRDtool이란?

RRDtool은 연속적으로 변하면서 반복적인 데이터의 흐름을 시간의 흐름에 따라 평균값을 저장하는 방식으로 매우 간략한 하게 장기간 데이터를 보관하고 이를 그래프 파일로 생성을 합니다. 이런 연속적인 데이터의 예로는 네트워크의 흐름정보를 카운터 값으로 보관하고있는 MIB 정보, 사무실 온도, 자동차 도로의 교통 통행량, 날씨의 풍량 등(앞에서도 열거했죠)의 정보들이 있습니다. 암튼 이런 종류의 데이터들을 얼마 되지 않은 크기로 데이터베이스화 하고, 시간단위로 그래프화 하여 이것을 인터넷 상에서 실시간으로 보여 주거나 다른 프로그램에서 쓸 수 있도록 하는 툴입니다.

- MRTG와는 어떻게 틀리나?

MRTG는 사용자의 편의를 위해 자동화 작업을 하면서 출력 그림들이 거의 똑같지요. 또한 입력데이터도 기본이 입출력 트래픽입니다. 그래서 입력값은 2개 이하. 여기에 최대값을 추가하여 한 그래프에서 나올 수 있는 수치그래프가 얼마되지 않지요(4개). 물론 수치그래프가 많으면 많을수록 그래프를 구별하기가 어려워 힘들 때도 있겠지만요. 하지만 이 툴은 입력데이터의 제한이 없으며, 모니터링 기간, 입력데이터 시간간격조정, 그래프 파일의 디자인 변경과 기간 간격 등을 아주 자유롭게 구성 할 수 있습니다. 

근데 둘은 한통속입니다. 물론 개발자가 같아서 이지만… MRTG의 소스를 보면 RRDtool을 직접적으로 사용을 하고 있는 것을 확인 할 수 있습니다.

- RRDtool을 쓰려면 뭘 알아야 하나?

표현이 자유로운 반면 해야 할 일도 많겠죠. 우선 표현하고자 하는 데이터를 추출하고 데이터 저장을 위해 Perl을 좀 알아야 해요. 보고서 기능이 막강한 스크립트죠. 그리고 정작 중요한 RRDtool의 사용방법 이것은 데이터베이스를 어떻게 저장하고 시간간격을 어떻게 하고 데이터의 종류는 어떤 것이고 그래프를 어떻게 표현 할 것인가 하는 것들입니다(음 일반적인 데이터베이스 형식과 유사). 그리고 인터넷상에서 결과 그래프를 보려고 하면 HTML 쯤은 당연하겠죠.

기존에 MRTG을 써본 사용자라면 Perl은 제가 사용했던 소스를 조금만 수정해서 쓰면 거의(?) 완벽하게 네트워크 모니터링 그래프를 만들 수 있을 것 같네요. 또 한가지 네트워크 장비나 서버의 MIB 정보를 담고 있는 부분인 OID값을 알아야 하겠지요. 보편적으로 MRTG는 자동으로 포트 등을 검색을 해서 보여 주지만 여기서는 모두가 수동.

기존 MRTG에 만족을 하지 못했거나, 표현해야 할 데이터들이 네트워크/서버하고 관련이 없거나, 3개 이상의 값을 한 그래프에서 모니터링 하고자 할 경우, 기타 시뮬레이션 모니터링 등에 매우 유용하게 쓸 수 있는 툴입니다. - RRDtool의 구조와 저장

RRD 구조는 레코드, 필드를 갖는 일반 데이터베이스의 형식과 흡사하다. 먼저 데이터 수집이 시작 될 시간을 정하게 되며, 다음으로 데이터베이스의 소스 타입을 정하고, 저장 될 데이터의 저장공간을 확보하게 한다. 이로써 RRD는 생성 당시 데이터베이스의 크기가 정해진다.

생성되는 파일은 rrd 확장자를 가지며 XML 파일로 변환과 복구가 가능하다. 저장되는 데이터는 반드시 숫자일 필요는 없으며 상태나 상황의 저장이 가능하다. 입력 데이터의 저장포맷은 binary로써 데이터 접근에 훨씬 더 빠른 처리를 속도를 나타낸다.














댓글