목적
fluentd 는 멀티 프로세스 를 지원한다. 감시 대상이 많고 멀티코어 환경이라면 worker process를 늘려 throughput 을 늘릴 수도 있다.
설정
공통 설정
# 2개의 worker process 생성
<system>
workers 2
</system>
# 아래는 ps 명령어 로 확인된 process 갯수
[root@tlog-transmit td-agent]# ps -ef | grep fluent
root 6952 6245 5 04:26 pts/1 00:00:00 /opt/td-agent/bin/ruby /opt/td-agent/bin/fluentd -c td-agent.conf
root 6957 6952 8 04:26 pts/1 00:00:01 /opt/td-agent/bin/ruby -Eascii-8bit:ascii-8bit /opt/td-agent/bin/fluentd -c td-agent.conf --under-supervisor
root 6958 6952 8 04:26 pts/1 00:00:01 /opt/td-agent/bin/ruby -Eascii-8bit:ascii-8bit /opt/td-agent/bin/fluentd -c td-agent.conf --under-supervisor
<worker> 태그 설정
<worker> 태그를 사용하면 단수 혹은 복수 의 worker 에게 개별적인 로직을 부여할 수 있고
태그를 사용하지 않는다면 모든 worker 가 같은 로직을 부여받게 된다.
# work on multi process workers. worker0 - worker3 run in_forward
<source>
@type forward
</source>
# work on only worker 0. worker1 - worker3 don't run in_tail
<worker 0>
<source>
@type tail
</source>
</worker>
# work on multi process workers. worker0 - worker1 run in_forward
<worker 0-1>
<source>
@type tail
</source>
</worker>
설정시 주의점
fluentd 는 <input>, <filter>, <output> 을 싸이클을 가지고 있는데 worker 를 설정할때도 이 싸이클을 유지한다.
예를 들어 1번 worker 에거 <input> 만 나머지는 다른 worker에게 부여하는 등 영역을 분담하는식의 설정을 할 수 없다.
설정 예
<system>
workers 2
</system>
<worker 0>
<source>
@type tail
path /efs/bos/*/*/*/*.log
tag bos.tail
<parse>
@type json
</parse>
pos_file /efs/fluentd/fluentd0.pos
read_from_head true
#asis_key message
refresh_interval 5
</source>
<match bos.tail>
@type forward
send_timeout 60s
recover_wait 10s
hard_timeout 60s
# primary host
<server>
host 127.0.0.1
port 8888
</server>
# secondary host
<buffer>
@type file
path /efs/fluentd/buffer/td0
</buffer>
</match>
</worker>
<worker 1>
<source>
@type tail
path /efs/casino/*/*/*/*.log
tag bos.tail
<parse>
@type json
</parse>
pos_file /efs/fluentd/fluentd1.pos
read_from_head true
#asis_key message
refresh_interval 5
</source>
<match bos.tail>
@type forward
send_timeout 60s
recover_wait 10s
hard_timeout 60s
# primary host
<server>
host 127.0.0.1
port 8888
</server>
# secondary host
<buffer>
@type file
path /efs/fluentd/buffer/td1
</buffer>
</match>
</worker>
Reference
'DATA COLLECTOR > Fluentd' 카테고리의 다른 글
Fluentd config copy (file to csv,json) (0) | 2021.10.01 |
---|---|
Fluentd config High Availability (0) | 2021.10.01 |
Fluentd config source (0) | 2021.10.01 |
Fluentd config directives, section (0) | 2021.10.01 |
Fluentd 설치 (0) | 2021.10.01 |