준호씨의 블로그

fluentd 로그 컬럼 순서 변경하기 본문

개발이야기

fluentd 로그 컬럼 순서 변경하기

준호씨 2016. 5. 8. 16:15
반응형

fluentd 에서 로그를 파싱해서 output 으로 내 보낼때 컬럼의 순서를 바꾸는 방법을 찾아 보니 잘 안보이더라. 기본 제공되는 플러그인으로 어떻게 되지 않을까 했지만 방법을 찾지는 못했다.

format json 으로 보낼때야 별 상관 없겠지만 format ltsv 형식으로 내보낼때는 컬럼 순서를 변경 하고 싶은 경우가 있다.
(LTSV는 Labeled Tab-separated Values)

format ltsv 는 아래와 같이 출력해 주는 플러그인이다.
field1[label_delimiter]value1[delimiter]field2[label_delimiter]value2\n

delimiter 와 label_delimiter 옵션을 제공한다.
format ltsv
delimiter SPACE  # Optional. "\t"(TAB) is used by default
label_delimiter = # Optional. ":" is used by default

fluent-plugin-order 플러그인
플러그인 리스트를 찾아 보자
Rubygems 에 등록된 플러그인 리스트를 확인 해 볼 수 있다.

order 라는 플러그인 설명을 보면 내가 원하는 기능을 지원 하는 것 같다.
Output filter plugin to rearrange the order of the elements

플러그인 설치
fluent-gem install fluent-plugin-order

td-agent 를 사용한다면 fluent-gem 대신 td-agent-gem 을 사용한다.
td-agent-gem install fluent-plugin-order

사용
https://github.com/fukuiretu/fluent-plugin-order 의 설명을 보면 다음과 같은 방식으로 사용 할 수 있다.
<match example>
    type order
    add_tag_prefix order_finished
    after_order_keys bar,hoge,foo
</match>


참고


잡담
fluentd 를 먼저 접하고 logstash 를 접했다. 아직 둘 다 사용 경험은 적은 편.
아직도 계속 세팅 중이지만 logstash 가 사용하기는 훨씬 편한 것 같다. fluentd 는 내가 생각한대로 뭔가 잘 동작하지 않는다. 설명서를 잘 봐야 하지만 설명서도 잘 뜯어 보지 않는이상 무슨 말을 하는지 잘 모르겠다.

match 같은 경우도 여러개 설정 하면 여러개가 다 동작할 거 같지만 매번 다른 tag 를 생성 하던지 add_tag_prefix 같은걸로 tag 를 바꾼후 다른 곳에서 match 해서 가져 가야 된다.

기본 플러그인이 좀 미약한 느낌. 위의 order 플러그인도 직접 설치 해야 되고 syslog output 도 설치 해 줘야 됨.

logstash 에 비하면 빠른처리 속도가 장점인 것 같다. logstash 는 jvm 환경에서 동작하다 보니 메모리도 많이 먹고 초기 구동 속도가 느린 것 같음.

아직 잘 몰라서 그럴 수 있으니 좀 더 써보자.
반응형

'개발이야기' 카테고리의 다른 글

logstash 설치 및 기본사용  (0) 2016.05.08
fluentd syslog output  (1) 2016.05.08
osx top cpu 사용순으로 정렬하기  (0) 2016.05.08
php 의존성 관리도구. composer  (2) 2016.05.05
RFC2246 The TLS Protocol Version 1.0  (0) 2016.05.05
Comments