FE 設定 - ログ、サーバー、およびメタデータ
FE パラメータは、動的パラメータと静的パラメータに分類されます。
-
動的パラメータは、SQL コマンドを実行することで設定および調整でき、非常に便利です。ただし、FE を再起動すると設定が無効になります。そのため、fe.conf ファイルの設定項目も変更して、変更が失われないようにすることをお勧めします。
-
静的パラメータは、FE の設定ファイル fe.conf でのみ設定および調整できます。このファイルを変更した後、変更を有効にするには FE を再起動する必要があります。
パラメータが動的パラメータであるかどうかは、ADMIN SHOW CONFIG の出力の IsMutable 列で示されます。TRUE は動的パラメータを示します。
動的および静的 FE パラメータの両方が fe.conf ファイルで設定できることに注意してください。
FE 設定項目の表示
FE の起動後、MySQL クライアントで ADMIN SHOW FRONTEND CONFIG コマンドを実行して、パラメーター設定を確認できます。特定のパラメーターの設定をクエリするには、次のコマンドを実行します。
ADMIN SHOW FRONTEND CONFIG [LIKE "pattern"];
返されるフィールドの詳細な説明については、ADMIN SHOW CONFIG を参照してください。
クラスター管理関連コマンドを実行するには、管理者権限が必要です。
FE パラメーターの設定
FE 動的パラメーターの設定
ADMIN SET FRONTEND CONFIG を使用して、FE 動的パラメーターの設定を構成または変更できます。
ADMIN SET FRONTEND CONFIG ("key" = "value");
ADMIN SET FRONTEND で行った設定変更は、FE が再起動すると fe.conf ファイルのデフォルト値に戻ります。したがって、変更を永続的にしたい場合は、fe.conf の設定項目も変更することをお勧めします。
FE 静的パラメーターの設定
FE の静的パラメータは、設定ファイル fe.conf を変更し、FE を再起動して変更を反映させることで設定されます。
このトピックでは、以下の種類のFE構成について紹介します:
ログ
audit_log_delete_age
- デフォルト:30d
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:監査ログファイルの保持期間。デフォルト値
30dは、各監査ログファイルが 30 日間保持できることを指定します。StarRocks は各監査ログファイルをチェックし、30 日以上前に生成されたファイルを削除します。 - 導入時期:-
audit_log_dir
- デフォルト:
StarRocksFE.STARROCKS_HOME_DIR+ "/log" - タイプ:String
- 単位:-
- 変更可能:No
- 説明:監査ログファイルを格納するディレクトリ。
- 導入時期:-
audit_log_enable_compress
- デフォルト:false
- タイプ:Boolean
- 単位:N/A
- 変更可能:No
- 説明:true の場合、生成された Log4j2 設定は、ローテーションされた監査ログファイル名 (fe.audit.log.*) に ".gz" 接尾辞を追加し、Log4j2 がロールオーバー時に圧縮された (.gz) アーカイブ監査ログファイルを生成するようにします。この設定は、FE 起動時に Log4jConfig.initLogging で読み込まれ、監査ログの RollingFile アペンダーに適用されます。アクティブな監査ログではなく、ローテーション/アーカイブされたファイルにのみ影響します。値は起動時に初期化されるため、変更を有効にするには FE の再起動が必要です。監査ログのローテーション設定 (
audit_log_dir、audit_log_roll_interval、audit_roll_maxsize、audit_log_roll_num) とともに使用します。 - 導入時期:3.2.12
audit_log_json_format
- デフォルト:false
- タイプ:Boolean
- 単位:N/A
- 変更可能:Yes
- 説明:true の場合、FE 監査イベントは、デフォルトのパイプ区切り "key=value" 文字列ではなく、構造化された JSON (Jackson ObjectMapper が注釈付き AuditEvent フィールドの Map をシリアル化) として出力されます。この設定は、AuditLogBuilder が処理するすべての組み込み監査シンクに影響します。接続監査、クエリ監査、大容量クエリ監査 (イベントが条件を満たす場合、大容量クエリしきい値フィールドが JSON に追加されます)、および低速監査出力です。大容量クエリしきい値および "features" フィールドに注釈が付けられたフィールドは特別に扱われます (通常の監査エントリから除外され、該当する場合、大容量クエリまたは機能ログに含まれます)。これを有効にすると、ログコレクターまたは SIEM のログが機械で解析可能になります。ログ形式が変更されるため、従来のパイプ区切り形式を期待する既存のパーサーを更新する必要がある場合があります。
- 導入時期:3.2.7
audit_log_modules
- デフォルト:
slow_query, query - タイプ:String[]
- 単位:-
- 変更可能:No
- 説明:StarRocks が監査ログエントリを生成するモジュール。デフォルトでは、StarRocks は
slow_queryモジュールとqueryモジュールの監査ログを生成します。connectionモジュールは v3.0 以降でサポートされています。モジュール名をコンマ (,) とスペースで区切ります。 - 導入時期:-
audit_log_roll_interval
- デフォルト:DAY
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:StarRocks が監査ログエントリをローテーションする時間間隔。有効な値:
DAYとHOUR。- このパラメーターが
DAYに設定されている場合、監査ログファイル名にyyyyMMdd形式のサフィックスが追加されます。 - このパラメーターが
HOURに設定されている場合、監査ログファイル名にyyyyMMddHH形式のサフィックスが追加されます。
- このパラメーターが
- 導入時期:-
audit_log_roll_num
- デフォルト:90
- タイプ:Int
- 単位:-
- 変更可能:No
- 説 明:
audit_log_roll_intervalパラメーターで指定された各保持期間内に保持できる監査ログファイルの最大数。 - 導入時期:-
bdbje_log_level
- デフォルト:INFO
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:StarRocks で Berkeley DB Java Edition (BDB JE) が使用するロギングレベルを制御します。BDB 環境の初期化中に BDBEnvironment.initConfigs() は、この値を
com.sleepycat.jeパッケージの Java ロガーと BDB JE 環境ファイルロギングレベル (EnvironmentConfig.FILE_LOGGING_LEVEL) に適用します。SEVERE、WARNING、INFO、CONFIG、FINE、FINER、FINEST、ALL、OFF などの標準的な java.util.logging.Level 名を受け入れます。ALL に設定すると、すべてのログメッセージが有効になります。詳細度を上げると、ログのボリュームが増加し、ディスク I/O とパフォーマンスに影響を与える可能性があります。この値は BDB 環境が初期化されるときに読み込まれるため、環境の (再) 初期化後にのみ有効になります。 - 導入時期:v3.2.0
big_query_log_delete_age
- デフォルト:7d
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE の大容量クエリログファイル (
fe.big_query.log.*) が自動削除されるまでの保持期間を制御します。この値は、Log4j の削除ポリシーに IfLastModified age として渡されます。最終更新時刻がこの値よりも古いローテーションされた大容量クエリログは削除されます。d(日)、h(時間)、m(分)、s(秒) などの接尾辞をサポートしています。例:7d(7 日間)、10h(10 時間)、60m(60 分)、120s(120 秒)。この項目はbig_query_log_roll_intervalおよびbig_query_log_roll_numと連携して、どのファイルを保持またはパージするかを決定します。 - 導入時期:v3.2.0
big_query_log_dir
- デフォルト:
Config.STARROCKS_HOME_DIR + "/log" - タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE が大容量クエリダンプログ (
fe.big_query.log.*) を書き込むディレクトリ。Log4j 設定はこのパスを使用して、fe.big_query.logとそのローテーションされたファイル用の RollingFile アペンダーを作成します。ローテーションと保持は、big_query_log_roll_interval(時刻ベースのサフィックス)、log_roll_size_mb(サイズトリガー)、big_query_log_roll_num(最大ファイル数)、およびbig_query_log_delete_age(年齢ベースの削除) によって管理されます。大容量クエリレ コードは、big_query_log_cpu_second_threshold、big_query_log_scan_rows_threshold、またはbig_query_log_scan_bytes_thresholdなどのユーザー定義のしきい値を超えるクエリに対してログに記録されます。このファイルにログを記録するモジュールを制御するには、big_query_log_modulesを使用します。 - 導入時期:v3.2.0
big_query_log_modules
- デフォルト:
{"query"} - タイプ:String[]
- 単位:-
- 変更可能:No
- 説明:モジュールごとの大容量クエリロギングを有効にするモジュール名サフィックスのリスト。一般的な値は論理コンポーネント名です。たとえば、デフォルトの
queryはbig_query.queryを生成します。 - 導入時期:v3.2.0
big_query_log_roll_interval
- デフォルト:
"DAY" - タイプ:String
- 単位:-
- 変更可能:No
- 説明:
big_queryログアペンダーのローリングファイル名の日付コンポーネントを構築するために使用される時間間隔を指定します。有効な値 (大文字と小文字を区別しない) はDAY(デフォルト) とHOURです。DAYは日次パターン ("%d{yyyyMMdd}") を生成し、HOURは時間別パターン ("%d{yyyyMMddHH}") を生成します。この値は、サイズベースのロールオーバー (big_query_roll_maxsize) およびインデックスベースのロールオーバー (big_query_log_roll_num) と組み合わせて、RollingFile の filePattern を形成します。無効な値は、ログ設定の生成が失敗し (IOException)、ログの初期化または再構成を妨げる可能性があります。big_query_log_dir、big_query_roll_maxsize、big_query_log_roll_num、およびbig_query_log_delete_ageとともに使用します。 - 導入時期:v3.2.0
big_query_log_roll_num
- デフォルト:10
- タイプ:Int
- 単位:-
- 変更可能:No
- 説明:
big_query_log_roll_intervalごとに保持するローテーションされた FE 大容量クエリログファイルの最大数。この値は、fe.big_query.logの RollingFile アペンダーの DefaultRolloverStrategymax属性にバインドされます。ログが (時間またはlog_roll_size_mbによって) ロールオーバーすると、StarRocks はbig_query_log_roll_num個のインデックス付きファイル (filePattern は時刻サフィックスとインデックスを使用) を保持します。この数よりも古いファイルはロールオー バーによって削除される可能性があり、big_query_log_delete_ageは最終更新時刻によってさらにファイルを削除できます。 - 導入時期:v3.2.0
dump_log_delete_age
- デフォルト:7d
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:ダンプログファイルの保持期間。デフォルト値
7dは、各ダンプログファイルが 7 日間保持できることを指定します。StarRocks は各ダンプログファイルをチェックし、7 日以上前に生成されたファイルを削除します。 - 導入時期:-
dump_log_dir
- デフォルト:
StarRocksFE.STARROCKS_HOME_DIR+ "/log" - タイプ:String
- 単位:-
- 変更可能:No
- 説明:ダンプログファイルを格納するディレクトリ。
- 導入時期:-
dump_log_modules
- デフォルト:query
- タイプ:String[]
- 単位:-
- 変更可能:No
- 説明:StarRocks がダンプログエントリを生成するモジュール。デフォルトでは、StarRocks はクエリモジュールのダンプログを生成します。モジュール名をコンマ (,) とスペースで区切ります。
- 導入時期:-
dump_log_roll_interval
- デフォルト:DAY
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:StarRocks がダンプログエントリをローテーションする時間間隔。有効な値:
DAYとHOUR。- このパラメーターが
DAYに設定されている場合、ダンプログファイル名にyyyyMMdd形式のサフィックスが追加されます。 - このパラメーターが
HOURに設定されている場合、ダンプログファイル名にyyyyMMddHH形式のサフィックスが追加されます。
- このパラメーターが
- 導入時期:-
dump_log_roll_num
- デフォルト:10
- タイプ:Int
- 単位:-
- 変更可能:No
- 説明:
dump_log_roll_intervalパラメーターで指定された各保持期間内に保持できるダンプログファイルの最大数。 - 導入時期:-
edit_log_write_slow_log_threshold_ms
- デフォルト:2000
- タイプ:Int
- 単位:Milliseconds
- 変更可能:Yes
- 説明:JournalWriter が低速な編集ログバッチ書き込みを検出してログに記録するために使用するしきい値 (ミリ秒)。バッチコミット後、バッチ期間がこの値を超えると、JournalWriter はバッチサイズ、期間、現在のジャーナルキューサイズを伴う WARN を出力します (約 2 秒に 1 回にレート制限)。この設定は、FE リーダーでの潜在的な I/O またはレプリケーションの遅延に対するロギング/アラートのみを制御します。コミットまたはロールの動作は変更しません (
edit_log_roll_numおよびコミット関連の設定を参照)。このしきい値に関係なく、メトリック更新は引き続き発生します。 - 導入時期:v3.2.3
enable_audit_sql
- デフォルト:true
- タイプ:Boolean
- 単位:-
- 変更可能:No
- 説明:この項目が
trueに設定されている場合、FE 監査サブシステムは、ConnectProcessor によって処理されたステートメントの SQL テキストを FE 監査ログ (fe.audit.log) に記 録します。格納されたステートメントは、他の制御に従います。暗号化されたステートメントは編集され (AuditEncryptionChecker)、enable_sql_desensitize_in_logが設定されている場合、機密性の高い資格情報は編集または非機密化される可能性があり、ダイジェストレコーディングはenable_sql_digestによって制御されます。falseに設定されている場合、ConnectProcessor は監査イベントのステートメントテキストを "?" に置き換えます。他の監査フィールド (ユーザー、ホスト、期間、ステータス、qe_slow_log_msを介した低速クエリ検出、およびメトリック) は引き続き記録されます。SQL 監査を有効にすると、フォレンジックとトラブルシューティングの可視性が向上しますが、機密性の高い SQL コンテンツが公開され、ログのボリュームと I/O が増加する可能性があります。無効にすると、監査ログでの完全なステートメントの可視性を失う代わりにプライバシーが向上します。 - 導入時期:-
enable_profile_log
- デフォルト:true
- タイプ:Boolean
- 単位:-
- 変更可能:No
- 説明:プロファイルロギングを有効にするかどうか。この機能が有効になっている場合、FE はクエリごとのプロファイルログ (ProfileManager によって生成されたシリアル化された
queryDetailJSON) をプロファイルログシンクに書き込みます 。このロギングはenable_collect_query_detail_infoも有効になっている場合にのみ実行されます。enable_profile_log_compressが有効になっている場合、JSON はロギング前に gzipped されることがあります。プロファイルログファイルはprofile_log_dir、profile_log_roll_num、profile_log_roll_intervalによって管理され、profile_log_delete_age(7d、10h、60m、120sなどの形式をサポート) に従ってローテーション/削除されます。この機能を無効にすると、プロファイルログの書き込みが停止します (ディスク I/O、圧縮 CPU、ストレージ使用量の削減)。 - 導入時期:v3.2.5
enable_qe_slow_log
- デフォルト:true
- タイプ:Boolean
- 単位:N/A
- 変更可能:Yes
- 説明:有効にすると、FE 組み込み監査プラグイン (AuditLogBuilder) は、測定された実行時間 ("Time" フィールド) が
qe_slow_log_msで設定されたしきい値を超えるクエリイベントを低速クエリ監査ログ (AuditLog.getSlowAudit) に書き込みます。無効にすると、これらの低速クエリエントリは抑制されます (通常のクエリおよび接続監査ログは影響を受けません)。低速監査エントリは、グローバルなaudit_log_json_format設定 (JSON とプレーン文字列) に従います。このフラグを使用して、通常の監査ロギングとは独立して低速クエリ監査ボリュームの生成を制御します。無効にすると、qe_slow_log_msが低い場合やワークロードが多くの長時間実行クエリを生成する場合にログ I/O を削減できます。 - 導入時期:3.2.11
enable_sql_desensitize_in_log
- デフォルト:false
- タイプ:Boolean
- 単位:-
- 変更可能:No
- 説明:この項目が
trueに設定されている場合、システムはログとクエリ詳細レコードに書き込まれる前に機密性の高い SQL コンテンツを置き換えるか隠します。この設定を尊重するコードパスには、ConnectProcessor.formatStmt (監査ログ)、StmtExecutor.addRunningQueryDetail (クエリ詳細)、および SimpleExecutor.formatSQL (内部エクゼキュータログ) が含まれます。この機能が有効になっている場合、無効な SQL は固定の非機密化メッセージに置き換えられる可能性があり、資格情報 (ユーザー/パスワード) は隠され、SQL フォーマッターはサニタイズされた表現を生成する必要があります (ダイジェスト形式の出力を有効にすることもできます)。これにより、監査/内部ログでの機密リテラルや資格情報の漏洩が減少しますが、ログとクエリ詳細に元の完全な SQL テキストが含まれなくなることになります (これは再生やデバッグに影響する可能性があります)。 - 導入時期:-
internal_log_delete_age
- デフォルト:7d
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE 内部ログファイル (
internal_log_dirに書き込まれます) の保持期間を指定します。値は期間文字列です。サポートされている接尾辞:d(日)、h(時間)、m(分)、s(秒)。例:7d(7 日間)、10h(10 時間)、60m(60 分)、120s(120 秒)。この項目は、RollingFile Delete ポリシーで使用される<IfLastModified age="..."/>述語として log4j 設定に代入されます。最終変更時刻がこの期間よりも古いファイルは、ログのロールオーバー中に削除されます。この値を増やすとディスク領域をより早く解放できます。減らすと内部マテリアライズドビューまたは統計ログをより長く保持できます。 - 導入時期:v3.2.4
internal_log_dir
- デフォルト:
Config.STARROCKS_HOME_DIR+ "/log" - タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE ロギングサブシステムが内部ログ (
fe.internal.log) を保存するために使用するディレクトリ。この設定は Log4j 設定に代入され、InternalFile アペンダーが内部/マテリアライズドビュー/統計ログを書き込む場所、およびinternal.<module>の下にあるモジュールごとのロガーがファイルを配置する場所を決定します。ディレクトリが存在し、書き込み可能であり、十分なディスク容量があることを確認してください。このディレクトリ内のファイルのログローテーションと保持は、log_roll_size_mb、internal_log_roll_num、internal_log_delete_age、およびinternal_log_roll_intervalによって制御されます。sys_log_to_consoleが有効になっている場合、内部ログはこのディレクトリではなくコンソールに書き込まれることがあります。 - 導入時期:v3.2.4
internal_log_json_format
- デフォルト:false
- タイプ:Boolean
- 単位:-
- 変更可能:Yes
- 説明:この項目が
trueに設定されている場合、内部統計/監査エントリはコンパクトな JSON オブジェクトとして統計監査ロガーに書き込まれます。JSON には、"executeType" (InternalType: QUERY または DML)、"queryId"、"sql"、および "time" (経過ミリ秒) のキーが含まれます。falseに設定されている場合、同じ情報は単一のフォーマットされたテキスト行 ("statistic execute: ... | QueryId: [...] | SQL: ...") としてログに記録されます。JSON を有効にすると、機械解析とログプロセッサとの統合が向 上しますが、生の SQL テキストがログに含まれるため、機密情報が公開され、ログサイズが増加する可能性があります。 - 導入時期:-
internal_log_modules
- デフォルト:
{"base", "statistic"} - タイプ:String[]
- 単位:-
- 変更可能:No
- 説明:専用の内部ロギングを受け取るモジュール識別子のリスト。各エントリ X について、Log4j はレベル INFO と additivity="false" の
internal.<X>という名前のロガーを作成します。これらのロガーは、内部アペンダー (fe.internal.logに書き込まれます) またはsys_log_to_consoleが有効になっている場合はコンソールにルーティングされます。必要に応じて短い名前またはパッケージフラグメントを使用します。正確なロガー名はinternal.+ 構成された文字列になります。内部ログファイルのローテーションと保持は、internal_log_dir、internal_log_roll_num、internal_log_delete_age、internal_log_roll_interval、およびlog_roll_size_mbに従います。モジュールを追加すると、実行時メッセージが内部ロガーストリームに分離され、デバッグと監査が容易になります。 - 導入時期:v3.2.4
internal_log_roll_interval
- デフォルト:DAY
- タイプ:String
- 単位:-
- 変更可能:No
- 説明:FE 内部ログアペンダーの時刻ベースのロール間隔を制御します。受け入れられる値 (大文字と小文字を区別しない) は
HOURとDAYです。HOURは時間別ファイルパターン ("%d{yyyyMMddHH}") を生成し、DAYは日別ファイルパターン ("%d{yyyyMMdd}") を生成します。これらは RollingFile TimeBasedTriggeringPolicy によってローテーションされたfe.internal.logファイルに名前を付けるために使用されます。無効な値は、初期化の失敗 (アクティブな Log4j 設定の構築時に IOException がスローされます) を引き起こします。ロール動作は、internal_log_dir、internal_roll_maxsize(ソースにタイプミス、おそらくlog_roll_size_mb)、internal_log_roll_num、およびinternal_log_delete_ageなどの関連設定にも依存します。 - 導入時期:v3.2.4
internal_log_roll_num
- デフォルト:90
- タイプ:Int
- 単位:-
- 変更可能:No
- 説明:内部アペンダー (
fe.internal.log) に対して保持するローテーションされた内部 FE ログファイルの最大数 。この値は Log4j DefaultRolloverStrategy のmax属性として使用されます。ロールオーバーが発生すると、StarRocks は最大でinternal_log_roll_num個のアーカイブファイルを保持し、古いファイルを削除します (internal_log_delete_ageによって管理されます)。値を小さくするとディスク使用量が減りますが、ログ履歴が短くなります。値を大きくすると、より多くの履歴内部ログが保持されます。この項目は、internal_log_dir、internal_log_roll_interval、およびinternal_roll_maxsize(ソースにタイプミス、おそらくlog_roll_size_mb) と連携して機能します。 - 導入時期:v3.2.4
log_cleaner_audit_log_min_retention_days
- デフォルト:3
- タイプ:Int
- 単位:Days
- 変更可能:Yes
- 説明:監査ログファイルの最小保持日数。これよりも新しい監査ログファイルは、ディスク使用量が高くても削除されません。これにより、監査ログがコンプライアンスとトラブルシューティングの目的で保持されます。
- 導入時期:-