はじめに

この記事ではvertica.log ファイルの出力フォーマットについてご紹介します。


vertica.logファイルとは?

vertica.logファイルは、トランザクションの詳細内容や、Moveout/Mergeoutの実行、エラーなどデータベース起動中に発生した様々な動作を記録するファイルです。

<参考>
Verticaの各種ログファイル
http://vertica-tech.ashisuto.co.jp/logfiles/



ログファイルのフォーマット

vertica.logは以下のフォーマット規則に従って稼働状況が記録されます。

【フォーマット】

Time_Stamp Service_Name:Thread_Id [Component] <Log_Type> Actual_Log_Message

フィールド意味出力例
Timestamp発生時刻2015-09-17 14:20:46.259
Service_Nameサービス名Init Session
Thread_IdスレッドIDa00000000617f0
ComponentTM(Tuple Mover)
Session(User session)
EE(Execution Engine)
OPT(Optimizer)
RECOVER(Recovery)
Txn(Transaction)
Session
Log_TypeログレベルINFO
Actual_Log_Messageログ内容[Query] TX:a00000000617f0(keisrv1.localdomain-739:0x16c) select * from test1;



ログレベルの詳細

vertica.logには記録されるアクティビティに応じて以下の様なレベルに分類されます。

ログレベル内容
PANICノードの突然のシャットダウンやパニック状態の発生
FATAL致命的な状態の時の情報
(クライアントからの接続がキャンセルされた場合など)
ERRORシステム内で発生したすべてのエラー
WARNING注意すべき情報



通常、データベースの監視を行う場合には、ログ監視を組み込むケースが多いかと思います。vertica.logに出力されるこれらログレベルのうち、以下のログレベルを監視対象の文字列とすることを推奨します。
 「PANIC」
 「FATAL」
 「ERROR」

また、以下のようなメッセージが出力された際には、稼働状況に問題が発生していることが考えられます。定常監視に組み込むことを推奨いたします。

メッセージ内容
Insufficientメモリ不足や権限がないなど、何らかの処理に不足が発生した場合の情報
【例】
 Insufficient resources : メモリ不足の状態
 Insufficient privilege : 権限がない
left theクラスタからノードがハズレた場合の情報
timeoutロックによって何らかのタイムアウトが発生した場合の情報



ログ監視実行時の注意点

ログレベルのうち、ERRORではコマンド入力時の記述ミスの場合にもログに出力されてしまいます。例えば、以下のように「FROM」を「FORM」と入力ミスしてしまった場合にもERRORメッセージが出力されます。


上記のようなケースでは、「Syntax error」が出力されている場合には監視対象から除外するといった運用を取ることをおすすめします。


対象処理を確認するには

ERRORなど文字列が出力された際に、対象セッションの処理内容を確認するには以下手順を実行します。



検証バージョンについて

この記事の内容はVertica 7.1で確認しています。