flume 설치 해보고 로그 수집하기

 

flume 이란 ?

분산 환경에 만들어진 대용량의 로그 데이터를 효율적으로 옮길 수 있는 로그 수집기.
수많은 분산된 서버의 로그 데이터를 HDFS 한곳으로 모으도록 해줍니다.

FLUME ARCHITECTURE

master : 저장소 + Flume master
Agent : 데이터를 생산하는 시스템에 설치.
Collector : 에이전트로 부터 데이터를 수집하여 HDFS에 보내는 역할
( 에이전트와 콜렉터 상태 모니터링 )
에이전트가 발생한 로그나 데이터들을 모니터링하여 데이터 스트림을 생성하여 콜렉터로 보낸다.
콜렉터는 작은 스트림들을 묶어서 보다 큰 스트림으로 뭉친 다음 HDFS에 저장한다

 

 

 
설치환경
OS : ubuntu 12.04.2 LTS
JDK : sun 1.6.0_38
flume: flume-0.9.4-cdh4.0.1

 

하둡을 설치한 머신에 flume을 같이 설치하는 경우에는 hadoop namenode 포트를 변경해 줘야 한다.
왜 그런지 모르겠으나 flume 설치후 namenode가 시작이 안된다.

그리고 flume설치후 리부트를 하면 flume master 데몬은 띄우면 안된다.
자동 실행되기때문에 재 실행하면 떠있는 데몬이 죽는다.

flume 다운로드
 
http://archive.cloudera.com/cdh4-deprecated/cdh/4/flume-0.9.4-cdh4.0.1.tar.gz
압축해제
tar xvfz flume-0.9.4-cdh4.0.1.tar.gz
환경변수 설정
gedit /etc/profile
export FLUME_HOME=/usr/lib/flume
export FLUME_CONF_DIR=/usr/lib/flume/conf

flume-site.xml 수정
cd /home/hadoop/flume/conf
vi flume-site.xml
<configuration>
  <property>
    <name>flume.master.servers</name>
    <value>flumemaster</value>
    <description>This is the address for the config servers status
 server (http)
    </description>
  </property>
</configuration>

flume master 실행
$ ./bin/flume master
flume을 최초에 실행하고 나서 리부트 하면
자동으로 Flume 데몬이 뜨므로 다시 띄우면 안됨
다시 띄우면 데몬이 죽고 다시 실행이 안됨

http://localhost:35871/

Flume Agent 실행
새로운 터미널을 열어서 아래 행을 실행한다.
$ ./bin/flume node_nowatch -n agent01

http://localhost:35862/

Flume Collector
새로운 터미널을 열어서 아래 행을 실행한다.
$ ./bin/flume node_nowatch -n collector01


tail과 tailDir 소스 설정법

규칙 : tail("filename"[,startFromEnd=false]{.delim="regex", delimMode="exclude|prev|next"})
사용예 : tail("파일명")

규칙 : 약("dirname"[, fileregex=".*"[, startFromEnd=(false[, recurseDepth=0]]]{,delim="regex", delimMode="exclude|prev|next"})
사용예 : tailDir("디렉터리명)

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

실습을 위한 flume master 설정
http://localhost:35871/
위 url로 들어가서 config에서 설정하는 방법과 쉘 커멘드에서 설정하는 방법이 있다.

아래는 쉘 커멘드로 설정하는 방법이다.

flume 쉘 커멘드 실행

새로운 터미널을 연다.
$./flume shell -c localhost

exec config agent 'tail("/usr/lib/flume/test.txt")' 'agentSink("localhost",35853)'

exec config collector 'collectorSource(35853)' 'collectorSink("file:///usr/local/flume/collected", "test")'

exec config agent 'tailDir("/usr/local/hadoop-1.0.4/logs/")' 'agentSink("localhost",35853)'

exec config collector 'collectorSource(35853)' 'collectorSink("file:///usr/local/flume/collected", hadoop_log")'

flume master에서 결과 확인
http://localhost:35871/

colleced 폴더에 로그파일이 수집된 모습

수집된 파일의 내용


 

 

[출처] http://pacino.tistory.com/entry/flume-%EC%84%A4%EC%B9%98-%ED%95%B4%EB%B3%B4%EA%B3%A0-%EB%A1%9C%EA%B7%B8-%EC%88%98%EC%A7%91%ED%95%98%EA%B8%B0

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
공지 오라클 기본 샘플 데이터베이스 졸리운_곰 2014.01.02 86672
공지 [SQL컨셉] 서적 "SQL컨셉"의 샘플 데이타 베이스 SAMPLE DATABASE of ORACLE 가을의 곰을... 2013.02.10 79030
공지 [G_SQL] Sample Database 가을의 곰을... 2012.05.20 95791
22 UNION과 UNION ALL 의 차이 및 주의 사항 졸리운_곰 2017.08.27 1284
21 컬럼내 특정 문자를 다른문자로 변경하고자 할때 졸리운_곰 2017.06.10 1501
20 [MySQL] 레코드 데이터 치환하기 (REPLACE) 졸리운_곰 2017.06.10 1426
19 MySQL / 테이블에서 특정 문자열 바꾸기 졸리운_곰 2017.06.10 1306
18 MySQL Redis Plugin file 졸리운_곰 2017.05.30 1724
17 [DB] MySQL Check, Repair, Optimize(개별/전체 테이블 포함) 졸리운_곰 2017.05.21 1250
16 Transfer from sqlite to MySQL/ sqlite에서 mysql로 변환 졸리운_곰 2017.03.18 1129
15 [MySQL] 힌트설정 / 쿼리캐시 졸리운_곰 2017.03.15 1510
14 [MySQL힌트 정리] 졸리운_곰 2017.03.15 1718
13 [mysql]Hint 사용방법 졸리운_곰 2017.03.15 1507
12 MySQL Ver. 5.1 힌트를 이용한 실행계획 제어 file 졸리운_곰 2017.03.15 1184
11 MySQL 덤프 / 임포트 dump / import 졸리운_곰 2017.01.05 1520
10 [질문] 두개의 컬럼에 대해 group by 적용 할 수 있을까요? 졸리운_곰 2016.12.17 842
9 MySQL 중복 키 관리 방법 (INSERT 시 중복 키 관리 방법 (INSERT IGNORE, REPLACE INTO, ON DUPLICATE UPDATE) 졸리운_곰 2016.12.17 1110
8 [mysql] 쿼리값이 NULL 일때 0으로 바꾸기 졸리운_곰 2016.12.14 1196
7 MySql] Insert Select 문 졸리운_곰 2016.12.06 1410
6 [MySQL] substring_index , substring ( split, explode ) 졸리운_곰 2016.12.06 1366
5 MySQL 테이블 이름변경, 테이블 복사 졸리운_곰 2016.11.23 1535
4 [MySQL] MySQL 테이블 수정 졸리운_곰 2016.11.16 1541
3 generate days from date range mysql 날짜검색시 between 안에 포함되는 날짜전체 출력 졸리운_곰 2016.11.02 1259
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED