좋은 프로그램은 마음의 여유에서 나온다.
scribe 예제 따라하기 본문
페이스북 예제 따라하기
https://github.com/facebook/scribe/tree/master/examples
Example1. 로컬에서 로컬에 로그 남기기
/tmp/scribetest 디렉토리를 만든다
$ mkdir /tmp/scribetest
example1.conf파일을 매개변수로 스크라이브를 실행한다.
scribed 스크라이브소스폴더/examples/example1.conf
"Starting scribe server on port 1463"
이런 메시지와 함께 스크라이브 서버가 시작됨
다른 터미널을 열어 접속한 후
스크라이브소스디렉토리 밑의 examples로 이동한다
cd examples
스크라이브서버로 로그를 남긴다 카테고리는 test가 되고 로그 내용은 hello world임
echo "hello world" | ./scribe_cat test
스크라이브 서버를 실행한 터미널에 오픈한 파일명과 기록한 로그들이 나온다
vim 을 이용해 로그파일을 열어서 제대로 기록 되었나 확인한다
vim /tmp/scribetest/test/test_00000
hello world가 보일 것이다.
중간에 로그를 남길때 파이썬 라이브러리들을 설치하지 않아 import thrift.Thrift 에러가 나는 경우가 있음
이 경우
thrift, fb303, scribe 소스파일에서
lib/py 디렉토리에서 sudo python setup.py install을 해주면 파이썬 라이브러리들이 설치가 됨 fb303은 소스 밑에 바로 py디렉토리에 있음
Example2. 로컬에서 네트워크로(원격 서버) 로그 남기기
페이스북 예제에서는 1대의 머신에서 1463번 포트가 원격서버 1464번포트가 로컬인 것 처럼 구성하였음
vim examples/example2central.conf 파일을 열어 자신에 맡게 설정을 수정함
맨 아래 store가 default 카테고리일 경우 설정이고 buffer로 구성되어 primary는 파일에 정하고 flie_name를 설정해 줌
secondary도 저장될 file_name를 설정해줌
빠져나와서 아까와 마찬가지로 스크라이브를 실행함
scribed -c examples/example2central.conf
다른 터미널로 들어가서 클라이언트 환경설정을 변경함
vim examples/example2client.conf
포트등 설정이 있고 마찬가지로 buffer로 설정되어 primary는 원격 서버로 되어있고(예제에서는 localhost의 1463포트) secondary는 파일에 저장하게 되어있음 file_name를 수정해줌
마찬가지로 scribed -c examples/example2client.conf를 실행함
또 다른 터미널로 들어가서 이제 로컬(1464포트)로 로그를 날리면 example2central.conf에 설정한 파일에 로그가 기록되는지 확인함
Example3. 로컬에서 네트워크로(원격 서버) 로그 남기기
example2의 상태에서 원격 서버 역할을 하는 터미널에서 콘트롤 + c로 스크라이브를 죽인 후 다른 터미널에서 로그를 남기면 클라이언트 스크라이브는 전송을 할 수 없다고 하면서 재시도 sec가 나오며 재시도를 함. 여러 메시지를 날려본 후 다시 원격 서버를 키면 한번에 로그가 기록되게 됨
'클라우드,빅데이터 > Scribe' 카테고리의 다른 글
tail을 이용한 로그 수집 (0) | 2012.09.11 |
---|---|
scribe 설치 (0) | 2012.08.28 |