콘텐츠로 이동

Specific log file

특정 폴더의 로그를 전송하는 방식

  • Fluentd 를 사용하면 아래 그림과 같이 로컬의  json 형태의 로그를 읽어 HIVE 로그수집 서버로 전송이 가능합니다.


예시

  • 로컬의 JSON 파일의 로그 예시
{
  "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 를 구성하여 **로그파일에 로그를 적재하는 방식**이 구현 가능합니다.

<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된 다음, 지정된 대상으로 전송 됩니다. (작동 방식은 아래 다이어그램을 참고)
  •