본문으로 건너뛰기

LogBus 사용 가이드

최근 업데이트 2026. 10. 03.

이 섹션에서는 데이터 전송 도구 LogBus의 사용 방법을 소개합니다:

LogBus Windows 버전은 다음 문서를 참고하십시오: LogBus Windows 버전 사용 가이드

연동을 시작하기 전에 먼저 데이터 규칙을 읽어야 합니다. TE의 데이터 형식과 데이터 규칙을 숙지한 후 이 가이드를 읽고 연동을 진행하십시오.

LogBus로 업로드하는 데이터는 반드시 TE의 데이터 형식을 따라야 합니다

LogBus 다운로드​

최신 버전: 1.5.17

업데이트 시간: 2022-11-08

다운로드 주소

Linux arm 버전 다운로드 주소

버전 업그레이드 안내:

  • 1.5.0 이상 버전:

먼저 ./logbus stop 명령으로 LogBus를 중지하고, 중지가 완료되면 ./logbus update 명령을 실행하여 최신 버전으로 업그레이드합니다

  • 1.5.0 이전 버전을 사용 중이며 새 버전으로 업그레이드해야 하는 경우 ThinkingAI 담당자에게 문의하십시오

1. LogBus 소개​

LogBus 도구는 주로 백엔드의 로그 데이터를 TE 백엔드로 실시간 적재하는 데 사용합니다. 핵심 동작 원리는 Flume과 비슷하며, 서버 로그 디렉터리의 파일 스트림을 모니터링하다가 디렉터리 내 로그 파일에 새 데이터가 생기면 새 데이터를 검증한 후 TE 백엔드로 실시간 전송합니다.

다음과 같은 사용자에게 LogBus를 통한 데이터 연동을 권장합니다:

  1. 서버 SDK를 사용하며 LogBus로 데이터를 업로드하는 사용자
  2. 데이터의 정확성과 차원에 대한 요구가 높아 클라이언트 SDK만으로는 데이터 요구를 충족할 수 없거나, 클라이언트 SDK를 연동하기 어려운 경우
  3. 백엔드 데이터 푸시 프로세스를 직접 개발하고 싶지 않은 경우
  4. 대량의 과거 데이터를 전송해야 하는 경우

2. 사용 전 데이터 준비​

1. 먼저 전송할 데이터를 ETL로 TE의 데이터 형식으로 변환하여 로컬에 기록하거나 Kafka 클러스터로 전송합니다. 서버 SDK의 로컬 파일 기록용 consumer나 Kafka용 consumer를 사용하는 경우 데이터가 이미 올바른 형식이므로 변환할 필요가 없습니다.

2. 업로드할 데이터 파일을 저장할 디렉터리 또는 Kafka의 주소와 topic을 정하고 LogBus의 관련 설정을 구성합니다. LogBus는 파일 디렉터리의 파일 변경(새 파일 생성 또는 기존 파일 tail)을 모니터링하거나 Kafka의 데이터를 구독합니다.

3. 모니터링 디렉터리에 저장되어 이미 업로드된 데이터 로그의 이름을 직접 변경하지 마십시오. 로그 이름을 변경하면 새 파일을 만든 것과 같아서 LogBus가 해당 파일을 다시 업로드하여 데이터가 중복될 수 있습니다.

4. LogBus 데이터 전송 컴포넌트에는 데이터 버퍼가 있어 LogBus 디렉터리가 디스크를 다소 많이 차지할 수 있습니다. 따라서 LogBus 설치 노드의 디스크 공간이 충분한지 확인하십시오. 프로젝트 1개(즉 APP_ID 1개 추가)로 데이터를 전송할 때마다 최소 10G의 저장 공간을 확보해야 합니다.

3. LogBus 설치 및 업그레이드​

3.1 LogBus 설치​

1. LogBus 압축 파일을 다운로드하고 압축을 해제합니다.

2. 압축 해제 후 디렉터리 구조:

  1. bin: 실행 프로그램 폴더
  2. conf: 설정 파일 폴더
  3. lib: 기능 폴더

3.2 LogBus 업그레이드​

1.5.0 이후 버전을 사용 중이라면 먼저 ./logbus stop 명령으로 LogBus를 중지한 다음 ./logbus update 명령으로 LogBus를 최신 버전으로 업그레이드하고 LogBus를 다시 시작하면 됩니다

3.3 docker 버전​

docker 컨테이너에서 logbus를 사용하려면 LogBus docker 사용 가이드를 참고하십시오

4. LogBus 파라미터 설정​

1. 압축 해제한 conf 디렉터리로 이동하면 설정 파일 logBus.conf.Template이 있습니다. 이 파일에는 LogBus의 모든 설정 파라미터가 들어 있으며, 처음 사용할 때 logBus.conf로 이름을 바꾸면 됩니다.

2. logBus.conf 파일을 열어 관련 파라미터를 설정합니다

4.1 프로젝트 및 데이터 소스 설정(필수 설정)​

  • 프로젝트 APP_ID
##APPID는 tga 공식 사이트의 token입니다. TE 백엔드의 프로젝트 구성 페이지에서 연동할 프로젝트의 APPID를 확인하여 여기에 입력하며, 여러 APPID는 ","로 구분

APPID=APPID_1,APPID_2
  • 모니터링 파일 설정(둘 중 하나를 선택, 필수 설정)

4.1.1. 데이터 소스가 로컬 파일인 경우​

##LogBus가 읽는 데이터 파일의 경로 및 파일명(파일명은 퍼지 매칭 지원), 읽기 권한 필요
##서로 다른 APPID는 쉼표로 구분하고, 같은 APPID의 서로 다른 디렉터리는 공백으로 구분
##TAIL_FILE의 파일명은 java 표준 정규표현식과 와일드카드 두 가지 모드 지원
TAIL_FILE=/path1/dir*/log.* /path2/DATE{YYYYMMDD}/txt.*,/path3/txt.*
##TAIL_MATCHER는 TAIL_FILE 경로의 퍼지 매칭 모드 지정 regex-정규식 glob-와일드카드.
##regex는 정규식 모드로 java 표준 정규표현식을 사용할 수 있지만, 한 단계 디렉터리와 파일명의 퍼지 매칭만 지원
##glob은 와일드카드 모드로 여러 단계 디렉터리의 퍼지 매칭을 지원하지만, DATE{} 형식 매칭은 미지원
##기본적으로 regex 정규표현식 매칭 사용
#TAIL_MATCHER=regex

TAIL_FILE은 여러 경로 아래 여러 하위 디렉터리에 있는 여러 파일의 모니터링을 지원합니다. 아래 그림은 그 예시입니다:

APPID모니터링 디렉터리 경로모니터링 디렉터리의 하위 디렉터리모니터링 파일TAIL_FILE
APPID1/root/log_dir1dir_a、dir_b、dir_c각 하위 디렉터리의 log.1/root/log_dir1/dir_*/log.*
APPID1/root/log_dir2/log20190101、2019010220190101 아래의 log.1; 20190102 아래의 log.1, log.2, log.3/root/log_dir2/log/DATE{YYYYMMDD}/log.*
APPID2/test_log—a.log/test_log/*
원본 이미지 보기

해당 파라미터 설정:

APPID=APPID1,APPID2

TAIL_FILE=/root/log_dir1/dir_*/log.* /root/log_dir2/log/DATE{YYYYMMDD}/log.*,/test_log/*

구체적인 규칙은 다음과 같습니다:

  • 같은 APP_ID의 여러 모니터링 경로는 공백으로 구분합니다
  • 서로 다른 APP_ID의 모니터링 경로는 반각 쉼표로 구분하며, 쉼표로 구분한 모니터링 경로가 순서대로 각 APP_ID에 대응합니다
  • 모니터링 경로의 하위 디렉터리(즉 파일이 있는 디렉터리)는 날짜 형식, 정규표현식 또는 와일드카드 매칭으로 모니터링할 수 있습니다
  • 파일명은 정규표현식 또는 와일드카드로 모니터링할 수 있습니다

모니터링할 로그 파일을 서버의 루트 디렉터리에 저장하지 마십시오.

날짜 형식 하위 디렉터리 규칙(regex 모드만 지원):

날짜 형식 하위 디렉터리는 DATE{}로 날짜 템플릿을 감싸야 하며, DATE는 반드시 대문자여야 합니다. 아래는 인식 가능한 날짜 템플릿과 해당 템플릿으로 모니터링되는 파일의 예시이며, 이에 한정되지 않습니다. 날짜 템플릿은 표준 날짜 형식이면 됩니다.

  1. /root/logbus_data/DATE{YYYY-MM-DD}/log.* ---> /root/logbus_data/2019-01-01/log.1
  2. /root/logbus_data/DATE{YYMMDD}/log.*---> /root/logbus_data/190101/log.1
  3. /root/logbus_data/DATE{MM_DD_YYYY}/log.*---> /root/logbus_data/01_01_2019/log.1
  4. /root/logbus_data/DATE{MM*DD}/log.*---> /root/logbus_data/01*01/log.1

4.1.2. 데이터 소스가 kafka인 경우​

1.5.2 버전부터 파라미터 KAFKA_TOPICS는 정규표현식을 더 이상 지원하지 않습니다. 여러 topic을 모니터링해야 하는 경우 각 topic을 공백으로 구분합니다. APP_ID가 여러 개인 경우 각 APP_ID가 모니터링하는 topic을 반각 쉼표로 구분합니다. 파라미터 KAFKA_GROUPID는 고유해야 합니다. 1.5.3 버전에서 추가된 파라미터 KAFKA_OFFSET_RESET으로 Kafka의 kafka.consumer.auto.offset.reset 파라미터를 설정할 수 있으며, 가능한 값은 earliest와 latest이고 기본값은 earliest입니다.

주의: 데이터 소스의 Kafka 버전은 반드시 0.10.1.0 이상이어야 합니다

단일 APP_ID 예시:

APPID=appid1

######kafka 설정
#KAFKA_GROUPID=tga.group
#KAFKA_SERVERS=localhost:9092
#KAFKA_TOPICS=topic1 topic2
#KAFKA_OFFSET_RESET=earliest

#선택 가능한 클라우드 서비스 제공업체: tencent/ali/huawei
#KAFKA_CLOUD_PROVIDER=
#KAFKA_INSTANCE=
#KAFKA_USERNAME=
#KAFKA_PASSWORD=

#SASL 인증
#KAFKA_JAAS_PATH=
#KAFKA_SECURITY_PROTOCOL=
#KAFKA_SASL_MECHANISM=

복수 APP_ID 예시:

APPID=appid1,appid2

######kafka 설정
#KAFKA_GROUPID=tga.group
#KAFKA_SERVERS=localhost:9092
#KAFKA_TOPICS=topic1 topic2,topic3 topic4
#KAFKA_OFFSET_RESET=earliest

#선택 가능한 클라우드 서비스 제공업체: tencent/ali/huawei
#KAFKA_CLOUD_PROVIDER=
#KAFKA_INSTANCE=
#KAFKA_USERNAME=
#KAFKA_PASSWORD=

#SASL 인증
#KAFKA_JAAS_PATH=
#KAFKA_SECURITY_PROTOCOL=
#KAFKA_SASL_MECHANISM=

4.2 전송 파라미터 설정(필수 설정)​

##전송 설정
##전송할 url

##http 전송 시 사용
PUSH_URL=https://global-receiver-ta.thinkingdata.cn/logbus
##프라이빗 배포 서비스를 사용하는 경우 전송 URL을 다음으로 수정하십시오: http://데이터 수집 주소/logbus

##appid 검사 활성화 여부, 기본값은 비활성화
#IS_CHECK_APPID=false

##1회 전송 최대 건수
#BATCH=10000
##최소 전송 간격(단위: 초)
#INTERVAL_SECONDS=60
##전송 스레드 수, 실제 스레드 수는 설정한 스레드 수+1이며 기본값은 스레드 2개
#NUMTHREAD=1

##각 데이터에 uuid 속성 추가 여부(활성화하면 전송 효율이 떨어짐)
#IS_ADD_UUID=true

##파일 전송 압축 포맷:gzip,snappy,none
#COMPRESS_FORMAT=none

4.3 Flume 메모리 파라미터 설정(선택 설정)​

# flume 채널 용량 설정
# 채널 용량. 배포 머신의 사양에 따라 상황에 맞게 정해야 합니다.
CAPACITY=1000000

# 채널에서 sink로의 전송량, BATCH 파라미터보다 커야 함
TRANSACTION_CAPACITY=10000

##flume 실행 시 최대 메모리 지정, 단위는 M.
#MAX_MEMORY=2048

# flume의 channel 설정, file과 memory 두 가지(선택, 기본값은 file)
# CHANNEL_TYPE=file

4.4 모니터링 파일 삭제 설정(선택 설정)​

# 모니터링 디렉터리 파일 삭제. 주석을 해제하면 파일 삭제 기능이 활성화됨
# 일(day) 또는 시간(hour) 단위로만 삭제 가능
# UNIT_REMOVE=hour
# 얼마나 이전의 파일을 삭제할지
# OFFSET_REMOVE=20
# 이미 업로드된 모니터링 파일 삭제, 삭제 간격(분)
# FREQUENCY_REMOVE=60

4.5 커스텀 파서(선택 설정)​

1.5.9 버전부터 커스텀 데이터 파서를 지원하며, 원본 데이터 형식이 TE 데이터 형식과 다를 때 형식을 직접 변환하는 데 사용합니다.

자세한 내용은 다음과 같습니다:

  1. 다음 의존성을 추가합니다

Maven:

<dependency>
<groupId>cn.thinkingdata.ta</groupId>
<artifactId>integration-common-api</artifactId>
<version>1.0.9</version>
</dependency>

Gradle:

// https://mvnrepository.com/artifact/cn.thinkingdata.ta/logbus-custom-interceptor
compile group: 'cn.thinkingdata.ta', name: 'integration-common-api', version: '1.0.9'
  1. CustomInterceptor 인터페이스의 transFrom 메서드를 구현합니다. 메서드의 첫 번째 파라미터는 원본 데이터 내용이고, 두 번째 파라미터는 sourceName입니다(APP_ID를 구분해야 할 때 사용합니다. APP_ID에 따라 구분하며, 예를 들어 APP_ID를 하나만 설정하면 sourceName은 r1이고, 여러 APP_ID를 설정하면 sourceName은 순서대로 r1, r2 등입니다). transferToList 메서드는 데이터 1건을 여러 건으로 변환할 수 있으며, 사용하려면 설정에 INTERCEPTOR_ONE_TO_MORE=true를 추가해야 합니다. 두 메서드 중 하나만 사용할 수 있습니다.
public interface CustomInterceptor {

TaDataDo transFrom(String var1, String var2) throws Exception;

List<TaDataDo> transferToList(String var1, String var2) throws Exception;
}

구현한 인터페이스 메서드 예시:

public TaDataDo transFrom(String s, String s1) {
return JSONObject.parseObject(s, TaDataDo.class);
}
  1. 아래 두 필드를 설정하면 됩니다
##아래 두 필드는 커스텀 파서 사용 설정(두 필드를 모두 설정해야 사용 가능)
##커스텀 파서의 정규화된 이름(패키지명+클래스명), 설정하지 않으면 기본 파서 사용
#CUSTOM_INTERCEPTOR=cn.thinkingdata.demo.DemoCustomInterceptor
##커스텀 파서 jar의 절대 경로(jar 파일명 포함)
#INTERCEPTOR_PATH=/var/interceptor/custom-interceptor-1.0-SNAPSHOT.jar
##데이터 1건을 여러 건으로 변환하려면 아래 필드 설정을 활성화해야 함
#INTERCEPTOR_ONE_TO_MORE=true

4.6 데이터의 #app_id에 따라 프로젝트 분배(선택 설정)​

주의: 이 기능은 TE 버전 3.1 이상이 필요합니다

##1.5.14 버전에서 APPID_IN_DATA 설정 추가. 데이터의 #app_id로 프로젝트를 분배할 때 APPID_IN_DATA=true로 설정할 수 있음.
##이때 APPID는 설정할 필요가 없으며, TAIL_FILE도 한 단계만 설정할 수 있음.
##주의: TE 버전 3.1 이상 필요
#APPID_IN_DATA=false

4.7 설정에 따라 해당 프로젝트로 자동 분배(선택 설정)​

##1.5.14 버전에서 기존 기능이 일부 변경되었으며, TE 3.1 이상 버전과 함께 사용해야 함.
##매핑할 속성 이름 지정(예: name), APPID_MAP 필드와 함께 사용
##APPID_MAP_ATTRIBUTE_NAME=name
##APPID와 속성 값의 매핑 관계 제공. 예를 들어 아래 설정은 데이터의 properties 필드 중 name 필드 값이 a 또는 b이면 데이터를 appid_1로, c 또는 d이면 appid_2로 분배함을 의미
##APPID_MAP={"appid_1":["a","b"],"appid_2":["c","d"]}
##DEFAULT_APPID는 데이터에 name 필드가 없거나 name 필드 값이 위 설정에 없을 때 분배할 프로젝트
##DEFAULT_APPID=appid_3

4.8 설정 파일 예시​

##################################################################################
## thinkingdata 데이터 분석 플랫폼 전송 도구 logBus 설정 파일
##주석 처리되지 않은 항목은 필수 파라미터, 주석 처리된 항목은 선택 파라미터이며, 상황에 맞게
##적절히 설정하십시오
##환경 요구 사항: java8+, 자세한 요구 사항은 tga 공식 사이트 참고
##https://docs.thinkingai.cn/zh/integration/logbus_legacy_installation
##################################################################################

##APPID는 tga 공식 사이트의 token
##서로 다른 APPID는 쉼표로 구분
APPID=from_tga1,from_tga2

#-----------------------------------source----------------------------------------
######file-source
##LogBus가 읽는 데이터 파일의 경로 및 파일명(파일명은 퍼지 매칭 지원), 읽기 권한 필요
##서로 다른 APPID는 쉼표로 구분하고, 같은 APPID의 서로 다른 디렉터리는 공백으로 구분
##TAIL_FILE의 파일명은 java 표준 정규표현식과 와일드카드 두 가지 모드 지원
#TAIL_FILE=/path1/log.* /path2/txt.*,/path3/log.* /path4/log.* /path5/txt.*
##TAIL_MATCHER는 TAIL_FILE 경로의 퍼지 매칭 모드 지정 regex-정규식 glob-와일드카드.
##regex는 정규식 모드로 java 표준 정규표현식을 사용할 수 있지만, 한 단계 디렉터리와 파일명의 퍼지 매칭만 지원
##glob은 와일드카드 모드로 여러 단계 디렉터리의 퍼지 매칭을 지원하지만, DATE{} 형식 매칭은 미지원
##기본적으로 regex 정규표현식 매칭 사용
#TAIL_MATCHER=regex

######kafka-source
##kafka, topics는 정규식 사용
#KAFKA_GROUPID=tga.flume
#KAFKA_SERVERS=ip:port
#KAFKA_TOPICS=topicName
#KAFKA_OFFSET_RESET=earliest/latest


#------------------------------------sink-----------------------------------------
##전송 설정
##전송할 url
##PUSH_URL=http://${RECEIVER_URL}/logbus
##1회 전송 최대 건수(지정 건수에 도달하면 데이터 전송 요청을 보냄)
#BATCH=1000
##최소 전송 간격(단위: 초)(시간이 되면 batch 건수에 미달해도 현재 건수를 전송)
#INTERVAL_SECONDS=60

##### http 전송
##파일 전송 압축 포맷:gzip,snappy,none
#COMPRESS_FORMAT=none

#------------------------------------other-----------------------------------------
##모니터링 디렉터리의 파일 삭제. 주석을 해제하면(아래 두 필드를 모두 해제해야 함) 파일 삭제 기능이 활성화되며, 1시간마다 파일 삭제 프로그램이 실행됨
##unit 기준으로 offset 이전의 파일 삭제
##얼마나 이전의 파일을 삭제할지
#OFFSET_REMOVE=
##일(day) 또는 시간(hour) 단위 삭제만 허용
#UNIT_REMOVE=

#------------------------------------interceptor-----------------------------------
##아래 두 필드는 커스텀 파서 사용 설정(두 필드를 모두 설정해야 사용 가능)
##커스텀 파서의 정규화된 이름, 설정하지 않으면 기본 파서 사용
#CUSTOM_INTERCEPTOR=
##커스텀 파서 jar 위치
#INTERCEPTOR_PATH=

5. LogBus 시작​

처음 시작하기 전에 다음 사항을 확인하십시오:

1. java 버전 확인

bin 디렉터리로 이동하면 check_java와 logbus 두 개의 스크립트가 있습니다

이 중 check_java는 java 버전이 요구 사항을 충족하는지 확인하는 데 사용합니다. 스크립트를 실행했을 때 java 버전이 충족되지 않으면 Java version is less than 1.8 또는 Can't find java, please install jre first. 등의 메시지가 표시됩니다

JDK 버전을 업데이트하거나 다음 섹션의 내용을 참고하여 LogBus 전용 JDK를 설치할 수 있습니다

2. LogBus 전용 JDK 설치

LogBus 배포 노드의 환경 때문에 JDK 버전이 LogBus 요구 사항을 충족하지 못하고, LogBus를 충족하는 JDK 버전으로 교체할 수도 없는 경우 이 기능을 사용할 수 있습니다.

bin 디렉터리로 이동하면 install_logbus_jdk.sh가 있습니다.

이 스크립트를 실행하면 LogBus 작업 디렉터리에 java 디렉터리가 새로 생성되며, LogBus는 기본적으로 이 디렉터리의 JDK 환경을 사용합니다.

3. logBus.conf 설정을 완료하고 파라미터 환경 검사 명령을 실행합니다

logBus.conf 설정은 LogBus 설정 섹션을 참고하십시오

설정을 완료한 후 env 명령을 실행하여 설정 파라미터가 올바른지 확인합니다

./logbus env

빨간색 오류 정보가 출력되면 설정에 문제가 있는 것이므로, 위 그림처럼 설정 파일에 오류 알림이 더 이상 나타나지 않을 때까지 다시 수정해야 합니다.

logBus.conf 설정을 수정한 후에는 새 설정을 적용하기 위해 LogBus를 재시작해야 합니다

4. LogBus 시작

./logbus start

시작에 성공하면 위 그림과 같은 메시지가 표시되고, 실패하면 아래 그림과 같이 오류 정보가 표시됩니다

6. LogBus 명령 상세 설명​

6.1 도움말 정보​

파라미터 없이 실행하거나 --help 또는 -h를 사용하면 다음과 같은 도움말 정보가 표시됩니다

LogBus의 주요 명령은 다음과 같습니다:

usage: logbus <명령|보조 명령> [옵션]
명령:
start logBus 시작.
restart logBus 재시작.
stop logBus 안전 종료.
reset logBus 읽기 기록 초기화.
stop_force logBus 강제 종료.
보조 명령:
env 실행 환경 검증.
data_debug 설정한 디렉터리 내 파일의 데이터 형식 상세 검증.
show_conf 현재 logBus 설정 정보 표시.
version 버전 번호 표시.
update logbus를 최신 버전으로 업데이트.
progress 현재 파일 전송 진행률 집계
status 현재 전송 속도, 메모리 사용량, CPU 사용량 등의 정보 집계

옵션:
-appid <appid> 프로젝트 appid
-h,--help 도움말 문서를 표시하고 종료.
-path <path> 테스트 파일의 절대 경로 지정
-url <url> 테스트할 url 주소 지정
예시:
./logbus start logBus 시작.
./logbus stop logBus 안전 종료.
./logbus restart logBus 재시작.
./logbus data_debug 설정한 디렉터리 내 파일의 데이터 형식 상세 검증.

6.2 파일 데이터 형식 검사data_debug​

LogBus를 처음 사용하는 경우 데이터를 정식으로 업로드하기 전에 먼저 데이터 형식을 검증할 것을 권장합니다. 데이터는 데이터 형식 규칙을 준수해야 하며, 다음과 같이 data_debug 명령으로 데이터 형식을 검증할 수 있습니다:

이 기능은 클러스터 리소스를 소모하므로 1회당 10000건으로 제한되며, 각 파일에 검증량을 균등하게 나누어 파일 앞부분부터 우선 검증합니다.

./logbus data_debug

데이터 형식이 올바르면 아래 그림과 같이 데이터가 올바르다는 메시지가 표시됩니다:

데이터 형식에 문제가 있으면 형식 오류 경고와 함께 오류 지점을 간략히 알려 줍니다:

6.3 설정 정보 표시show_conf​

show_conf 명령으로 LogBus의 설정 정보를 확인할 수 있으며, 표시 내용은 아래 그림과 같습니다:

./logbus show_conf

6.4 시작 환경 검사env​

env로 시작 환경을 검사할 수 있습니다. 출력된 정보 뒤에 별표가 붙어 있으면 설정에 문제가 있는 것이므로, 별표가 더 이상 표시되지 않을 때까지 다시 수정해야 합니다.

./logbus env

6.5 시작start​

형식 검증, 데이터 채널 검사, 환경 검사를 마치면 LogBus를 시작하여 데이터를 업로드할 수 있습니다. LogBus는 파일에 새 데이터가 기록되었는지 자동으로 감지하고, 새 데이터가 있으면 업로드합니다.

./logbus start

6.6 중지stop​

LogBus를 중지하려면 stop 명령을 사용하십시오. 이 명령은 다소 시간이 걸리지만 데이터 손실은 없습니다.

./logbus stop

6.7 중지stop_force​

LogBus를 즉시 중지하려면 stop_force 명령을 사용하십시오. 이 명령은 데이터 손실을 일으킬 수 있습니다.

./logbus stop_force

6.8 재시작restart​

restart 명령으로 LogBus를 재시작할 수 있으며, 설정 파라미터를 수정한 후 새 설정을 적용할 때 적합합니다.

./logbus restart

6.9 초기화reset​

reset을 사용하면 LogBus가 초기화됩니다. 이 명령은 반드시 신중하게 사용하십시오. 사용하면 파일 전송 기록이 지워지고 LogBus가 모든 데이터를 다시 업로드합니다. 조건이 명확하지 않은 상태에서 이 명령을 사용하면 데이터가 중복될 수 있습니다. ThinkingAI 담당자와 상의한 후 사용하는 것을 권장합니다.

./logbus reset

초기화 명령을 사용한 후에는 start를 실행하여 데이터 전송을 다시 시작해야 합니다

LogBus 1.5.0 버전부터 다음과 같은 확인 메시지가 추가되었으며, 확인한 후에야 LogBus 초기화가 시작됩니다

6.10 버전 번호 확인version​

사용 중인 LogBus의 버전 번호를 확인하려면 version 명령을 사용할 수 있습니다. LogBus에 이 명령이 없다면 사용 중인 버전은 초기 버전입니다

./logbus version

6.11 logBus 버전 업그레이드update​

LogBus 1.5.0 버전에서 온라인 버전 업데이트 기능이 추가되었습니다. 이 명령을 실행하면 LogBus를 최신 버전으로 업그레이드할 수 있습니다

./logbus update

6.12 현재 업로드 진행률 확인progress​

LogBus 1.5.9 버전에서 현재 업로드 진행률 확인 기능이 추가되었습니다. 이 명령을 실행하면 현재 전송 진행률을 조회할 수 있으며, -appid로 프로젝트를 지정하거나 파일 전체 경로명을 직접 붙여 조회 대상을 지정할 수 있습니다.

./logbus progress /data/logbus-1.log /data/logbus-2.log -appid {APPID}

6.13 logBus 자주 발생하는 문제 검사doctor​

LogBus 1.5.12 버전에서 logBus의 자주 발생하는 문제를 검사하는 명령이 추가되었습니다. 이 명령을 실행하면 현재 logBus에 문제가 있는지 확인할 수 있습니다

./logbus doctor

6.14 logBus의 현재 업로드 속도 및 상태 확인status​

LogBus 1.5.13 버전에서 추가된 logBus의 현재 업로드 속도 및 상태를 확인하는 명령입니다. 이 명령을 실행하면 현재 logBus의 업로드 속도와 상태를 확인할 수 있습니다

./logbus status

7. ChangeLog​

버전 1.5.17 --- 2022/11/08​

추가:

  • 커스텀 파서의 1건→여러 건 변환 지원

버전 1.5.16.2 --- 2022/07/05​

수정:

  • 구버전 fastjson 취약점으로 인해 1.2.83으로 업그레이드

버전 1.5.16.1 --- 2022/05/24​

수정:

  • 구버전 fastjson 취약점으로 인해 1.2.80으로 업그레이드

버전 1.5.16 --- 2022/04/01​

최적화:

  • 이기종 데이터에 대한 기능 지원 최적화

버전 1.5.15.7 --- 2021/12/10​

수정:

  • 구버전 log4j 취약점으로 인해 2.15.0으로 업그레이드

버전 1.5.15.6 --- 2021/12/06​

추가:

  • 인스턴스 설정에 Kafka 설정 항목 추가

버전 1.5.15.5 --- 2021/12/02​

추가:

  • Kafka에 SASL 인증 추가

버전 1.5.15.4 --- 2021/11/23​

수정:

  • 일부 상황에서 업그레이드가 비정상적으로 실패하는 오류 수정

버전 1.5.15.3 --- 2021/11/19​

수정:

  • 일부 상황에서 appid를 검사하지 않는 오류 수정

버전 1.5.15.2 --- 2021/10/15​

수정:

  • 여러 문제 수정

최적화:

  • LogBus 종료 프로세스 최적화

버전 1.5.15.1 --- 2021/08/17​

수정:

  • Kafka 소스의 데이터 읽기 관련 일부 문제 수정

버전 1.5.15 --- 2021/06/02​

수정:

  • 빈 줄을 읽을 때 오류가 발생하는 문제 수정

추가:

  • Kafka에서 Huawei Cloud, Alibaba Cloud의 sasl 인증 지원 추가, Tencent Cloud CKafka의 기존 인증 방식 변경

버전 1.5.14.3 --- 2021/04/29​

수정:

  • install_logbus_jdk 스크립트가 jre를 다운로드하지 못하는 문제 수정

최적화:

  • 비정상 상태일 때 자체 복구 시도

버전 1.5.14.2 --- 2021/03/16​

수정:

  • 일부 구버전에서 업그레이드가 실패하는 문제 수정

버전 1.5.14.1 --- 2021/03/03​

수정:

  • 일부 구버전 업그레이드 시 NUMTHREAD를 수정하면 정상적으로 전송되지 않는 문제 수정
  • 데이터 파일이 삭제된 후 다시 생성될 때 기존 핸들이 해제되지 않아 파일이 중복 업로드되는 문제 수정

버전 1.5.14 --- 2021/02/02​

최적화:

  • memory 방식을 최적화하여 네트워크 상태가 좋을 때 전송 속도를 크게 높일 수 있음

추가:

  • 데이터의 #app_id 필드로 프로젝트를 매칭하는 APPID_IN_DATA 설정 추가

버전 1.5.13.1 --- 2020/12/23​

수정:

  • 구버전 jackson의 취약점으로 인해 2.11.2 버전으로 업데이트

버전 1.5.13 --- 2020/11/27​

최적화:

  • progress 명령 최적화: 파일을 지정하여 조회할 수 있으며 표시 문구 최적화
  • docker 컨테이너 최적화
  • 동시 실행 방식을 개선하여 동시 실행 수를 쉽게 수정할 수 있도록 최적화

추가:

  • 현재 업로드 속도와 상태를 확인하는 status 명령 추가
  • repair_channel 명령 추가, channel 복구 방식 최적화

버전 1.5.12 --- 2020/08/28​

최적화:

  • 데이터 소스가 Kafka일 때 MemoryChannel 사용 시의 데이터 신뢰성 보장
  • appid를 제거할 수 없는 문제 해결
  • env 명령 최적화: 설정 속성을 전면 검사하고 표시 문구 최적화

추가:

  • 지정한 속성 순서대로 전송하는 기능 추가
  • logbus의 일부 자주 발생하는 문제를 검사하는 doctor 명령 추가
  • #event_id 및 #first_check_id 추가

버전 1.5.11 --- 2020/06/01​

최적화:

  • 데이터 소스가 로컬 파일일 때 MemoryChannel 사용 시의 데이터 신뢰성 보장

추가:

  • 데이터의 지정 속성에 따라 APP_ID를 매핑하는 기능 추가.
  • LogBus 데몬 프로세스 상태 검사 추가.
  • flume 프로세스 상태 모니터링 추가.
  • 데이터에 uuid 속성 추가 가능.
  • LogBus에서 30일이 지난 로그 삭제 기능 추가.
  • APP_ID 검사 추가.

폐기:

  • 구버전의 ftp 전송 방식 폐기.

버전 1.5.10 --- 2020/03/31​

수정:

  • 정확한 경로 매칭이 실패하는 Bug 수정.

최적화:

  • fastjson 버전을 1.2.67로 업그레이드하여 역직렬화 및 SSRF 취약점 수정.

버전 1.5.9 --- 2020/03/25​

추가:

  • 커스텀 파서 추가.
  • 현재 전송 진행률을 확인하는 progress 명령 추가.

최적화:

  • taildir 모드에서 임의의 한 단계 퍼지 경로 매칭 지원.
  • mac 시스템 지원 최적화.

버전 1.5.8 --- 2020/02/20​

추가:

  • 네트워크 불안정으로 인한 패킷 손실 문제에 대응하여 재시도 전략 추가.

버전 1.5.7 --- 2020/02/13​

최적화:

  • USER 데이터 채널의 분배 전략 최적화.

버전 1.5.6 --- 2020/01/03​

최적화:

  • pid 파일, 상태 잠금 파일의 저장 위치 최적화.
  • 여러 프로젝트를 설정한 경우에도 동시 실행 수를 늘릴 수 있도록 최적화.
  • JVM 파라미터 최적화.
  • 로컬 파일을 읽을 때 숨김 파일을 건너뛰도록 최적화.

추가:

  • 전용 JDK 방식 지원.
  • 데몬 프로세스에 디스크 사용량 스캔 기능 추가, 디스크가 부족하면 LogBus를 자동으로 중지.
  • 설정한 디렉터리 내 파일 내용의 상세 오류를 검증하는 data_debug 기능 추가.
  • kafka 데이터 소스의 offset 위치 기록 추가.

폐기:

  • 구버전 format_check 기능 폐기.

버전 1.5.5 --- 2019/09/23​

최적화:

  • JDK 검사 스크립트 최적화, JDK 10 이상 버전 검증 지원.
  • 내부 시작 순서 최적화.
  • 환경 충돌을 피하도록 flume 실행 환경 최적화.
  • 다운로드 진행률 표시줄 기능 추가.
  • 서버 측 ip 화이트리스트 안내 최적화.

버전 1.5.4 --- 2019/06/25​

최적화:

  • 설정 파일 파라미터 검증 로직과 작업 안내 문구 최적화.
  • 읽는 파일 수가 최대 제한을 넘으면 LogBus를 자동으로 중지하는 로직 추가.

버전 1.5.3.1 --- 2019/05/22​

수정:

  • 네트워크 이상 시의 데이터 전송 전략 문제 수정: LogBus가 전송을 중단하던 방식에서 계속 재시도하는 방식으로 변경.

버전 1.5.3 --- 2019/04/25​

최적화:

  • 대량의 파일을 동시에 전송할 때의 데이터 전송 로직 최적화
  • LogBus 데이터 전송 로그를 info와 error 두 로그로 나누어 LogBus 실행 상태를 모니터링하기 쉽도록 최적화
  • 기본 컴포넌트 flume을 최신 버전 1.9.0으로 업그레이드

변경:

  • kafka 연동 측 offset 설정 추가: Kafka의 kafka.consumer.auto.offset.reset 파라미터를 설정할 수 있으며, 가능한 값은 earliest와 latest이고 기본값은 earliest

버전 1.5.2.2 --- 2019/04/10​

수정:

  • 일부 시스템 호환성 문제 수정
  • 열 수 있는 최대 파일 수 문제 수정
  • 일부 극단적인 상황에서 position 파일이 비정상이 되는 문제 수정

버전 1.5.2.1 --- 2019/03/29​

수정:

  • 일부 극단적인 상황에서 LogBus가 비정상적으로 실행되는 문제 수정

버전 1.5.2 --- 2019/03/14​

새 기능:

  • Kafka topic의 복수 APP_ID 지원: 복수 APP_ID를 사용하여 여러 Kafka topic을 모니터링할 수 있습니다(자세한 내용은 Kafka 관련 파라미터 설정 참고)

버전 1.5.1 --- 2019/03/02​

새 기능:

  • https 프로토콜 지원: 전송 주소 PUSH_URL 파라미터가 https 프로토콜 지원
  • 하위 디렉터리 모니터링 지원: (여러) 디렉터리 아래 여러 하위 디렉터리의 파일 모니터링(자세한 내용은 TAIL_FILE 파라미터 설정 참고), 날짜 템플릿과 정규표현식 방식의 설정 지원

버전 1.5.0 --- 2018/12/26​

새 기능:

  • 복수 APP_ID 지원: 하나의 LogBus에서 여러 프로젝트(복수 APP_ID)로 데이터를 전송할 수 있으며, 복수 APP_ID를 사용하면서 여러 로그 파일 디렉터리를 모니터링할 수 있습니다
  • 온라인 업데이트 명령 지원: update 명령 추가, 이 명령을 실행하면 LogBus를 최신 버전으로 업그레이드할 수 있습니다

최적화:

  • reset 명령 실행 시 안내 메시지 추가

버전 1.4.3 --- 2018/11/19​

새 기능:

  • 여러 파일 디렉터리 모니터링: 여러 로그 파일 디렉터리의 모니터링 지원(자세한 내용은 TAIL_FILE 파라미터 설정 참고). 이에 따라 파라미터 FILE_DIR와 FILE_PATTERN은 폐기되었으며, 이전 버전에서 업그레이드할 때는 반드시 TAIL_FILE을 설정해야 합니다

변경:

  • flume 모니터링을 커스텀 CustomMonitor로 변경하여 FM_PORT 파라미터를 설정할 필요가 없습니다(이 파라미터는 폐기됨)

최적화:

  • java 버전 10 이상을 검사할 때 오류가 발생하는 문제 수정

버전 1.4.2 --- 2018/09/03​

새 기능:

  • 데이터 전송 방식 추가: ftp 전송 방식 추가

버전 1.4.0 --- 2018/07/30​

새 기능:

  • 다중 인스턴스: 한 서버에 여러 LogBus를 배포할 수 있습니다.

LogBus 도구를 여러 개 설치하여 서로 다른 디렉터리에 두고, 각 LogBus마다 설정 파일을 따로 구성하면 사용할 수 있습니다.

  • 멀티 스레드 전송: 멀티 스레드 안전성 구현.

설정 파일의 파라미터 NUMTHREAD를 수정하여 스레드 수를 설정

  • sink 측의 여러 압축 포맷 지원: gzip, snappy, 압축 안 함(none)

왼쪽에서 오른쪽으로 갈수록 압축률이 낮아지므로 네트워크 환경과 서버 성능에 따라 선택하십시오.

변경:

  • 처음 시작하거나 설정 파일을 수정한 후에는 env 명령을 호출하여 설정 파일을 적용해야 LogBus가 정상적으로 동작합니다.

최적화:

  • 시작 전 검사 안내 문구 최적화.

버전 1.3.5 --- 2018/07/18​

최적화:

  • 파일 형식 검사 명령의 출력 안내 최적화.
  • 파일 전송 안내 출력 최적화.
  • checkpoint 읽기/쓰기가 빈번하게 오류 나는 것을 막기 위해 checkpoint에 백업 내용 추가.
  • channel full 경고가 발생하지 않도록 channel 수위 제어 추가.
  • sink 측 네트워크 socktimeout 추가, 60s로 설정.
  • LogBus 모니터링 추가, sink가 멈추면 자동으로 재시작.

버전 1.3.4 --- 2018/06/08​

변경:

  • 데이터 필터링: 빈 줄과 json이 아닌 데이터만 필터링.
  • 파일 삭제 기능을 매일 정해진 시각에 삭제하던 방식에서 일정 시간 간격으로 삭제하는 방식으로 변경.

설정 파일:

  • 설정 파일 형식 최적화: 설정 파일을 주로 source, channel, sink, others 네 부분으로 나눔.
  • 업로드된 디렉터리 파일을 일정 시간마다 삭제하는 FREQUENCY_REMOVE 파라미터 추가, 단위: 분.
  • TIME_REMOVE 파라미터 제거.

새 기능:

  • 자동화 도구(주로 ansible 대상)로 시작하기 위한 최적화 스크립트를 bin/automation 디렉터리에 추가했으며, 주요 명령은 시작 start, 중지 stop, 즉시 중지 stop_atOnce 세 가지입니다.

성능 최적화:

  • 시작에 필요한 메모리를 최적화하여 메모리 요구량 감소.

버전 1.3 --- 2018/04/21​

  • Kafka 데이터 소스 지원 추가
  • 알려진 Bug 수정

버전 1.0 --- 2018/03/29​

  • LogBus 출시
이 문서가 도움이 되었나요?
이 페이지의 내용