# LogBus2 User Guide(Logbus2 이용 가이드)
# 1. LogBus2 소개
LogBus2는 원래의 LogBus를 기반으로 재개발된 로그 동기화 도구입니다. 원래의 LogBus와 비교하여, 메모리 사용량이 5분의 1로 감소하고, 속도가 5배 향상되었습니다.
Logbus2는 백엔드 로그 데이터를 TE System에 실시간으로 가져오는 데 사용됩니다. 주요 메커니즘은 Flume이나 Loggie와 비슷하며, 서버의 로그 디렉토리 내의 파일 스트림을 모니터링하고, 임의의 로그 파일에 새로운 데이터가 생성되면, 새로운 데이터를 검증하여 TE System에 실시간으로 전송합니다.
다음의 경우 LogBus2를 사용하여 데이터를 전송하는 것이 권장됩니다.
- 서버 SDK/Kafka/SLS를 사용하여 데이터를 TE 형식으로 저장하고, LogBus2를 통해 데이터를 업로드하는 경우
- 데이터의 정확성과 차원에 높은 요구사항이 있고, 클라이언트 SDK만으로는 요구사항을 충족시킬 수 없으며, 또한 클라이언트 SDK에 접근하기 불편한 경우
- 백엔드 데이터 푸시 플로우를 자체적으로 개발하기 어려운 경우
- 대량의 과거 데이터를 전송해야 하는 경우
- 메모리 사용량과 전송 효율에 일정한 요구사항이 있는 경우
# 2. LogBus2 다운로드
최신 버전: 2.1.1.3
업데이트 시간: 2024-2-23
Linux-amd64 download (opens new window)
Linux-arm64 download (opens new window)
Windows version download (opens new window)Mac Apple Silicon 다운로드 (opens new window)
Mac Intel 다운로드 (opens new window)
Docker Image (opens new window)
# 3. 사용 전 준비
# 파일 유형
- 데이터 업로드 대상 디렉토리를 확인하고, LogBus2의 관련 설정을 구성합니다. LogBus2는 파일 디렉토리 내의 파일 변경을 모니터링합니다.(신규 생성 또는 기존 파일의 tail)
- 모니터링 디렉토리에 저장되고 이미 업로드된 데이터 로그의 이름을 직접 변경하지 마십시오. 이름 변경은 새 파일로 처리되며, LogBus2가 이러한 파일을 다시 업로드할 가능성이 있으며, 데이터 중복을 초래할 수 있습니다.
- LogBus2의 실행 디렉토리에 현재 로그 전송 진행 상황 스냅샷이 있으므로, runtime 디렉토리 내의 파일을 조작하지 마십시오.
# Kafka (필요시,선택사항)
- Kafka의 메시지 형식을 결정하고, Logbus는 Kafka Message의 value만 처리합니다.
- 사용자 ID가 파티션으로 분리되어 데이터 순서 혼란을 피하십시오.
- Kafka Consumer Group의 자유로운 사용을 활성화하여 여러 Logbus가 소비 시 장애가 발생하지 않도록 하십시오.
- 기본적으로 earliest에서 소비합니다. 지정된 위치에서 소비하려면, 먼저 특정 오프셋을 가진 consumer group을 생성해야 합니다.
# SLS (필요시,선택사항)
- Alibaba Cloud 등 업체에 연락하여 Kafka 프로토콜 지원을 활성화해야 합니다.
# 4. LogBus2의 설치 및 업그레이드
# 설치
설치 패키지. LogBus2를 다운로드하고 압축을 풉니다.
압축 해제된 디렉토리 구조:
- Logbus: LogBus2: 바이너리 파일
- conf:
- daemon.json: 설정 파일 템플릿 2
- tools:
- configConvert: 설정 변환 도구
# 업그레이드
요구 사항: LogBus2 버전 ≥ 2.0.1.7
직접 실행
./logbus update, 업그레이드 후 실행합니다
./logbus start
# 5. Logbus2의 사용 및 설정
# 시작 매개변수
# 시작
./logbus start
정지
./logbus stop
# 재시작
./logbus restart
# TA 시스템에 대한 설정 및 연결성 확인
./logbus env
# LogBus 읽기 레코드 재설정
./logbus reset
# Kafka는 현재 사용할 수 없습니다
# 전송 진행 상황 보기
./logbus progress
# Kafka는 현재 사용할 수 없습니다
# 파일 형식 검증
./logbus dev
# Kafka는 현재 사용할 수 없습니다
# 설정 파일 가이드
# 기본 설정 템플릿
{
"datasource": [
{
"file_patterns": [
"/data/log1/*.txt",
"/data/log2/*.log"
], //파일 패턴
"app_id": "app_id", //app_id는 TE 시스템의 토큰입니다. 연결 프로젝트의 APPID를 TE 백엔드의 프로젝트 설정 페이지에서 가져와 여기에 입력하십시오.
},
],
"push_url": "http://RECEIVER_URL" //SaaS의 http 전송에는 https://ta-receiver.thinkingdata.io를 사용하십시오. 개인 구축 서비스를 사용하는 경우, 전송 URL을 http://데이터 수집 주소/로 변경하십시오.
}
# 공통 설정
# 파일
{
"datasource": [
{
"type":"file",
"file_patterns": ["/data/log1/*.txt", "/data/log2/*.log"], //파일 Glob 매칭 규칙
"app_id": "app_id", //app_id는 TE 시스템의 토큰입니다. 연결 프로젝트의 APPID를 TE 백엔드의 프로젝트 설정 페이지에서 가져와 여기에 입력하십시오.
"unit_remove": "day", //파일 삭제의 단위는 'day'와 'hour'를 지원합니다.
"offset_remove": 7,//unit_remove*offset_remove 마지막 삭제 시간을 가져옵니다. ** offset은 0보다 커야합니다. 그렇지 않으면 효과가 없습니다.
"remove_dirs": true,//폴더 삭제를 활성화하시겠습니까? 기본값은 false입니다. NOTE: 이 폴더 내의 모든 파일이 소비된 후에 폴더가 삭제됩니다.
"http_compress": "gzip",//HTTP 압축을 활성화할지 여부, 기본값은 'none'입니다.
}
],
"cpu_limit": 4, //Logbus2가 사용하는 CPU 코어 수를 제한합니다.
"push_url": "http://RECEIVER_URL"
}
# Kafka
{
"datasource": [
{
"type": "kafka", //타입: Kafka
"topic": "ta", //특정 토픽
"brokers": [
"localhost:9091" //Kafka Brokers 주소
],
"consumer_group": "logbus", //소비자 그룹 이름
"cloud_provider": "ali", //클라우드 서비스 제공자 이름, "ali", "tencent", "huawei"를 지원합니다.
"username": "", //Kafka 사용자 이름
"password": "", //Kafka 비밀번호
"instance": "", //클라우드 제공자 인스턴스 이름
"protocol": "none"|"plain"|"scramsha256"|"scramsha512", //인증 프로토콜
"block_partitions_revoked": true,
"app_id": "YOUR_APP_ID"
}
],
"cpu_limit": 4, //Logbus2에서 사용하는 CPU 코어 수 제한
"push_url": "http://RECEIVER_URL"
}
# SLS
주의: SLS의 소비를 시작하기 전에, Alicloud에 연락하여 SLS Kafka 소비 프로토콜을 활성화해야 합니다.
{
"datasource": [
{
"type":"kafka",
"brokers":["{PROJECT}.{ENTRYPOINT}:{PORT}"], //NOTE: 자세한 내용은 https://www.alibabacloud.com/help/en/log-service/latest/endpoints#reference-wgx-pwq-zdb 를 참조하십시오
"topic":"{SLS_Logstore_NAME}", //Logstore 이름
"protocol":"plain",
"consumer_group":"{YOUR_CONSUMER_GROUP}", // ConsumerGroup
"username":"{PROJECT}", // 프로젝트 이름
"disable_tls":true,
"password":"{ACCESS_ID}#{ACCESS_PASSWORD}", // Alibaba Cloud RAM에 의한 인증
"app_id":"YOUR_APP_ID"
}
],
"push_url": "http://업로드 URL"
}
# 완전한 프로젝트 설치 항목
# 설치 항목 목록 및 설명
구성 | 타입 | 예 | 필수 필드 | 설명 |
---|---|---|---|---|
cpu_limit | Number | 4 | Logbus2에서 사용할 수 있는 CPU 코어의 최대 허용 수를 제한합니다. | |
push_url | String | ✔️ | 수신자 주소, http/https로 시작합니다. | |
datasource | Object list | ✔️ | 데이터 소스 목록 |
# datasource(데이터 소스 구성)
# 파일
구성 | 타입 | 예 | 필수 필드 | 디폴트 | 설명 |
---|---|---|---|---|---|
app_id | String | ✔️ | "" | 데이터 리포팅 프로젝트 appid | |
appid_in_data | Bool | false | false | 이 값을 true로 설정하면, logbus2는 데이터에서 appid를 사용하게 됩니다. | |
specified_push_url | Bool | false | True: 사용자가 설정한 push_url을 파싱하지 않고, 즉, http://yourhost:yourport으로 보냅니다. False: push_url을 파싱한 후, 수신자가 지정한 logbus url에 따라 보냅니다. 즉, http://yourhost:yourport/logbus입니다. | ||
add_uuid | 불린 | false | True: 각 데이터 조각에 uuid 속성을 추가할지 여부(활성화하면 전송 효율이 감소합니다). | ||
file_patterns | 문자열 목록 | ✔️ | [""] | 디렉토리 와일드카드가 지원되지만, 현재는 정규 표현식은 지원되지 않습니다. 특별한 설정이 없으면 기본적으로 우회됩니다. gz/.iso/.rpm/.zip/.bz/.rar/.bz2로 끝나는 파일들 | |
ignore_files | 문자열 목록 | [""] | file_patterns에서 필터링된 파일들 | ||
unit_remove | String | "" | 사용자 파일 삭제. 일 또는 시간별로 삭제. 참고: 설정 파일이 자동으로 삭제되지 않으면 LogBus2의 메모리 사용량이 점차 증가합니다 | ||
offset_remove | Int | 0 | 사용자 파일 삭제. offset_remove>0 및 unit_remove가 일 또는 시간별로 설정된 경우, 사용자 파일 삭제 기능을 활성화할 수 있습니다. | ||
remove_dirs | Bool | true|false | false | 폴더를 삭제할 것인지 여부 | |
http_timeout | String | 500ms | 600s | 수신기에 데이터를 보낼 때 타임 아웃, 기본 값: 600s. 범위: 200ms - 600s. 밀리초 "ms", 초 "s", 분 "m", 시 "h"를 지원합니다. | |
iops | int | 20000 | 20000 | 초당 Logbus 데이터 트래픽 제한 (항목 수) | |
limit | bool | true|false | false | 속도 제한 스위치 켜기 | |
http_compress | String | none | gzip | none | http를 보낼 때 데이터 압축 형식. none=압축 없음. 기본 값: none. |
# Kafka
주의:Logbus Kafka모드를 사용하기 전에, Consumer Group의 자유 사용을 활성화해 주세요.
구성 | 타입 | 예 | 필수 필드 | 디폴트 | 설명 |
---|---|---|---|---|---|
brokers | String List | ["localhost:9092"] | ✔️ | [""] | Kafka Brokers |
topic | String | "ta-msg-chan" | ✔️ | "" | Kafka topic |
consumer_group | String | "ta-consumer" | ✔️ | "" | Kafka Consumer Group |
protocol | String | "plain" | "none" | Kafka 인증 모드 | |
사용자 이름 | String | "ta-user" | "" | Kafka 사용자 이름 | |
비밀번호 | String | "ta-password" | "" | Kafka 비밀번호 | |
인스턴스 | String | "" | "" | CKafka 인스턴스 ID | |
fetch_count | Number | 1000 | 10000 | Poll당 메시지 수 | |
fetch_time_out | Number | 30 | 5 | Poll 타임아웃 | |
read_committed | Bool | true | false | Kafka UnCommitted 데이터를 소비할 것인지 여부 | |
disable_tls | 불린 | true | false | TLS 검증 비활성화 | |
cloud_provider | 문자열 | "tencent" | "" | 공용 네트워크가 Kafka에 연결되어 있을 때 활성화됩니다. 현재 다음 클라우드 제공 업체가 이 서비스를 제공합니다: tencent, huawei, ali | |
block_partitions_revoked | 불린 | false | false | 소비를 차단할지 여부. 비활성화된 경우, 여러 Logbuses가 동일한 consumer_group에 있을 때 데이터 중복이 발생합니다 | |
auto_reset_offset | String | "earliest" | "earliest" | 커밋된 오프셋이 없을 때 기본 동작을 지정하는 매개변수입니다. |
주의: Logbusv2는 현재 Kafka를 소비하기 위해 로드 밸런싱 모드를 사용하고 있습니다. Logbusv2의 배포 수 ≤ 파티션 번호입니다.
# 모니터링 구성 및 대시보드 구축
모니터링 구성 데모
# 경고 구성
# 플러그인 사용
플러그인 구성 데모 (opens new window)
# 6. 고도화 활용
# 단일 Logbus를 통해 여러 이벤트 전송
단일 Logbus 배포에서는 IO 제한으로 인해 일부 정보가 지연되어 소비될 수 있습니다. 예를 들어,
폴링으로 인해, 소비 순서는 event**/log.1 -> event*_/log.2 -> event__/log.3
이 경우, 파일의 소비 진행이 느려질 수 있습니다. 이를 해결하기 위해, 여러 Logbus를 시작하고, 컨텍스트 의미 없는 로그를 Glob으로 분할하여 병렬 업로드할 수 있습니다.
# 여러 PipeLine 구성
주의: 여러 PipeLine에서 appid를 중복할 수 없습니다
{
"datasource": [
{
"file_patterns": [
"/data/log1/*.txt",
"/data/log2/*.log"
], //파일 Glob 매칭 규칙
"app_id": "app_id", //app_id는 TE 시스템의 토큰입니다. 연결 프로젝트의 APPID를 TE 백엔드의 프로젝트 설정 페이지에서 가져와 여기에 입력하십시오.
"unit_remove": "day", //파일 삭제의 단위는 'day'와 'hour'를 지원합니다.
"offset_remove": 7, //unit_remove*offset_remove 마지막 삭제 시간을 가져옵니다. \*\* offset은 0보다 커야합니다. 그렇지 않으면 효과가 없습니다.
"remove_dirs": true, //폴더 삭제를 활성화하시겠습니까? 기본값은 false입니다. NOTE: 이 폴더 내의 모든 파일이 소비된 후에 폴더가 삭제됩니다.
"http_compress": "gzip", //HTTP 압축을 활성화할지 여부, 기본값은 'none'입니다.
},
{
"file_patterns": [
"/data/log1/*.txt",
"/data/log2/*.log"
], //파일 Glob 매칭 규칙
"app_id": "app_id", //app_id는 TE 시스템의 토큰입니다. 연결 프로젝트의 APPID를 TE 백엔드의 프로젝트 설정 페이지에서 가져와 여기에 입력하십시오.
"unit_remove": "day", //파일 삭제의 단위는 'day'와 'hour'를 지원합니다.
"offset_remove": 7, //unit_remove*offset_remove 마지막 삭제 시간을 가져옵니다. \*\* offset은 0보다 커야합니다. 그렇지 않으면 효과가 없습니다.
"remove_dirs": true, //폴더 삭제를 활성화하시겠습니까? 기본값은 false입니다. NOTE: 이 폴더 내의 모든 파일이 소비된 후에 폴더가 삭제됩니다.
"http_compress": "gzip", //HTTP의 압축을 활성화할 것인지, 기본값은 'none'입니다.
}
],
"cpu_limit": 4, //Logbus2가 사용하는 CPU 코어 수를 제한합니다.
"push_url": "http://RECEIVER_URL"
}
# Docker에서의 LogBus2
# 최신 미러를 끌어오세요
docker pull thinkingdata/ta-logbus-v2:latest
# 호스트에 영구 폴더를 생성하고 설정 파일을 초기화하세요
mkdir -p /your/folder/path/{conf,log,runtime}
touch /your/folder/path/daemon.json
vim /your/folder/path/daemon.json
⚠️ 경고: runtime 디렉토리의 파일을 직접 삭제하지 마세요
# 설정 템플릿을 수정하고 daemon.json에 쓰세요
{
"datasource": [
{
"type":"file",
"app_id": "YOUR APP ID",
"file_patterns": ["/test-data/*.json"],
"app_id":""
},
{
"type":"kafka",
"app_id": "YOUR APP ID",
"brokers": ["localhot:9092"],
"topic":"ta-message",
"consumer_group":"ta",
"app_id":""
}
],
"push_url": "YOUR PUSH URL WITHOUT SUFFIX OF/logbus"
}
# 데이터 폴더를 마운트하고 LogBus를 시작하세요
docker run -d \
--name logbus-v2 \
--restart=always \
-v /your/data/folder:/test-data/ \
-v /your/folder/path/conf/:/ta/logbus/conf/ \
-v /your/folder/path/log/:/ta/logbus/log/ \
-v /your/folder/path/runtime/:/ta/logbus/runtime/ \
thinkingdata/ta-logbus-v2:latest
# LogBus2 On K8s (필요시)
# 환경 준비
- Kubectl이 k8s 클러스터에 연결할 수 있고 배포 권한이 있어야 합니다.
- 의존성 설치: helm 파일에 따라 로컬 명령 줄에 helm 설치 https://helm.sh/ja/docs/intro/install/
# logbus v2 helm 파일 다운로드
tar xvf logBusv2-helm.tar && cd logbusv2
# logbus 설정
# 준비 사항
- 콘솔에 업로드할 로그 pvc 생성
- pvc 이름과 네임스페이스 확인
- TE 시스템의 앱 id, 수신 url 가져오기
# values.yaml 수정
pvc:
name: pvc 이름
logbus_version: 2.1.0.2
namespace: 네임스페이스 이름
logbus_configs:
- push_url: "http://TA 업로드 데이터의 수신 주소"
datasource:
- file_patterns:
- "container:파일에 대한 상대 경로의 와일드카드" # "container:" 접두사를 삭제하지 마세요
- "container: 파일에 대한 상대 경로의 와일드카드" # "container:" 접두사를 삭제하지 마세요
app_id: TA 시스템의 앱 id
# 미리보기 렌더링을 위한 yaml
helm install --dry-run -f values.yaml logbus .
# helm을 사용하여 logbusv2 배포
helm install -f values.yaml logbus-v2 .
생성된 statefulset 확인
kubectl get statefulset
생성된 pod 확인
kubectl get pods
K8s에서 LogBus 업데이트
vim value.yaml # 이전 value.yaml 파일 수정
# logbus_version을 최신으로 수정하십시오. 참고: 하위 호환성을 고려하면 최신을 사용하지 않는 것이 좋습니다!
logbus_version:2.0.1.8 -> logbus_version:2.1.0.2
# 저장하고 종료
helm upgrade -f values.yaml logbus .
# 롤링 업그레이드를 기다립니다.
# 메모
Logbusv2는 마운트된 로그의 pvc에 읽기 및 쓰기 권한이 있습니다.
Logbusv2는 pod에 따라 PVC에 파일 소비 기록과 실행 로그를 각각 작성합니다. PVC가 logbus 관련 기록을 삭제하면 데이터 재전송 위험이 있습니다.
# 구성 세부 정보
명령 실행:
helm show values .
사용 가능한 구성 표시:
# logbusv2의 기본 값입니다.
# 이것은 YAML 형식의 파일입니다.
# 템플릿에 전달될 변수를 선언합니다.
pvc:
name: pvc-logbus
logbus_version: 2.1.0.2
namespace: big-datalogbus_configs:
#### pod 1
#### push_url: 수신 URL, http:// https:// 접두사 필요
- push_url: "http://172.17.16.6:8992/"
datasource:
- file_patterns:
#### pvc에서 대상 파일의 상대 경로
- "container:/ta-logbus-0/data_path/*"
#### TA app_id
app_id: "thinkingAnalyticsAppID"
#### pod 2
- push_url: "http://172.26.18.132:8992/"
datasource:
- file_patterns:
- "container:/ta-logbus-1/data_path/*"
app_id: "thinkingAnalyticsAppID"
#### pod 3
- push_url: "http://172.26.18.132:8992/"
datasource:
- file_patterns:
- "container:/ta-logbus-2/data_path/*"
app_id: "thinkingAnalyticsAppID"
#### logbus pod 요청
#requests:
# cpu: 2
# memory: 1Gi
명확하게 설정되지 않은 요청은 yaml에 반영되지 않습니다.
# pvc 주문 카탈로그
pvc:
name: 실제 pvc 이름 작성
namespace: 기존 네임스페이스logbus_configs:
- push_url: http 또는 https, 파드가 접근할 수 있는 TE 수신 URL을 작성하십시오
datasource:
- file_patterns:
- "container:/ta-logbus-0/data_path/*" "container:"는 컨테이너가 YAML 배포 과정 중에 접근할 수 있는 절대 경로로 대체될 플레이스홀더입니다. 디렉토리를 설정할 때, 디렉토리는 "container:" 접두사를 포함해야 합니다.
app_id: "thinkingengineAppID" TE 시스템 앱 id
pvc에서 여러 디렉토리 읽기
pvc에서 여러 디렉토리를 읽을 때, 파드에서 배포하는 것이 좋으며, 각 파드는 폴더를 담당합니다. 이렇게 하면 배포 성능과 보안이 향상됩니다.
pvc:
name: pvc-logbus
namespace: big-datalogbus_configs:
#### pod 1
#### push_url: 수신자 url, http:// https:// 접두사 필요
- push_url: "http://172.17.16.6:8992/"
datasource:
- file_patterns:
#### pvc에서의 대상 파일 상대 경로
- "container:/ta-logbus-0/data_path/*"
#### TA app_id
app_id: "thinkingAnalyticsAppID"
#### pod 2
- push_url: "http://172.26.18.132:8992/"각 앱 id와 푸시 url은 별도로 설정해야 합니다
datasource:
- file_patterns:
- "container:/ta-logbus-1/data_path/*"
app_id: "thinkingAnalyticsAppID"
#### pod 3
- push_url: "http://172.26.18.132:8992/"
datasource:
- file_patterns:
- "container:/ta-logbus-2/data_path/*"
app_id: "thinkingengineAppID"
# Multi-pvc
현재는 단일 pvc의 배포만 지원하며, multi-pvc는 values.yaml 파일의 여러 설정이 필요합니다
# 7. FAQs
Q: 폴더 삭제가 활성화되어 있는데, LogBus가 폴더를 삭제하지 않는 이유는 무엇인가요? 답변:A: LogBus의 폴더 삭제는 현재 폴더 내의 파일이 LogBus에 의해 읽혀지고, 해당 폴더에 다른 파일이 존재하지 않는 경우에만 트리거됩니다.
Q: 로그를 업로드할 수 없는 이유는 무엇인가요?
A: LogBus가 읽는 데이터 파일에서는 한 데이터에 개행 문자를 포함하지 마십시오. 설정된 데이터 파일은 정규 표현식을 지원하지 않으며, 와일드카드(Glob)만 사용할 수 있습니다. 설정된 데이터 파일의 규칙이 파일과 일치하는지 확인하십시오.
Q: 파일이 반복적으로 업로드되는 이유는 무엇인가요?
A: LogBus의 데이터 파일에서는 한 데이터에 개행 문자를 포함하지 마십시오. 설정된 데이터 파일은 정규 표현식을 지원하지 않으며, 와일드카드(Glob)만 사용할 수 있습니다. 설정된 데이터 파일의 규칙이 파일과 일치하는지 확인하십시오.
# 8. 릴리스 기록
# 버전: 2.1.1.3 --- 2024.2.23
최적화
- Kafka Progress의 경험을 향상시켰습니다.
- auto_reset_offset 매개변수의 지원을 추가했습니다.
- Kafka Client 관련 정보의 로그 기록을 수행했습니다.
버그 수정
- 강제 종료로 인해 잘못된 프로세스가 Logbus를 종료하는 문제를 수정했습니다.
# 버전: 2.1.1.2 --- 2024.2.2
개선
- 로그 형식의 i18n
버전: 2.1.1.1 --- 2024.1.10
개선
- 진행 명령어의 정확도 향상
# 버전: 2.1.1.0 --- 2023.12.11
수정
- 로그의 기본값이 조정되어 기본적으로 로그를 7일 동안 유지하고 개별 파일을 100MB 단위로 분할하며 최대 30개의 로그 파일을 보존합니다. 업그레이드하지 않고도 로그 구성 옵션을 사용하여 구성할 수 있습니다.
영향
- 데이터 소스에서 해석할 수 없는 대량의 오류 데이터를 생성하는 경우, 이러한 오류의 로깅으로 인해 로그 파일이 점점 커질 수 있습니다.
# 버전: 2.1.0.9 --- 2023.10.26
추가
- 이벤트 필터 지원으로 클라이언트 측에서 데이터 필터링을 수행할 수 있습니다.
- 로그 버스 디렉터리 내에서 공간 감지 지원
# 버전: 2.1.0.8 --- 2023.6.06
개선
- 플러그인의 적절한 종료 보장이 필수적입니다.
- 프로세스 통신 및 로그 출력을 최적화하는 것이 전반적인 시스템 성능을 향상시키는 데 중요합니다. 수정
- CPU 제한 로그 출력
- 리눅스 ARM 버전 컴파일
# 버전: 2.1.0.7 --- 2023.4.07
추가
- 카프카 소스 지원 명령어 진행 개선
- 사용자 지정 태그 지원 환경 변수 검색
# 버전: 2.1.0.6 --- 2023.3.28
개선
- 데이터 소스 추적을 위한 사용자 지정 태그 지원
- 사용자 지정 플러그인 구분자 지원
# 버전: 2.1.0.5 --- 2023.2.20
개선
- 데이터 스트리밍 프로젝트가 배열을 지원하며 숫자 및 문자 기본 유형과 호환됩니다.
- 모니터링 메트릭 계산 논리
# 버전: 2.1.0.4 --- 2023.1.12
추가
- 개행 문자가 없는 파일에서 데이터를 읽는 구성 지원
- 순환 읽기를 위한 반복 횟수 및 간격 시간 구성 지원 수정
- 모니터링 메트릭 통계의 동시성 버그 수정
# 버전: 2.1.0.3 --- 2022.12.23
추가
- 구성을 통해 내부 appid 데이터를 덮어쓸 수 있도록 지원 수정
- appid의 기본값 제거를 위해 appid_in_data 사용
# 버전: 2.1.0.2 --- 2022.12.13
추가
- 플러그인이 속성 분할을 지원합니다. 수정
- 다중 파이프라인 하위 meta_name 생성
# 버전: 2.1.0.1 --- 2022.11.29
추가
- kafka 데이터 소스가 트랜잭션 읽기를 지원합니다.
- 플러그인 명령어가 sh 환경 종속성을 지원합니다. 수정
- appid 구성 없이 meta_name 생성
# 버전: 2.1.0.0 --- 2022.11.22
추가
- 데이터 분배: 구성된 appidMap에 따라 데이터를 다른 프로젝트로 분배합니다.
- 카프카 데이터 소스가 멀티 토픽 소비를 지원합니다.
- 리미터, 보고 속도 제한 및 서버 압력 감소
- 다중 파이프라인 데이터 보고 수행
- gRPC를 기반으로 한 사용자 지정 플러그인 구문 분석기
- 실시간 성능 모니터링 (prometheus, pushgateway, grafana)
- 압축 알고리즘에 lz4 추가 수정:
- 카프카 데이터 소스 하에서 logbus가 중지되지 않는 버그 수정
- 파일 데이터 소스 하에서 파일이 지나치게 활동적으로 빠져나가는 버그 수정
- 파일 모니터 닫기 문제 수정
# 버전: 2.0.1.8 --- 2022.07.20
추가
- dev (형식 검증 명령)
- 카프카 소스
- 멀티 플랫폼 수정:
- 파일 전송을 여러 번 깨우는 문제
- 로그 볼륨 감소
- 파일 전송 시간별로 진행 정렬
- 멀티 파이프라인 최적화
- 도커 이미지 최적화
# 버전: 2.0.1.7 --- 2022.03.01
최적화:
- 운영 효율성, 높은 성능
- 파일 삭제 논리
- 위치 파일 익스포트 논리
- 메모리 풋프린트