'rrdtool'에 해당되는 글 5건

  1. 2009.08.03 JFFNMS 네트워크 모니터링 Tools
  2. 2009.05.08 rrdtool + rrdexec + snmp를 이용한 네트워크 모니터링 (2)
  3. 2009.03.30 시스템 및 네트워크 모니터링 (RRDtool, cacti) (2)
2009. 8. 3. 15:14

JFFNMS 네트워크 모니터링 Tools

728x90

http://downloads.sourceforge.net/jffnms/jffnms-0.8.3.tar.gz?use_mirror=nchc
http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.3.6.tar.gz
http://cairographics.org/releases/cairo-1.8.6.tar.gz

APM이 깔려있다는 전제 하에 기존에 php 컴파일시 jffnms설치시 필요한게 몇개 빠진거 같아서 재 컴파일 했다....아래같이

모든 필요한 파일을 yum으로 업데이트 한후 풀 옵션을 줘서 php 재컴파일 후 설치 진행함.

# yum -y install openssl openssl-devel mhash mhash-devel libtool libtool-ltdl libtool-ltdl-devel imap-devel imap zlib-devel zlib freetype-devel freetype libpng-devel libpng libjpeg-devel libjpeg libtiff-devel libtiff gd-devel gd pcre-devel pcre libxml-devel libxml libxml2-devel libxml2 gdbm-devel gdbm ncurses-devel ncurses curl-devel curl expat-devel expat bzip2-devel bzip2-libs bzip2 uw-imap-devel libc-client libc-client-devel libmcrypt libmcrypt-devel

# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache/bin/apxs --enable-mod-charset --enable-safe-mode --enable-sigchild --enable-magic-quotes --with-libxml-dir --with-openssl --with-zlib --with-zlib-dir --with-bz2 --enable-calendar --with-curl --enable-dba --with-gdbm --enable-exif --enable-ftp --with-gd --with-jpeg-dir --with-png-dir  --with-ttf --with-freetype-dir --enable-gd-native-ttf --with-gettext --with-imap --with-imap-ssl --with-kerberos --enable-mbstring --with-mhash --with-mcrypt --with-mysql=/usr/local/mysql --enable-sockets --with-regex=php --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --enable-zend-multibyte --with-snmp

rrdtools설치

# ./configure --prefix=/usr/local/rrdtool --enable-shared 

php.ini 다음 추가   

    register_globals = On
    register_argc_argv = On
    error_reporting  =  E_ALL & ~E_NOTICE
    allow_url_fopen = On
    include_path = .:/usr/share/pear
    short_open_tag = On

본격적인 설치(공식 메뉴얼 참조했습니다.)

# groupadd jffnms
# useradd -g jffnms -d /opt/jffnms -s /bin/false -c 'JFFNMS User' jffnms
# usermod -G jffnms apache 

You will get a directory called jffnms-0.8.x/

# mv jffnms-0.8.x /opt/jffnms

Permissions

# chown -R jffnms:jffnms /opt/jffnms
# chmod 770 /opt/jffnms
# chmod -R ug+rw /opt/jffnms 

Crontab
Install the JFFNMS crontab file

# crontab -u jffnms /opt/jffnms/docs/unix/crontab

맨위의 PATH
PHP=/usr/loca/php/bin/php

Now modify the values at the top if they don't match your system

# crontab -e -u jffnms

Allow JFFNMS to run cron jobs (AFAIK only needed in Solaris)

# echo jffnms >> /etc/cron.allow 

Create the Databases

Manually create the database "jffnms", set the permissions and then import the schema and data.
Manually create the database "jffnms", set the permissions and then import the schema and data.
Replace the 'x' with the jffnms version number.

mysql 설정

# mysql -u <mysql admin username> -p<password>
mysql> CREATE DATABASE jffnms;
mysql> GRANT ALL PRIVILEGES ON jffnms.* TO jffnms@localhost IDENTIFIED BY 'jffnms';
mysql> FLUSH PRIVILEGES;
mysql> quit

# mysql -u jffnms -pjffnms jffnms < docs/jffnms-0.8.x.mysql


출처 : http://trick.textcube.com/


Trackback 0 Comment 0
2009. 5. 8. 10:24

rrdtool + rrdexec + snmp를 이용한 네트워크 모니터링

728x90
--------------------------------------------------------------------------------------
- 작성자 : 김혁중(티니) [sky(golbangi or at)tini4u.net]
- 작성일 : 2006-06-26
- 사이트 : http://linux.tini4u.net/
- 원제목 : rrdtool + rrdexec + snmp를 이용한 네트워크 모니터링
- 환 경 : CentOS 4.3
- 키워드 : rrdtool, rrdexec, snmp
--------------------------------------------------------------------------------------

RRD는 Round Robin Database의 약자로써 MRTG와 비슷한 Logging&Graping 도구 입니다.
시간의 흐름에 따라 변하는 데이터를 DB화 시켜서 남기고, DB화된 정보를 그래픽 화면으로
출력해서 시작적으로 데이터의 변화를 쉽게 알아볼 수 있도록 도와주는 프로그램이죠.

어떻게 보면 MRTG와 비슷하다고 볼 수 있습니다만, RRD는 MRTG에서 지원하지 못했던
여러가지 기능등을 추가 확장한것이 다릅니다.
물론 RRD 개발사의 소개글을 보면 RRD는 MRTG에서 아이디어를 얻었다고 쓰여 있습니다.

확장된 기능중 일부인 네트워크 트래픽 모니터링 하는것을 예로 들게 되면,
관리하고자 하는 요소가 In/Out bps와 In/Out pps라고 할 경우 기존의 MRTG에서는
bps와 pps를 위한 별도의 그래프가 각각 존재해야만 했습니다.
그러나 RRD에서는 하나의 그래프에 bps와 pps를 모두 관리할 수 있기 때문에
bps와 pps의 차이점을 함께 비교함으로써 유입되거나 유출되는 패킷의 상태를 확인하기 좋습니다.
또한 임계치를 정해두고 그 임계치가 초과하게 되었을 경우 다른색으로 표현할 수도 있습니다.

여기서는 RRD의 설치 및 이용, 그리고 snmp와 연동하여 사용하는 방법까지만 설명합니다.
설치는 RPM으로 설치하겠으며 자세한 내용은 다루지 않도록 하겠습니다.
RRD를 모두 설명한다는 것은 너무 방대한 일이므로 추후에 자세한 설명을 올리도록 하겠습니다.

설치시 필요한 모든 패키지의 최신 RPM은 알려드린 주소로 가시면 얻을 수 있으며,
편의를 위해 제 개인 패키지 미러에서도 제공을 해드리고 있습니다. (http://pkg.tini4u.net)

※ RRD Server Setting (RRD DB를 생성하고, 그래프로 출력할 서버)
1. RRD Tool 설치 (최신 RPM 다운로드 : http://rpm.pbone.net/)
[root@localhost]# wget http://pkg.tini4u.net/network/rrdtool-1.0.50-1.2.el4.rf.i386.rpm
[root@localhost]#wget http://pkg.tini4u.net/network/rrdtool-devel-1.0.50-1.2.el4.rf.i386.rpm
[root@localhost]# rpm -Uvh rrdtool-*.i386.rpm


2. Net-SNMP 설치
필자는 snmp와 연동해서 RRD를 운영할 것이므로 Net-SNMP를 설치하도록 하겠습니다.
Net-SNMP는 기존의 UCD-SNMP가 버전이 올라가면서 변경된 이름 입니다.
Net-SNMP는 yum mirror에서 지원을 하므로 추후 업데이트를 위해 yum으로 설치 합니다.
※ beecrypt-devel, elfutils-devel, elfutils-libelf-devel 등 의존성 걸리는 패키지가 있습니다.
  의존성이 걸린 패키지들은 같이 설치되므로 신경쓰지 않으셔도 됩니다.
만약 OS의 버전이 낮아 UCD-SNMP를 지원하는 시스템이라면 필자의 개인패키지 미러에 가시면
Net-SNMP 최신버전을 업로드 해놨으니 UCD-SNMP를 삭제하시고 Net-SNMP를 설치하시면 됩니다.
[root@localhost]# yum -y install net-snmp net-snmp-utils net-snmp-devel


3. olibc 설치 (최신 RPM 다운로드 : ftp://mirror.oops.org/)
필자는 안녕리눅스 제작자이신 김정균님의 Front-End인 rrdexec를 사용할 것이므로,
rrdexec에서 요구하는 olibc를 설치하도록 합니다.
물론, rrdexec를 사용하지 않고 다른 프로그램을 사용하실 분들은 설치하지 않아도 됩니다.
[root@localhost]# wget http://pkg.tini4u.net/network/olibc-0.1.2-1.i386.rpm
[root@localhost]# wget http://pkg.tini4u.net/network/olibc-devel-0.1.2-1.i386.rpm
[root@localhost]# rpm -Uvh olibc-*.i386.rpm


4. dmalloc 설치
세번째 단계에서 필자는 rrdexec를 사용한다고 언급한 적이 있습니다.
따라서 rrdexec에서 요구하는 패키지인 dmalloc와 gettext를 설치하도록 합니다.
dmalloc는 yum mirror에서 지원을 하므로 추후 업데이트를 위해 yum으로 설치 하겠습니다.
gettext는 CentOS 4.x라면 기본적으로 설치되어 있지만 없는 경우에는 yum으로 설치하시기 바랍니다.
[root@localhost]# yum -y install dmalloc
[root@localhost]# yum -y install gettext


5. rrdexec 설치 (최신 RPM 다운로드 : ftp://mirror.oops.org/)
이제 김정균님의 Front-End인 rrdexec를 설치하도록 합니다.
여기서 주의할 사항은 김정균님의 미러에서 직접 패키지를 가져오게 되면 rpm 파일 경로가 틀려서
중간에 에러가 나게 되니 이런 경우엔 src.rpm을 받아서 spec파일을 수정해주거나
아니면 필자가 제공하는 미러에서 다운받아 설치를 하시면 됩니다.
☞ rrdexec.spec 파일의 46 라인을 cp -af /usr/lib/librrd.a ./ 로 수정해주시면 됩니다.
물론 필자는 필자의 미러에 있는 수정된 rpm을 다운받아 설치하도록 하겠습니다.
[root@localhost]# wget http://pkg.tini4u.net/network/rrdexec-2.2.2-1.i386.rpm
[root@localhost]# wget http://pkg.tini4u.net/network/rrdexec-doc-2.2.2-1.i386.rpm
[root@localhost]# rpm -Uvh rrdexec-*.i386.rpm


6. snmp 설정파일 수정
필자는 RRD 데이터를 Net-SNMP를 통해서 가져올 것이므로 snmp가 정상적으로 작동할 수 있도록
snmpd.conf 파일을 수정해 주도록 합니다.
이 파일에 대해서는 추후에 자세한 설명을 올리도록 하겠습니다.
필자의 개인 패키지 미러에 가시게 되면 Net-SNMP가 정상작동을 할 수 있도록 기본 세팅이
설정되어 있는 파일이 있으므로 IP만 변경하시고 그대로 사용하시면 됩니다.
[root@localhost]# wget http://pkg.tini4u.net/network/snmpd.tar.gz
[root@localhost]# mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
[root@localhost]# tar xfpz snmpd.tar.gz -C /etc/snmp/
[root@localhost]# vi /etc/snmp/snmpd.conf
9 라인에서 127.0.0.1을 SNMP 접근을 허용할 서버의 IP로 변경해줍니다. ex) 100.100.100.100
[root@localhost]# service snmpd start
Starting snmpd:                    [ OK ]


7. snmp 작동 여부 확인
이제 모든 설치가 끝났으므로 snmp가 정상적으로 작동하는지 확인을 해야 됩니다.
확인 방법은 snmpwalk -v1 -c 커뮤니티네임 IP 입니다.
(필자는 네트워크 트래픽에 대해서만 모니터링 할 것이므로 ifEntry 필드의 Octets값만 확인합니다.)
[root@localhost]# snmpwalk -v1 -c LTN-Remote 100.100.100.100 ifEntry | grep Octets
IF-MIB::ifInOctets.1 = Counter32: 976510
IF-MIB::ifInOctets.2 = Counter32: 5696222
IF-MIB::ifInOctets.3 = Counter32: 0
IF-MIB::ifOutOctets.1 = Counter32: 978376
IF-MIB::ifOutOctets.2 = Counter32: 820757
IF-MIB::ifOutOctets.3 = Counter32: 0


8. rrd 설정파일 수정
이제 SNMP에서 받아온 결과값을 DB로 저장하고, 그래프로 출력하기 위해 설정파일을 세팅합니다.
rrd.conf 파일의 설정은 반드시 SERVICE: 지시자로 시작해서 END: 지시자로 끝나야 됩니다.
위에서 필자는 김정균님의 Front-End인 rrdexec를 설치했기 때문에 rrd.conf파일이 존재하므로
이 파일을 그대로 사용하든지 아니면 새로 설정파일을 생성하시기 바랍니다.
필자는 네트워크 트래픽 모니터링만을 할 것이므로 설정파일을 새로 만들도록 하겠습니다.
[root@localhost]# mv /etc/rrdexec/rrd.conf /etc/rrdexec/rrd.conf.bak
[root@localhost]# vi /etc/rrdexec/rrd.conf
SERVICE: Ethernet
TITLE: Network Transfer of Linux.Tini4u.Net
IMGTITLE: bit per second
IMGTYPE: png
GRAPH1: rx,AREA,#737373
GRAPH2: tx,LINE3,#CDCDCD
MIN: 0
MAX: 100000000
LGRAPH: 0
TYPE: COUNTER
SIZEOPT: 1000
DATA1: SNMP,LTN-Remote@100.100.100.100:interfaces.ifTable.ifEntry.ifInOctets.2
DATA2: SNMP,LTN-Remote@100.100.100.100:interfaces.ifTable.ifEntry.ifOutOctets.2
DTYPE: *8
PATH: /home/rrd/html
ARRAY: none
COMMENT: (c) 2006 LTN(Linux.Tini4u.Net), by Tini <http://Linux.Tini4u.Net/>\\r
END: Ethernet

만약 여러대의 서버를 모니터링 할 것이라면, SERVICE: 지시자의 내용을 다르게 해야
중복되지 않은 데이터를 얻을 수 있으니 주의하시기 바랍니다.
또한 DATA1,2 지시자에서의 IP는 SNMP 데이터를 가져올 서버의 IP를 적어주셔야 되며,
끝부분의 ifInOctets과 ifOutOctets의 String 넘버는 OS마다 다르므로 snmpwalk를 통해 출력된
이더넷카드 넘버를 적어줘야 됩니다.
만약 어떤것이 이더넷 데이터인지 모르겠으면 아래 명령어로 확인이 가능합니다.
[root@localhost]# snmpwalk -v1 -c LTN-Remote 100.100.100.100 ifDescr
IF-MIB::ifDescr.1 = STRING: lo
IF-MIB::ifDescr.2 = STRING: eth0
IF-MIB::ifDescr.3 = STRING: sit0


9. rrd 작동 여부 확인
이제 rrd에서 SNMP의 데이터를 정상적으로 DB로 저장하는지 확인을 해야 됩니다.
아래 명령어를 통해 기본적인 html 파일 및 DB 저장이 가능합니다.
[root@localhost]# rrdexec log
* Ethernet : /home/rrd/html [ N:5696474:821757 ] => [ CODE: 0 ]


10. crontab 설정
RRD 데이터는 지정된 시간동안 꾸준히 저장되어야 하므로 crontab에 등록해서
지정된 시간마다 자동적으로 실행되도록 설정을 해줍니다.
보통 RRD는 5분에 한번씩 데이터를 저장시키는것이 좋습니다. (물론 더 짧게도 가능합니다.)
[root@localhost]# crontab -e
*/5 * * * * su - root /usr/bin/rrdexec log

이제 RRD Server Setting이 모두 끝났습니다.
웹에 접속해서 제대로 그래프가 출력되는지 확인하시면 됩니다.

※ RRD Client Setting (RRD 데이터만 넘겨줄 서버)
1. Net-SNMP 설치
RRD 데이터를 넘겨주기만 할 서버는 단순히 SNMP를 통해 데이터만 넘겨주면 되므로
Net-SNMP 패키지만 설치가 되어 있으면 됩니다.
필자가 위에서도 말했지만 OS의 버전이 낮아 UCD-SNMP를 지원하는 시스템이라면
UCD-SNMP를 삭제하고 필자의 개인패키지 미러에서 Net-SNMP를 다운받아 설치하시길 권장합니다.
[root@localhost]# yum -y install net-snmp


2. snmp 설정파일 수정
RRD 서버에서 SNMP를 통해 데이터를 가져가야 되므로 snmp 설정을 해줍니다.
설정 내용은 RRD 서버와 다른것이 없습니다.
[root@localhost]# wget http://pkg.tini4u.net/network/snmpd.tar.gz
[root@localhost]# mv /etc/snmp/snmpd.conf /etc/snmp/snmpd.conf.bak
[root@localhost]# tar xfpz snmpd.tar.gz -C /etc/snmp/
[root@localhost]# vi /etc/snmp/snmpd.conf
9 라인에서 127.0.0.1을 SNMP 접근을 허용할 서버의 IP로 변경해줍니다. ex) 100.100.100.100
[root@localhost]# service snmpd start
Starting snmpd:                    [ OK ]

이제 RRD Client Setting이 모두 끝났습니다.
RRD 서버에서 Client 정보를 제대로 가져오는지 확인을 하시면 됩니다.
[root@localhost]# snmpwalk -v1 -c LTN-Remote 100.100.100.101 ifEntry | grep Octets
IF-MIB::ifInOctets.1 = Counter32: 1010722
IF-MIB::ifInOctets.2 = Counter32: 5712319
IF-MIB::ifInOctets.3 = Counter32: 0
IF-MIB::ifOutOctets.1 = Counter32: 1012588
IF-MIB::ifOutOctets.2 = Counter32: 825481
IF-MIB::ifOutOctets.3 = Counter32: 0

만약 snmpwalk에서 Timeout: No Response from 100.100.100.101 이라고 나온다면
SNMP가 정상적으로 작동하지 않는것이니 다시한번 잘 살펴보기 바랍니다.

Trackback 2 Comment 2
  1. rrdtool 2009.05.08 11:00 address edit & del reply

    http://oss.oetiker.ch/rrdtool/pub/

  2. Graphviz 2009.05.08 17:48 address edit & del reply

    http://www.graphviz.org/Download_source.php

2009. 3. 30. 18:45

시스템 및 네트워크 모니터링 (RRDtool, cacti)

728x90
RRDtool은 일정시간 동안 몇가지 어떤 값을 측정하여 이 정보를 임의의 기간동안 RRDtool에 의해 저장되고 사용자에 의해서 그래프파일을 생성한다. 

저장되는 값들은 일반적으로 숫자값이지만 반드시 이러한 값에는 제한이 없다.
많 은 예제들이 SNMP를 사용하여 장비가 가지고 있는 MIB값을 추출하여 이값을 RRDtool은 데이터베이스를 만들고 이곳에 데이터를 저장하고. 이 데이터를 추출하는 웹 브라우저를 통해 볼수 있도록 GIF나 PNP형식으로 그래프를 만들어 준다
예를 들어 평균 네트워트 사용률이나 최대 사용률등을 계속 모니터링을 하면서 볼수 있도록 개발되어 있다
 

리눅스 시스템의 하드디스크 상황, 메모리 상황, 프로세스 상황, 이더넷의 네트웍트래픽 상황 등을 웹상에서 쉽게 모니터링 하고자 한다면 RRDtool과 cacti를 사용한다

RRDtool 배포 사이트 : http://oss.oekiker.ch/rrdtool

 

1. RRDtool 다운로드 및 설치하기

 
rrdtool을 설치하기 앞서 다음 패키지가 설치되어 있어야 한다

  -libart_lgpl
  -libart_lgpl-devel
  -zlib
  -zlib-devel
  -libpng
  -libpng-devel
  -freetype
  -freetype-devel
  -net-snmp-perl
  -net-snmp-libs
  -net-snmp
  -net-snmp-devel
  -net-snmp-utils
 
먼저 해당 패키지가 존재 하는지 검색을 한다

[root@nayana ~]# rpm -qa | grep libart_lgpl

패키지가 존재하지 않는다면 yum을 이용하여 패키지를 다운로드 한다

[root@nayana ~]# yum -y install libart_lgpl libart_lgpl-devel
[root@nayana ~]# yum -y install zlib zlib-devel
[root@nayana ~]# yum -y install libpnb libpng-devel
[root@nayana ~]# yum -y install freetype freetype-devel
[root@nayana ~]# yum -y install net-snmp-*

보통 devel 개발 버전이 설치되어 있지 않을것이다
devel 패키지와 net-snmp를 설치하면 될 것이다.

net-snmp 패키지를 설치하였다면 /etc/snmp/snmpd.conf 파일에서 4가지 설정사항을 해줘야 한다



위의 그림과 같이 기존에 있던 것은 주석처리를 해주고  그 아래 그림과 같이 수정한다
즉 sec.name 부분과 community부분을 public으로 설정하도록 한다
마지막으로 access 접근 제어 부분에서 그룹명을 public으로 설정하고 read권한부분을 all로 설정한다

설정이 완료 되었다면 snmp데몬을 시작한다

[root@nayana ~]# /etc/rc.d/init.d/snmpd start
snmpd (을)를 시작합니다:                                   [  확인  ]


RRDtool을 다운로드 하고 컴파일을 한 다음 설치하도록 하자

다운로드 사이트 :
http://oss.oetiker.ch/rrdtool/  
download를 클릭하여 해당 버전을 다운로드 하면 된다


소스 다운로드 링크 : http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz

우리는 편하게 하기 위하여 wget을 이용한다 / 다운로드는 원하는곳에 다운로드 하면 된다

[root@nayana ~]# wget http://oss.oetiker.ch/rrdtool/pub/rrdtool-1.2.27.tar.gz

다운로드 받은 rrdtool을 압축을 푼다

[root@nayana ~]# tar xvfz rrdtool-1.2.27.tar.gz
[root@nayana ~]# cd rrdtool-1.2.27



[root@nayana rrdtool-1.2.27]#
./configure --prefix=/usr/local/rrdtool --disable-tcl
--disable-python --disable-ruby

--중략
checking build system type... i686-pc-linux-gnu
checking host system type... i686-pc-linux-gnu
----------------------------------------------------------------
Config is DONE!

          With MMAP IO: yes
          Perl Modules: perl_piped perl_shared
          Perl Binary: /usr/bin/perl
          Perl Version: 5.8.5
          Perl Options: PREFIX=/usr/local/rrdtool LIB=/usr/local/rrdtool/lib/perl/5.8.5
          Ruby Modules:
          Ruby Binary: no
          Ruby Options: sitedir=/usr/local/rrdtool/lib/ruby
          Build Tcl Bindings: no
          Build Python Bindings: n
          Build rrdcgi: yes
          Build librrd MT: yes

Type 'make' to compile the software and use 'make install' to
install everything to: /usr/local/rrdtool.

... that wishlist is NO JOKE. If you find RRDtool useful
make me happy. Go to http://tobi.oetiker.ch/wish and
place an order.

                               -- Tobi Oetiker <tobi@oetiker.ch>
----------------------------------------------------------------
컴파일 작업을 시행한다

[root@nayana rrdtool-1.2.27]# make && make install

컴파일 작업이 이상없이 되었는지 확인하기 위하여 아래와 같은 명령어를 사용한다
여기서 0이 아닌 다른 숫자가 나올 경우 컴파일 중에 문제가 발생한 것이다
문제가 발생하면 위에서 필요한 패키지 중 설치하지 않는 패키지가 있는지 확인한다

[root@nayana rrdtool-1.2.27]# echo $?

0

여기서는 컴파일 작업 중 아무런 문제가 발생되지 않아 0 이 나타났다

 

2. cacti 다운로드 및 설치하기

cacti는 위에서 어늡한 RRDtool의 데이터베이스를 이용한 웹그래픽 생성엔진이다
cacti는 각종 데이터를 Mysql등의 데이터베이스에 시스템 상황들의 데이터값을 저장하고  시간단위로 저장된 데이터를 분석하여 웹상에서 그래프를 생성하여 보여주는 매우 유용한 시스템 모니터링 도구이다.

cacti,는 기본적으로 php를 기반으로 사용하는 웹도구이므로 반드기 php가 설치되어 있어야 한다
기본적으로  APM은 설치되어 있어야 하는것이다.

다운로드 사이트 : http://www.cacti.net/

 

우리는 wget을 이용하여 다운로드 한다
다운로드 위치는 /usr/local/src
 
소스 다운로드 : http://www.cacti.net/downloads/cacti-0.8.7b.tar.gz

[root@nayana rrdtool-1.2.27]# cd /usr/local/src
[root@nayana src]# wget http://www.cacti.net/downloads/cacti-0.8.7b.tar.gz

다운로드 받은 파일을 압축은 푼다

[root@nayana src]# tar xvfz cacti-0.8.7b.tar.gz

폴더명이 너무 길기 때문에 폴더명을 수정해 준다

[root@nayana src]# mv cacti-0.8.7b cacti
[root@nayana src]# cd cacti


mysql데몬을 어디서나 바로 start stop시킬수 있게 경로를 지정해 줬다

[root@nayana cacti]# vi /root/.bash_profile   (mysql, apache를 어디서나 start / stop 시킬수있게 경로 지정)

PATH=$PATH:$HOME/bin:/usr/local/mysql/bin:/usr/local/apache/bin

BASH_ENV=$HOME/.bashrc

USERNAME="root"

[root@nayana ]# source /root/.bash_profile  (바로 적용할 수 있게)


cacti 데이터 파일들을 저장하기 위해 mysql 데이터베이스를 생성

[root@nayana cacti]# mysqladmin create cacti -u root -p
 Enter password:
[root@nayana cacti]#


cacti 데이터 베이스에 필요한 테이블 및 기본 데이터 생성하기


[root@nayana cacti]# mysql cacti < cacti.sql -u root -p
 Enter password:
[root@nayana cacti]#

cacti 데이터베이스 접급권한 설정하기


[root@nayana cacti]# mysql -u root -p mysql
 Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4 to server version: 4.0.20-log
 
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
 
mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY '123456';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec) 

mysql> GRANT ALL ON cacti.* TO cacti@localhost IDENTIFIED BY '123456';

 cacti@localhost  : 사용자
 '123456' : 사용자 패스워드 (즉 cacti의 패스워드)
 
mysql 권한 설정 후 권한 재설정 사항을 적용하기 위해서 flush privileges; 명령어를 수행한다
위에서 기본제공되는 cacti.sql파일을 mysql에 저장하였다

저장된 mysql 데이테베이스를 확인하도록 하자

mysql> show databases;

+----------+
| Database |
+----------+
| cacti    |
| mysql    |
| test     |
+----------+
3 rows in set (0.00 sec)
 

mysql> use cacti;
Database changed

mysql> show tables;
+---------------------------+
| Tables_in_cacti           |
+---------------------------+
| cdef                      |
| cdef_items                |
| colors                    |
| data_input                |
| data_input_data           |
| data_input_fields         |
| data_local                |
| data_template             |
| data_template_data        |
| data_template_data_rra    |
| data_template_rrd         |
| graph_local               |
| graph_template_input      |
| graph_template_input_defs |
| graph_templates           |
| graph_templates_gprint    |
| graph_templates_graph     |
| graph_templates_item      |
| graph_tree                |
| graph_tree_items          |
| host                      |
| host_graph                |
| host_snmp_cache           |
| host_snmp_query           |
| host_template             |
| host_template_graph       |
| host_template_snmp_query  |
| poller                    |
| poller_command            |
| poller_item               |
| poller_output             |
| poller_reindex            |
| poller_time               |
| rra                       |
| rra_cf                    |
| settings                  |
| settings_graphs           |
| settings_tree             |
| snmp_query                |
| snmp_query_graph          |
| snmp_query_graph_rrd      |
| snmp_query_graph_rrd_sv   |
| snmp_query_graph_sv       |
| user_auth                 |
| user_auth_perms           |
| user_auth_realm           |
| user_log                  |
| version                   |
+---------------------------+

48 rows in set (0.00 sec)

mysql>quit

 

본 데이터베이스를 확인한 다음 cacti의 접속 환경설정 php파일을 수정하도록 하자



mysql 계정 및 패스워드를 입력한다



데이터 파일과 로그 파일이 저장될 디렉토리인 rra디렉토리와 log디렉토리의 퍼미션을 777로 설정한다

[root@nayana cacti]# chmod 777 rra log
[root@nayana cacti]#

기본 웹서버 디렉토리아래에 심볼릭링크를 걸어준다

[root@nayana cacti]# ln -s /usr/local/src/cacti /usr/local/apache/htdocs/cacti
[root@nayana cacti]# cd /usr/local/apache/htdocs/
[root@nayana htdocs]# ll
합계 2096
-rw-r--r--  1 lee  games    2326  1월  6  2005    apache_pb.gif
lrwxrwxrwx  1 root root            20  2월 21 11:10   cacti -> /usr/local/src/cacti



웹 브라우저를 이용하여 심볼릭링크를 걸어둔 URL로 접속한다

http://192.168.0.10/cacti/


  NEXt를 클릭한다
  
신규로 설치를 할 것인지 묻는느다>
처음 설치를 하기 때문에 New Install을 선택하고 NEXT버튼을 클릭한다
 


NOT FOUNT라고 경고 메시지가 뜬다
cacti에서 경로를 /usr/local/bin/rrdtool로 인식하기 때문이다
이것을 위의 그림과 같이 경로를 재 설정해 준다

/usr/local/rrdtool/bin/rrdtool    -->수정

혹 PHP 경로가 잘못 설정되어 있다고 나온다면
which php를 입력하여 나온 경로를 입력해 주면 된다

Finish 버튼을 클릭을 한다


User Login 창이 나타나면 admin admin 이라고 입력을 한다  
 
 
다음 접속부터 사용할 패스워드를 입력한다


 


위의 화면이 정상적으로 출력이 되면 설치가 제대로 된 것이다.

 

이제부터 cacti를 설정해 보자

 

   1. devices 클릭
   2. Localhost 클릭


 

1. Downed Device Detection : None
2. SNMP Version : Version1
3. SNMP Community : public

위의 그림과 같이 수정을 해 준 다음 save 버튼을 클릭한다.



다음은 cacti의 기본 환경 설정이다
1. 좌측메뉴의 Setting 클릭
2. General  클릭
3. RRDTool Utility Version :  RRDtool 1.2.x 버전 선택
4. SNMP Version : Version 1 선택
5. save


 

관리자 root의 crontab에 아래의 내용을 추가한다

[root@nayana cacti]# crontab -e

*/5 * * * * /usr/local/bin/php /usr/local/apache/htdocs/cacti/poller.php > /dev/null2>&1

 cacti에서 기본적으로 제공하는 poller.php 스크립트를 매 5분마다 실행하여 그래프플 생성하도록
 crontab에 설정을 추가한다
 

 

 

3. cacti 모니터 그래프 생성하기



좌측메뉴 devices 클릭 - 우측 localhost 클릭

 

Add Data Query 항목에서 아래 그림과 같이 3개의 항목을 추가해 준다
SNMP-Get Mounted Partions 선택 ---> add 버튼 클릭
 


항목 설명
   1. SNMP - Get Mounted Partitions       :   해당 o/s 의 파티션 정보 표시
   2. SNMP - Get Processor Information  : cpu 정보 표시
   3. SNMP - Interface Statistics             : 이더넷 트래픽 정보 표시

 이 밖에도 많은 것들을 추가하여 그래프로 보여 줄 수 있다.
 원하는 항목들을 선택하여 추가한 다음 save 버튼을 클릭하면 된다


위에서 생성했던 그래프 항목의 속성값들이 모두 나타난다
여기서 원하는 항목(그래프)만 선택하여 Create 버튼을 클릭한다
 



기본값으로 선택 후 create버튼을 클릭한다 (원하는 색상으로 변경할 수 있다)

 


선택하지 않은 항목이 있으면 이곳에서 선택해서 그래프를 생성할 수 있다
 



 좌측메뉴의 Graph Trees 클릭  ---> Default Tree 클릭



Tree Items항목에서 ++ 버튼을 클릭한다
 



 1. Parent Item           : root
 2. Tree Item Type     : Host
 3. Host                     : localhost
 4. Create 버튼 클릭



default Tree 항목에 localhost 항목이 새롭게 생겼다.

 


좌측 상단 graphs를 클릭하면 위 화면과 같이 나타난다 이것은 아직 로그 파일들이 생성되지 않아 타나난것이다.
약 5분정도 시간이 경과되면 아래와 같은 화면이 출력된다.
 


 
5분정도 경과 후 새로고침을 하면 위 화면처럼 그래프 화면이 보여진다



위 그림은 실제 모니터링이 되고 있는 모습이다


서버의 하드디스크 상황 . 메모리 상황 , 프로세스 상황  로그인 유저 상황 그리고 이더넷 카드의
트래픽을 확인 할 수 있다.

또한 기본 설정값으로 5분마다 웹페이지가 refresh 되도록 설정되어있기 때문에 5분이 지나면 웹페이지가
자동으로 새로고침되어 보여 준다.
그리고 해당 그래프 화면을 클릭하면 5분 . 일주일  1개월 1년의 그래프 화면을 볼수 있다


 

참고적으로 스위치 및  라우터 그리고 MS 계열도 모두 모니터링이 가능하다.




위 그림은 스위치 모니터링 페이지이며 각각 포트별로 트래픽을 확인 할 수 있다
스위치의 경우 각각 스위치마다 communiti 가 설정되어 있다
그 값을 불러주면 포트별로 트래픽을 확인 할 수 있다

이상으로 모니터링을 할 수 있는 RRDtool과 cacti에 대해 설명 하였으며
원격에 있는 리눅스 서버 및 MS 서버 그리고 라우터 및 스우치 등 다양하게 모니터링을 할 수 있다

감사합니다.


출처 : http://nayana.com/

Trackback 2 Comment 2
  1. rrdtool 2009.03.30 20:07 address edit & del reply

    설치 설명은 여기에 있네요...
    http://blog.naver.com/831jsh?Redirect=Log&logNo=70043303210

  2. WatchMan 2009.07.27 16:11 address edit & del reply

    좋은 자료 감사합니다.