티스토리 뷰

chukwa란? 

open source의 hadoop 기반으로 개발된 대규모 분산 시스템을 모니터링을위한  데이터 로그 수집 시스템입니다.

즉 chukwa를 설치하기 위해선  선수과목으로 hadoop에 대한 기반 지식 및 설치를 필요로 합니다.



[ 그림1 ] Chukwa Architecture


이제 chukwa를 설치 해 보도록 하겠습니다.


설치환경

OS : Ubuntu 12.04 ( Linux Mint 12 Lisa )

Hadoop : 1.0.3

Chukwa : 0.4.0


Download URL

URL : http://ftp.daum.net/apache/hadoop/chukwa/chukwa-0.4.0/chukwa-0.4.0.tar.gz


step 1.  소스 설치

소스를 다운로드 받은 뒤 압축을 푼다.

$ wget 'http://ftp.daum.net/apache/hadoop/chukwa/chukwa-0.4.0/chukwa-0.4.0.tar.gz'

$ tar xvfz chukwa-0.4.0.tar.gz


step 2. 환경파일 설정

conf/chukwa-env.sh파일을 열어 java, hadoop, chukwa 의 경로에 대한 환경변수를 설정합니다. ( hadoop 설치되었다는 가정, 설치법은 블로그에 있음 )

export JAVA_HOME="/usr/lib/jvm/java-6-openjdk"
export HADOOP_HOME="/home/rocksea/work/hadoop-1.0.3"
export HADOOP_CONF_DIR="/home/rocksea/work/hadoop-1.0.3/conf"
export chukwaRecordsRepository="/chukwa/repos/"
export CHUKWA_PID_DIR=/home/rocksea/tmp/chukwa/pidDir
export CHUKWA_LOG_DIR=/home/rocksea/tmp/chukwa/log


step 3. collector 설정

로그를 수집하는 데몬의 포트를 지정합니다.

conf/collectors

http://localhost:8080



step 4.  아답타 설정

conf/initial_adaptors

add org.apache.hadoop.chukwa.datacollection.adaptor.ExecAdaptor Iostat 60 /usr/bin/iostat -x -k 55 2 0
add org.apache.hadoop.chukwa.datacollection.adaptor.ExecAdaptor Df 60 /bin/df -l 0
add org.apache.hadoop.chukwa.datacollection.adaptor.ExecAdaptor Sar 60 /usr/bin/sar -q -r -n ALL 55 0
add org.apache.hadoop.chukwa.datacollection.adaptor.ExecAdaptor Top 60 /usr/bin/top -b -n 1 -c 0


step 5.  hadoop 라이브러리 복사

구동되는데 이 파일 (hadoop-1.0.2-core.jar) 이 필요합니다.

$ cd ~/work/hadoop-1.0.2
$ cp hadoop-core-1.0.2.jar hadoop-1.0.2-core.jar


컬렉터를 띄우는데 이 파일이 필요합니다.

이제 컬렉터를 띄워줍니다.

$ cd ~/work/chukwa-0.4.0/lib
$ cp ~/work/hadoop-1.0.2/lib/commons-configuration-1.6.jar .


step 6. collector 실행

collector를 실행한다.

$ cd ~/work/chuckwa-0.4.0
$ bin/chukwa collector


step 7. agent  설정 및 실행

conf/agents

localhost


$ bin/chukwa agent

http://localhost:50070 에서 실제로 파일이 저장되는지 확인해 봅니다. 대략 5분마다 한번씩 저장됩니다.



step 8. chukwa adaptor list 확인

현재 agent가 작동중인 서버의 9093 ( 설정에따라 변경가능 ) port에 접속한뒤 list 확인

$ telnet localhost 9093

telnet > help

you're talking to the Chukwa agent.  Commands available:
add [adaptorname] [args] [offset] -- start an adaptor
shutdown [adaptornumber]  -- graceful stop
stop [adaptornumber]  -- abrupt stop
list -- list running adaptors
close -- close this connection
stopagent -- stop the whole agent process
stopall -- stop all adaptors
reloadCollectors -- reload the list of collectors
help -- print this message
         Command names are case-blind.

 

telnet > list 

adaptor_3fb00aca3ab63f2e28c0756334f03ce4)  org.apache.hadoop.chukwa.datacollection.adaptor.filetailer.CharFileTailingAdaptorUTF8NewLineEscaped chunkQueue 0 /home/rocksea/work/chukwa-0.4.0/bin/@TODO-CHUKWA_LOG_DIR@/metrics/chukwa-rocksea-chunkQueue.log 370691
adaptor_e4a48d686f9ef5b61a2d54d6ce87f729)  org.apache.hadoop.chukwa.datacollection.adaptor.filetailer.CharFileTailingAdaptorUTF8NewLineEscaped chukwaHttpSender 0 /home/rocksea/work/chukwa-0.4.0/bin/@TODO-CHUKWA_LOG_DIR@/metrics/chukwa-rocksea-chukwaHttpSender.log 457965


 

adaptor에 대해 추가 및 종료가 가능하다.

또한 $CHUKWA_HOME/logs/chukwa_agent_checkpoint50731  체크포인트 파일을 삭제하여 chukwa agent를 재시작 하면 adaptor 초기화를 시킬 수 있다.

 

step 9. agent 수집 테스트

구성환경

  

[ 그림 2 ] Test 환경

 

9-1. web 서버 agent adaptor 설정

conf/initial_adaptors

add org.apache.hadoop.chukwa.datacollection.adaptor.filetailer.LWFTAdaptor DAILY /home/rocksea/log/www.rocksea.com.collection.log 0

9-2. web 서버 agent 실행

$ $CHUKWA_HOME/bin/chukwa agent

 

9-3. log1 서버 collector 실행

$ $CHUKWA_HOME/bin/chukwa collector

 

9-4. web서버 로그 확인

[ INFO] [2012-08-16 18:15:51,592] com.rocksea.log.IMLog - log Execute!!
[ INFO] [2012-08-16 18:15:51,592] com.rocksea.log.IMLog - [SERVICE:rocksea1:1345108551592] 1234567890,abcde12345,region123,132.3,37.1,http://rocksea.com,FIREFOX,10.0,ANDROID,4.1.2,Samsung Galaxy S2,7,MEMBER,rocksea,etc1=value1,etc3=value3,etc2=value2
[ INFO] [2012-08-16 18:15:51,592] com.rocksea.log.IMLog - testWriteLog Execute!!
[ INFO] [2012-08-16 18:15:52,313] com.rocksea.log.IMLog - log Execute!!
[ INFO] [2012-08-16 18:15:52,313] com.rocksea.log.IMLog - [SERVICE:rocksea1:1345108552313] 1234567890,abcde12345,region123,132.3,37.1,http://rocksea.com,FIREFOX,10.0,ANDROID,4.1.2,Samsung Galaxy S2,7,MEMBER,rocksea,etc1=value1,etc3=value3,etc2=value2
[ INFO] [2012-08-16 18:15:52,314] com.rocksea.log.IMLog - testWriteLog Execute!!
[ INFO] [2012-08-16 18:15:53,072] com.rocksea.log.IMLog - log Execute!!
[ INFO] [2012-08-16 18:15:53,072] com.rocksea.log.IMLog - [SERVICE:rocksea1:1345108553072] 1234567890,abcde12345,region123,132.3,37.1,http://rocksea.com,FIREFOX,10.0,ANDROID,4.1.2,Samsung Galaxy S2,7,MEMBER,rocksea,etc1=value1,etc3=value3,etc2=value2
[ INFO] [2012-08-16 18:15:53,073] com.rocksea.log.IMLog - testWriteLog Execute!!

 

9-5. HDFS 저장 내역 확인

 hadoop의 namenode webserver에 접속하여 확인한다.

[ 그림 3 ]  수집로그 확인

 

[그림 4] 수집로그 확인

 

이상으로 chukwa에 대한 포스팅을 마치도록 하겠습니다.

감사합니다.

by rocksea.

댓글