mega's Blog
fluentd config 예제 본문
1. 로그 전송 agent
<source>
@type tail
@label @GAMELOG
path /data/NBA_NOW/logs/GameServer/ACCESS.log
pos_file /data/fluentd/pos/GameServer/ACCESS.log.pos
tag log.gameserver.access
<parse>
@type regexp
expression /^(?<logtime>\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}) \[([A-Z]*)\] - (?<message>(.)*)$/
</parse>
</source>
<source>
@type tail
@label @GAMELOG
path /data/NBA_NOW/logs/GameServer/DEBUG.log
pos_file /data/fluentd/pos/GameServer/DEBUG.log.pos
tag log.gameserver.debug
<parse>
@type multiline
format_firstline /^\d{4}\/\d{2}\/\d{2}/
format1 /^(?<logtime>\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}) \[([A-Z]*)\] - (?<message>(.)*)$/
</parse>
</source>
<source>
@type tail
@label @GAMELOG
path /home/nba/NBA_V2_Bin/GameServer/logs/OBSERVER.log
pos_file /data/fluentd/pos/GameServer/OBSERVER.log.pos
tag log.gameserver.observer
<parse>
@type multiline
format_firstline /^\d{4}\/\d{2}\/\d{2}/
format1 /^(?<logtime>\d{4}\/\d{2}\/\d{2} \d{2}:\d{2}:\d{2}) \[([A-Z]*)\] - (?<message>(.)*)$/
</parse>
</source>
<label @GAMELOG>
# Oberver로그 중 "[DBCommandPool:" 문자열이 포함된 메시지는 제외
<filter log.gameserver.observer>
@type grep
<exclude>
key message
pattern /\[DBCommandPool:/
</exclude>
</filter>
<filter log.gameserver.access>
@type grep
<exclude>
key message
pattern /\/public\/nbanow21.ping/
</exclude>
</filter>
<filter log.gameserver.*>
@type record_transformer
<record>
hostname ${hostname}
</record>
</filter>
<match log.gameserver.*>
@type forward
send_timeout 60s
recover_wait 10s
hard_timeout 60s
<buffer tag>
@type memory
flush_mode interval
flush_interval 5s
flush_at_shutdown true
flush_thread_count 4
</buffer>
<server>
name nss-gamelog01
host 172.18.42.91
port 54224
weight 100
</server>
<secondary>
@type file
path /data/fluentd/exception/forward-failed-gameserver
</secondary>
</match>
</label>
2. 로그 수신 agent
<source>
@type forward
port 24224
bind 0.0.0.0
</source>
<match log.gameserver.*>
@type file
path /data/logs/GameServer/${tag[2]}.%Y-%m-%d.%H%M
symlink_path /data/logs/GameServer/buffer.log
append true
<buffer tag,time>
@type file
path /data/fluentd/buffer/forward-buffer-gameserver
# 다음과 같은 값이 설정되었다고 한다면 매시 10분59초 (9분59초 + 1분)에 flush 됩니다.
timekey 10m
timekey_wait 1m
flush_mode interval
flush_interval 5s
flush_at_shutdown true
flush_thread_count 4
</buffer>
<format>
@type tsv
keys logtime,hostname,message
delimiter ' | '
</format>
</match>
Comments