특정 폴더의 로그를 전송하는 방식
- Fluentd 를 사용하면 아래 그림과 같이 로컬의 json 형태의 로그를 읽어 HIVE 로그수집 서버로 전송이 가능합니다.
예시
- 로컬의 JSON 파일의 로그 예시
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
{ "dateTime" : "2022-04-15 13:02:45", "timezone" : "GMT+09:00", "channel" : "C2S", "source" : "Web", "serverId" : "1", "osVer" : "4.3.1", "appId" : "com.gcp2.hivesdk.android.google.global.normal", "company" : "C2S", "model" : "SHW-M250S", "lang" : "ko", "class" : "sample value of class", "os" : "A", "appVer" : "1.0", "cpu" : "armeabi-v7a", "market" : "GO", "clientIp" : "127.0.0.1", "guid" : "4314nbh31211234ld" , "sdkVer" : "2.0.1", "serverIp" : "127.0.0.2", "category" : "hive_login_log", "newUser" : "N", "hiveSnsType" : "FB", "deviceName" : "SM-G935", "osVersionFixed" : "9.2.1", "serverUid" : "QA-2", "level" : "7", "isEmulator" : "1" } |
- 로그파일에 로그를 적재하는 방식
- 아래과 같이 td-agent.conf 를 구성하여 “로그파일에 로그를 적재하는 방식“이 구현 가능합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
<source> @type tail path /game/sample/log/com2us.log pos_file /var/log/td-agent/com2us_filelog.pos tag ha2union.game.sample.com2us_log format json </source> <source> @type tail path /game/sample/log/com2usHoldings.log pos_file /var/log/td-agent/com2usHoldings_filelog.pos tag ha2union.game.sample.com2usHoldings_log format json </source> <source> @type tail path /game/sample/log/com2usPlatform.log pos_file /var/log/td-agent/com2usPlatform_filelog.pos tag ha2union.game.sample.com2usPlatform_log format json </source> <match ha2union.** > @type copy @include td-agent-forest.conf # fluentd-plugin-forest <store> @type forward send_timeout 60s recover_wait 10s heartbeat_interval 1s #heartbeat_type tcp transport tcp phi_threshold 16 hard_timeout 60s require_ack_response true # at-least-once buffer_type file buffer_chunk_limit 8m # 허용되는 최대 청크의 크기 buffer_queue_limit 10240 # 출력 큐의 최대길이 buffer_path /data/log/td-agent/buffer/forward.buffer flush_interval 1s # 다음 버퍼를 호출하기 전에 대기하는 간격 <server> name hiveanalyticslog-server-03 host analytics-hivelog-03.withhive.com port 24224 weight 50 </server> <server> name hiveanalyticslog-server-04 host analytics-hivelog-04.withhive.com port 24224 weight 50 </server> <secondary> @type file path /var/log/td-agent/forward-failed # 각자 환경에 따라 변경 </secondary> </store> </match> <source> @type forward </source> |
- secondary : 백업 옵션입니다. 에러가 발생하여 서버를 사용 할 수 없는 경우 사용 할 수 있습니다. path에 file 형태로 백업을 합니다.
- Buffer Plugin : 버퍼는 “chunk(청크)”의 집합입니다. chunk는 주기적으로 출력 대기열로 flush된 다음, 지정된 대상으로 전송 됩니다. (작동 방식은 아래 다이어그램을 참고)