V4.2.3バージョンからAlertログが追加され、アラート関連のログ情報を表示するために使用されます。
Alertログの概要
Alertログは警告ログであり、OBServerの実行中に発生した重要なINFO、WARN、ERRORログを含みます。クラスタ内の重要なイベントを記録し、クラスタの状態を監視したり、一般的な問題を調査・解決するための便宜を図ることを目的としています。
Alertログフォーマット
ログファイルはCSV形式で保存され、各ログフィールド間は|で区切られています。ログ情報のテキストは""で囲まれています。
ログ例は以下のとおりです:
2023-12-21 13:46:57.650115|INFO|LOG|OB_LOG_SERVICE_START_SUCCESS|0|1001|51152|OBServer|Y5B690B7C0505-00060C87BB2B5971-0-0|start|ob_log_service.h:224|"OBServer log service start success, cost 638519 us."
Alertログには、時間、レベル、モジュール、イベント、エラーコード、テナントID、スレッド番号、スレッド名、TRACE ID、関数名、コード位置、詳細情報(解決策を含む)の12個のフィールドが含まれます。 各フィールドの具体的な意味は以下のとおりです:
| フィールド | 意味 | 例 |
|---|---|---|
| 時間 | ログが出力された時間 | 2023-12-21 13:46:57.650115 |
| レベル | ログレベル。例:INFO、WARN、ERROR | INFO |
| モジュール | ログが属するモジュール。例:STORAGE、SQL、TRANS | STORAGE |
| イベント | イベント識別子。クラスタの実行中に発生した重要なイベントを一意に識別します | OB_LOG_SERVICE_START_SUCCESS |
| エラーコード | エラーに対応するコード。INFOログのエラーコードは0です | -4012 |
| テナントID | 現在のタスクが属するテナントの番号 | 1002 |
| スレッド番号 | 現在のスレッドのスレッド番号 | 51152 |
| スレッド名 | 現在のスレッドのスレッド名 | observer |
| TRACE ID | 現在のSQL文の識別子。1つのSQLの実行プロセスを追跡するために使用されます | Y5B690B7C0505-00060C87BB2B5971-0-0 |
| 関数名 | ログが存在する関数の関数名 | start |
| コード位置 | ログが存在するコード位置 | ob_log_service.h:224 |
| 詳細情報 | ログイベントの説明、エラーの原因、解決策 | "observer log service start success, cost 638519 us." |
Alertログの保存
Alertログは、{observerインストールディレクトリ}/log/alert ディレクトリに保存され、ログファイル名は alert.log です。
単一のAlertログファイルのサイズは256MBを超えません。ログファイルのサイズが256MBに達すると、システムはログのローリングを行います。元のログファイルには、追加時間をサフィックスとして付加します(フォーマットは yyyyMMddHHmmss)。例えば、alert.log.20220304102928236 のようになります。
Alertログのクエリ
外部テーブルに基づいてAlertログを確認する
alert.log ファイルはCSV形式で保存されており、システムテナント以外の外部テーブルとしてのみログを確認できます。
Alertログファイルと比較して、外部テーブルにはIPアドレスとPORTフィールドが追加されており、Alertが属するノードのIPアドレスとポート番号を示します。以下のコマンドを使用してAlertログを確認します:
obclient> SELECT * FROM sys_external_tbs.__all_external_alert_log_info;
クエリ結果は次のとおりです:
+----------------------------+-------+----------------+---------------------------------------+---------+----------------+------+-----------+-----------+-------------+-----------------------------------+-------------------+--------------------------+-----------------------------------------------------------+
| time | level | module | event | errcode | ip | port | tenant_id | thread_id | thread_name | trace_id | func_name | code_location | message |
+----------------------------+-------+----------------+---------------------------------------+---------+----------------+------+-----------+-----------+-------------+-----------------------------------+-------------------+--------------------------+-----------------------------------------------------------+
| 2024-04-01 14:01:21.367457 | INFO | SERVER | OB_SERVER_INIT_BEGIN | 0 | xx.xx.xx.xx | 2882 | 0 | 70604 | observer | Y0-00000000xxxxxxxx-0-0 | init | ob_server.cpp:263 | [server_start 1/18] observer init begin. |
| 2024-04-01 14:01:21.378711 | INFO | LIB | OB_SERVER_SYSLOG_SERVICE_INIT_BEGIN | 0 | xx.xx.xx.xx | 2882 | 0 | 70604 | observer | Y0-00000000xxxxxxxx-0-0 | init | ob_log.cpp:1491 | [server_start 2/18] observer syslog service init begin. |
| 2024-04-01 14:01:21.381666 | INFO | LIB | OB_SERVER_SYSLOG_SERVICE_INIT_SUCCESS | 0 | xx.xx.xx.xx | 2882 | 0 | 70604 | observer | Y0-00000000xxxxxxxx-0-0 | init | ob_log.cpp:1565 | [server_start 3/18] observer syslog service init success. |
| 2024-04-01 14:01:22.267567 | INFO | SERVER | OB_SERVER_INIT_SUCCESS | 0 | xx.xx.xx.xx | 2882 | 0 | 70604 | observer | Y0-00000000xxxxxxxx-0-0 | init | ob_server.cpp:540 | [server_start 4/18] observer init success. |
| 2024-04-01 14:01:22.267599 | INFO | SERVER | OB_SERVER_START_BEGIN | 0 | xx.xx.xx.xx | 2882 | 0 | 70604 | observer | Y0-00000000xxxxxxxx-0-0 | start | ob_server.cpp:854 | [server_start 5/18] observer start begin. |
| 2024-04-01 14:01:22.267613 | INFO | SERVER | OB_SERVER_INSTANCE_START_BEGIN | 0 | xx.xx.xx.xx | 2882 | 0 | 70604 | observer | Y0-00000000xxxxxxxx-0-0 | start | ob_server.cpp:872 | [server_start 6/18] observer instance start begin. |
| 2024-04-01 14:01:22.300143 | INFO | STORAGE_BLKMGR | OB_SERVER_BLOCK_MANAGER_START_BEGIN | 0 | xx.xx.xx.xx | 2882 | 0 | 70604 | observer | Y0-00000000xxxxxxxx-0-0 | start | ob_block_manager.cpp:199 | [server_start 7/18] block manager start begin. |
| 2024-04-01 14:01:22.354769 | INFO | STORAGE_BLKMGR | OB_SERVER_BLOCK_MANAGER_START_SUCCESS | 0 | xx.xx.xx.xx | 2882 | 0 | 70604 | observer | Y0-00000000xxxxxxxx-0-0 | start | ob_block_manager.cpp:256 | [server_start 8/18] block manager start success. |
| 2024-04-01 14:02:15.592144 | INFO | BOOTSTRAP | OB_BOOTSTRAP_PREPARE_BEGIN | 0 | xx.xx.xx.xx | 2882 | 1 | 71165 | T1_L0_G0 | YB42AC1E87E2-00061502xxxxxxxx-0-0 | prepare_bootstrap | ob_bootstrap.cpp:243 | bootstrap prepare begin. |
| 2024-04-01 14:02:21.341029 | INFO | BOOTSTRAP | OB_BOOTSTRAP_PREPARE_SUCCESS | 0 | xx.xx.xx.xx | 2882 | 1 | 71165 | T1_L0_G0 | YB42AC1E87E2-00061502xxxxxxxx-0-0 | prepare_bootstrap | ob_bootstrap.cpp:275 | bootstrap prepare success. |
+----------------------------+-------+----------------+---------------------------------------+---------+----------------+------+-----------+-----------+-------------+-----------------------------------+-------------------+--------------------------+-----------------------------------------------------------+
10 rows in set, 6 warnings (0.008 sec)
alert.log ファイルが256MBに達すると、新しいAlertログファイルが生成されます。この場合、外部テーブルのファイルリストを手動で更新する必要があります:
obclient> ALTER EXTERNAL TABLE sys_external_tbs.__all_external_alert_log_info refresh;
更新後に再度クエリを実行すると、すべてのログ内容を確認できます。
注意
ツールとの互換性およびアップグレードの一貫性を確保するため、__all_external_alert_log_info テーブルを手動で作成しないでください。
Alertログに基づく問題のトラブルシューティング
INFOログ
alert.logファイル内のINFOログを通じて、特定のプロセスの進捗状況を確認できます。例えば、以下のOBServer起動シナリオのログでは、[server_start 3/12]の情報から、observerプロセスの起動プロセスが12のステップで構成されており、現在3番目のステップに進んでいることがわかります。このステップのイベント識別子はOB_SERVER_SYSLOG_SERVICE_INIT_SUCCESSで、「システムログサービスの初期化に成功しました」という意味です。2024-02-22 11:39:39.910566|INFO|SERVER|OB_SERVER_START_BEGIN|0|0|88288|OBServer|Y0-00000000xxxxxxxx-0-0|main|main.cpp:556|"[server_start 1/12] OBServer start begin." 2024-02-22 11:39:39.933725|INFO|LIB|OB_SERVER_SYSLOG_SERVICE_INIT_BEGIN|0|0|88288|OBServer|Y0-00000000xxxxxxxx-0-0|init|ob_log.cpp:1457|"[server_start 2/12] OBServer syslog service start begin." 2024-02-22 11:39:39.937152|INFO|LIB|OB_SERVER_SYSLOG_SERVICE_INIT_SUCCESS|0|0|88288|OBServer|Y0-00000000xxxxxxxx-0-0|init|ob_log.cpp:1531|"[server_start 3/12] OBServer syslog service start success."WARN/ERRORログ
alert.logファイル内のWARNログとERRORログを通じて、イベントの説明情報を確認したり、エラーの原因や解決方法を取得したりできます。例えば、以下のCLOGモジュールがディスクのサイズ変更操作に失敗したことを示すログでは、新しいディスクのサイズがすべてのテナントを収容するには不十分であることがエラーの原因として示されています。また、この問題を解決するための解決策として、log_disk_sizeを43526MBより大きな値に設定することが提案されています。2023-11-17 03:19:38.592090|ERROR|CLOG|OB_CLOG_ALLOCATE_DISK_SPACE_FAILED|-4290|0|2569344|OBServer|Y0-0000000000000000-0-0|resize_|ob_server_log_block_mgr.cpp:211|"new log_disk_size(21504MB) is not enough to hold all tenants. [suggestion] set log_disk_size greater than 43526MB."