LogBus使用ガイド
このセクションでは、データ転送ツールLogBusの使用方法を紹介します:
LogBus Windows版についてはLogBus Windows版使用ガイドを参照してください
連携を始める前に、まずデータルールをお読みください。TEのデータ形式とデータルールを理解したうえで、本ガイドを読んで連携を進めてください。
LogBus でアップロードするデータは、TEのデータ形式に従う必要があります
LogBusのダウンロード
最新バージョン: 1.5.17
更新日: 2022-11-08
バージョンアップの説明:
- 1.5.0以上のバージョン:
まず./logbus stopコマンドでLogBusを停止し、停止が完了してから./logbus updateコマンドを実行して最新バージョンにアップグレードします
- 1.5.0より前のバージョンを使用していて、新しいバージョンにアップグレードする必要がある場合は、ThinkingAIの担当者にお問い合わせください
1. LogBusの概要
LogBusツールは主に、バックエンドのログデータをリアルタイムでTEのバックエンドにインポートするために使用します。その中核となる動作原理はFlumeに似ており、サーバーのログディレクトリ内のファイルストリームを監視し、ディレクトリ内のいずれかのログファイルに新しいデータが発生すると、新しいデータを検証してリアルタイムでTEのバックエンドに送信します。
次のようなユーザーには、LogBusによるデータ連携をお勧めします:
- サーバーSDKを使用し、LogBusでデータをアップロードするユーザー
- データの正確性やディメンションへの要求が高く、クライアントSDKだけではデータ要件を満たせない、またはクライアントSDKを接続しにくい
- バックエンドのデータプッシュ処理を自社で開発したくない
- 大量の履歴データを転送する必要がある
2. 使用前のデータ準備
1.まず、転送するデータをETLでTEのデータ形式に変換し、ローカルに書き込むかKafkaクラスターに転送します。サーバーSDKのローカルファイル書き込み用または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.解凍後のディレクトリ構成:
- bin:起動プログラムのフォルダー
- conf:設定ファイルのフォルダー
- 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
- 監視ファイルの設定(いずれか1つを選択してください。必須)
4.1.1.データソースがローカルファイルの場合
##LogBusが読み取るデータファイルのパスとファイル名(ファイル名はあいまい一致に対応)。読み取り権限が必要です
##異なるAPPIDはカンマで区切り、同じAPPIDの異なるディレクトリはスペースで区切ります
##TAIL_FILEのファイル名は、java標準の正規表現とワイルドカードの2つのモードに対応しています
TAIL_FILE=/path1/dir*/log.* /path2/DATE{YYYYMMDD}/txt.*,/path3/txt.*
##TAIL_MATCHERはTAIL_FILEのパスのあいまい一致モードを指定します。regex-正規表現 glob-ワイルドカード。
##regexは正規表現モードで、java標準の正規表現を使用できますが、あいまい一致は1階層のディレクトリとファイル名にのみ対応します
##globはワイルドカードモードで、複数階層のディレクトリのあいまい一致に対応しますが、DATE{}形式の一致には対応しません
##デフォルトではregexの正規表現で一致させます
#TAIL_MATCHER=regex
TAIL_FILEは、複数のパス配下にある複数のサブディレクトリ内の複数のファイルを監視できます。下図はその例です:
| APPID | 監視ディレクトリのパス | 監視ディレクトリのサブディレクトリ | 監視ファイル | TAIL_FILE |
|---|---|---|---|---|
| APPID1 | /root/log_dir1 | dir_a、dir_b、dir_c | 各サブディレクトリ内のlog.1 | /root/log_dir1/dir_*/log.* |
| APPID1 | /root/log_dir2/log | 20190101、20190102 | 20190101内の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は大文字にする必要があります。以下に、認識できる日付テンプレートと、それに対応して監視されるファイルの例をいくつか示しますが、これらに限りません。日付テンプレートは標準の日付形式であれば使用できます。
/root/logbus_data/DATE{YYYY-MM-DD}/log.*---> /root/logbus_data/2019-01-01/log.1/root/logbus_data/DATE{YYMMDD}/log.*---> /root/logbus_data/190101/log.1/root/logbus_data/DATE{MM_DD_YYYY}/log.*---> /root/logbus_data/01_01_2019/log.1/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://データ受信URL/logbus
##appidのチェックを有効にするかどうか。デフォルトは無効
#IS_CHECK_APPID=false
##1回あたりの最大転送件数
#BATCH=10000
##少なくとも何秒ごとに1回転送するか(単位:秒)
#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の2種類があります(任意。デフォルトはfile)
# CHANNEL_TYPE=file
4.4 監視ファイルの削除設定(任意)
# 監視ディレクトリのファイル削除。コメントを外すとファイル削除機能が有効になります
# 日単位(day)または時間単位(hour)でのみ削除できます
# UNIT_REMOVE=hour
# どれくらい前のファイルを削除するか
# OFFSET_REMOVE=20
# アップロード済みの監視ファイルを削除する間隔(分)
# FREQUENCY_REMOVE=60
4.5 カスタムパーサー(任意)
バージョン1.5.9から、カスタムデータパーサーに対応しました。元のデータ形式がTEのデータ形式と異なる場合に、形式を独自に変換するために使用します。
詳細は次のとおりです:
- 次の依存関係を追加します
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'
- CustomInterceptorインターフェースのtransFromメソッドを実装します。メソッドの1つ目のパラメーターは元データの内容、2つ目のパラメーターはsourceNameです(APP_IDを区別する必要がある場合に使用します。APP_IDによって区別され、たとえばAPP_IDを1つだけ設定した場合、sourceNameはr1になります。複数のAPP_IDを設定した場合、sourceNameは順にr1、r2などになります)。transferToListメソッドを使うと、1件のデータを複数件に変換できます。使用するには設定にINTERCEPTOR_ONE_TO_MORE=trueを追加する必要があります。2つのメソッドはどちらか一方しか使用できません。
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);
}
- 次の2つのフィールドを設定するだけです
##次の2つのフィールドはカスタムパーサーを使用するためのものです(両方のフィールドを設定した場合のみ使用できます)
##カスタムパーサーの完全修飾名(パッケージ名+クラス名)。設定しない場合はデフォルトのパーサーを使用します
#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も1階層のみ設定できます。
##注意:TEバージョン3.1以上が必要です
#APPID_IN_DATA=false
4.7 設定に基づく対応プロジェクトへの自動振り分け(任意)
##バージョン1.5.14で以前の機能が一部変更されました。TE3.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標準の正規表現とワイルドカードの2つのモードに対応しています
#TAIL_FILE=/path1/log.* /path2/txt.*,/path3/log.* /path4/log.* /path5/txt.*
##TAIL_MATCHERはTAIL_FILEのパスのあいまい一致モードを指定します。regex-正規表現 glob-ワイルドカード。
##regexは正規表現モードで、java標準の正規表現を使用できますが、あいまい一致は1階層のディレクトリとファイル名にのみ対応します
##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
##少なくとも何秒ごとに1回転送するか(単位:秒)(時間に達してもbatch数に満たない場合は、その時点の件数を送信)
#INTERVAL_SECONDS=60
##### http転送
##ファイル転送の圧縮形式:gzip,snappy,none
#COMPRESS_FORMAT=none
#------------------------------------other-----------------------------------------
##監視ディレクトリ内のファイル削除。コメントを外す(次の2つのフィールドを両方とも有効にする必要があります)とファイル削除機能が有効になり、1時間ごとにファイル削除プログラムが起動します
##unit単位でoffset以前のファイルを削除します
##どれくらい前のファイルを削除するか
#OFFSET_REMOVE=
##日単位(day)または時間単位(hour)の削除のみ受け付けます
#UNIT_REMOVE=
#------------------------------------interceptor-----------------------------------
##次の2つのフィールドはカスタムパーサーを使用するためのものです(両方のフィールドを設定した場合のみ使用できます)
##カスタムパーサーの完全修飾名。設定しない場合はデフォルトのパーサーを使用します
#CUSTOM_INTERCEPTOR=
##カスタムパーサーjarの場所
#INTERCEPTOR_PATH=
5. LogBusの起動
初めて起動する前に、次の点を確認してください:
1.javaのバージョンの確認
binディレクトリに入ると、check_javaとlogbusの2つのスクリプトがあります
このうち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の要件を満たさず、要件を満たす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方式を最適化し、ネットワーク状況が良好な場合は転送速度を大幅に向上
追加:
- 設定APPID_IN_DATAを追加。データ内の#app_idフィールドに基づいてプロジェクトを照合するために使用
バージョン 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モードで任意の1階層のあいまいパスの一致に対応。
- 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の2つのログに分けて、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プロトコルに対応:転送先URLの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の水位制御を追加し、channel fullの警告が発生しないように改善。
- sink側にネットワークのsocktimeoutを追加し、60sに設定。
- LogBusの監視を追加し、sinkがフリーズした場合は自動的に再起動。
バージョン 1.3.4 --- 2018/06/08
変更:
- データフィルタリング:空行とjson以外のデータのみをフィルタリング。
- ファイル削除機能を、毎日決まった時刻に削除する方式から、一定間隔ごとに削除する方式に変更。
設定ファイル:
- 設定ファイルの形式を最適化し、主に設定ファイルをsource、channel、sink、othersの4つの部分に分類。
- FREQUENCY_REMOVEパラメーターを追加。一定間隔ごとにアップロード済みのディレクトリ内のファイルを削除するために使用します。単位:分。
- TIME_REMOVEパラメーターを削除。
新機能:
- 自動化ツール(主にansible向け)で起動するための最適化スクリプトを追加し、bin/automationディレクトリに配置。主に起動
start、停止stop、即時停止stop_atOnceの3つのコマンドがあります。
パフォーマンスの最適化:
- 起動に必要なメモリを最適化し、メモリ要件を低減。
バージョン 1.3 --- 2018/04/21
- Kafkaデータソースに対応
- 既知のBugを修正
バージョン 1.0 --- 2018/03/29
- LogBusをリリース

