본문 바로가기

S3 Output Plugin 이제 flentd 의 워크플로우와 설정 파일을 수정하는 방법을 보았으니, 내가 하고자 하는 인프라를 구축하고 td-agent.conf 파일을 수정하면 된다.input -> (filter) -> match 모델로 거의 모든 다양한 데이터 수집이 가능한데, 흔히 쓰이는 것들을 요약하자면...웹서버 로그 / 시스템 로그 / Rest API 등을 입력받아, Mongo / Elasticsearch / S3 / Treasure Data 등으로 전달하는 일을 주로 한다.인터넷을 뒤져보면 더 많은 예제도 찾을 수 있다. 내가 해야 하는 작업은 아래와 같다. 1. 웹 어플리케이션에서 fluent-logger 를 통해2. fluentd 서버로 메시지 전달3. 수집된 로그를 가공하여 S3 로 전달4. AWS Athena 에..
Plugin parameter 각 Fluentd 플러그인에는 일련의 파라미터가 있다.예를 들어, in_tail 플러그인에는 rotate_wait 및 pos_file 과 같은 파라미터가 있다. 각 파라미터에는 연관된 특정 타입이 있으며, 각 다음과 같이 정의된다 : 파라미터 데이터 타입 string필드가 문자열로 분석된다. 이것은 가장 일반적인 타입으로 각 플러그인이 문자열 처리 방법을 결정한다.문자열에는 인용되지 않은 한 줄의 문자열, 따옴표(')로 인용된 문자열, 쌍따옴표(")로 인용된 문자열 등으로 구분할 수 있다. integer필드가 정수로 분석된다. float필드가 부동소숫점으로 분석된다. size필드가 바이트 수로 분석되며 몇 가지 표기법이 있다.- 값이 k 또는 K 와 일치하면, 값은 INTEGER(KByte) 이다.- 값..
td-agent.conf 문법 이 설정 파일을 수정하여 사용자 정의하기 전에 몇가지 문법을 확인해 보자.설정 파일에서 쓰이는 지시자(Directives) 목록은 다음과 같다. - source : 입력 형태 결정.- match : 출력 목적지 결정- filter : 이벤트 처리 파이프라인 결정- system : 시스템 광역 설정- label : 내부 라우팅을 위한 출력 및 필터를 그룹화- @include : 다른 설정 파일 삽입 1. source input 플러그인을 매개변수로 하는 지시자로 어떤 방식으로 이벤트를 입력받을 것인지 설정한다.Fluentd 의 표준 input 플러그인에는 http 와 forward 가 있다.http 플러그인은 fluentd 를 HTTP 엔드포인트로 바꿔 HTTP 메시지를 전달 받는다.forward 플러그인..
td-agent.conf 설정 td-agent.conf 는 fluentd 의 설정 파일이다. 1. 어떤 경로를 통해서 input 이 들어왔는지 체크하고, 2. 특정 경로나 tag 별로 데이터를 수집하여, 3. 어디로 수집된 데이터를 보낼 것인지 등을 설정한다. $ curl -X POST -d 'json={"json":"message"}' http://localhost:8888/debug.testcs 이전 예제에서 처럼 HTTP input 에서 POST 메소드로 데이터를 json 포맷으로 변환하였고, 아래와 같이 td-agent.log 파일에 기록되었다. 2017-04-05 07:05:41 +0000 debug.test: {"json":"message"}cs 이것은 /etc/td-agent/td-agent.conf 설정 파일에 위처럼 ..
fluentd (td-agent) install Fluentd 는 125 개 이상의 시스템들에서 모든 로그를 수집할 수 있는 오픈 소스 로그 수집기(log collector) 이다.대부분의 어플리케이션이 자체 로그를 기록하지만, 로그 수집기는 이 다양한 로그들을 원하는 형태로 취합하여 분석/통계가 용이하도록 해준다.일단 서버에 설치되면 백그라운드에서 다양한 유형의 데이터를 JSON 형태로 수집, 분석, 변환, 저장 등을 한다. 아래 순서대로 설치를 하겠지만, fluentd 가 아닌 td-agent 를 설치할 것이다.td-agent 란 Ruby 로 작성된 fluentd 를 사용자가 쉽게 사용할 수 있도록 트레저데이터(Treasure Data) 사에서 제공하는 래퍼 프로그램이다.fluentd 의 기능이나 업데이트를 직접 제어하려는 것이 아니라면, Ruby..