Log Manager#

PEM Log Managerを使用して、Postgresインスタンスのサーバーログ構成を簡素化できます。ログマネージャーを使用すると、次を含むすべてのサーバーログパラメーターを変更できます。

  • ログファイルが書き込まれる場所

  • ログファイルが書き込まれる頻度

  • ログファイルに書き込まれる情報の種類

  • ログファイルエントリのフォーマット

  • ログローテーションのプロパティ

Log Managerを使用してサーバーのロギングプロパティを定義する前に、新しいサーバー登録またはプロパティの Advanced タブの Service ID フィールドに、関連するAdvanced ServerまたはPostgreSQLデータベースサーバーの名前を指定する必要がありますダイアログボックス。サーバーは、 Service ID フィールドでサービスの名前を指定した場合にのみ、Server Selectionダイアログボックスの構成に使用できます。

たとえば、LinuxホストにあるAdvanced Server 9.4インスタンスのロギング設定を設定しているとします。監視対象サーバーの Properties ダイアログボックスの Advanced タブの Service ID フィールドをppas-9.4 に設定します。

注釈

  • Log Managerは、設定とサーバーログ構成プローブに依存して、ウィザードのすべてのフィールドにデータを入力します。したがって、選択したサーバーのこれらのプローブが有効になっていることを確認します。さらに、これらのプローブの実行頻度を最小限に設定して、Log Managerが最新のログ構成を反映するようにします。 - postgresql.conf などの構成ファイルのロギングに関連する手動変更を加えた場合、Log Managerを再実行します。 PEMは、これらの変更を自動的に反映しません。

Postgresインスタンスのロギングを構成するには、サーバーをPEM管理サーバーとして登録し、登録情報にサービススクリプトの名前が含まれている必要があります。

  1. Log Managerを開くには、PEMクライアントで、 Management > Log Manager を選択します。ウィザードが開き、Welcomeメッセージが表示されます。 Next を選択します。

  2. Server Selectionダイアログボックスには、PEMによって監視されているサーバー接続のリストが表示されます。 Log Managerウィザードで指定した構成を適用するサーバーの名前の横にあるチェックボックスをオンにします。 Log Managerは、サーバー選択ツリーで名前の左側に赤い感嘆符が表示されているサーバーでは無効になっています。サーバーはいくつかの理由で有効にされない場合があります。

    • Log Managerは、[ Properties ダイアログボックスの Advanced ]タブでサービスIDを指定するサーバーのみを構成できます。サービスIDを提供するには

      1. ツリーでサーバー名を右クリックし、コンテキストメニューから Disconnect Server を選択します。

      2. プロンプトが表示されたら、パスワードを入力します。

      3. サーバーのコンテキストメニューから、 Properties を選択します。

      4. Advanced タブで、 Service ID フィールドにサービスの名前を入力します。

      5. Save を選択します。

    • サーバーにバインドされたPEMエージェントがサーバーを再起動するための十分な権限がない場合、サーバーは無効になります。

    • サーバーにバインドされたPEMエージェントが、関連付けられたPEMよりも古いバージョンの場合サーバー、サーバーは無効になっています。

Next を選択します。

  1. Log configurationダイアログボックスを使用して、ログファイルをPEMにインポートする頻度を指定し、ログローテーションの詳細を指定します。

Import Logs ボックスのオプションは、ログファイルをPEMにインポートする頻度を指定します。

  • Import logs to PEM の横にあるスイッチを使用して、ログファイルをPEMにインポートし、それらを表示するかどうかを指定しますthe Server Log Analysisashboard.

  • Import Frequency リストを使用して、ログファイルをPEMにインポートする頻度を指定します。

Log rotation configuration ボックスを使用して、ログファイルの最大長ライフスパンまたはサイズを指定します。

  • Rotation Size フィールドを使用して、ログファイルの最大サイズをメガバイト単位で指定します。デフォルト値は10MBです。ログファイルの最大サイズに制限を設けたくない場合は、0に設定します。

  • Rotation Time フィールドを使用して、各ログファイルに保存する全体の日数を指定します。デフォルト値は1日です。

Truncation on Rotation スイッチを使用して、時間ベースのログファイルローテーションのサーバー動作を指定します。

  • On を選択して、新しいファイルと同じ名前の既存のログファイルを上書きします。

  • Offを選択します 新しいログファイルと同じ名前の既存のログファイルに、新しいログファイルエントリを追加します。これはデフォルトの動作です。

Next を選択します。

  1. Where to Logダイアログボックスを使用して、ログファイルを書き込む場所を指定します。

    • Log Destination ボックスからオプションを選択して、サーバーログ出力の宛先を指定します。

      • stderr スイッチを次のように設定します。コンマ区切り値形式でログファイルを書き込むには、 csvlog スイッチを Yes に設定します。このオプションは、[ Schedule ]ダイアログボックスで Import logs to PEM を選択した場合、有効になり編集できません。サーバーログファイルをPEMにインポートしない場合は、このオプションを編集できます。

      • ログファイルをシステムログファイルに書き込むには、 syslog スイッチを Yes に設定します。

      • Windowsでは、 を設定しますログファイルをイベントログに書き込むには、eventlog** スイッチを Yes にします。

    • Log collection ボックスを使用して、収集設定を指定します。

      • Log Collector スイッチを Enableに設定します キャプチャされたログメッセージstderrにリダイレクトされます。

      • Log Silent Mode スイッチを Enable に設定して、制御端末からの関連付けを解除して、バックグラウンドでサーバーをサイレント実行します。

    • Log Directory ボックスを使用して、ログファイルの場所設定を指定します。

      • ログファイルの各セットを別のディレクトリに維持するには、 Change log directory for selected servers? スイッチを Yes に設定します。

      • 使用 ディレクトリ名 フィールドを使用して、ログファイルを書き込むディレクトリを指定します。ディレクトリは、監視対象サーバーのインストールディレクトリの下のpg_log ディレクトリの下にあります。

    • Log File Name フィールドを使用して、ログファイル名の形式を指定します。 デフォルト に設定されている場合、フォーマットはenterprisedb-%Y-%m-%d_%H%M%S であり、ここで

      • enterprisedb はファイル名接頭辞ですb_tran_31 Y はログが保存された年ですb_tran_31 m はログが保存された月ですb_tran_31 d はログが保存された日ですb_31 H はログが保存された時間です

      • M はログが保存された分です

      • S はログが保存された秒ですb_tran_29 syslogへのロギングが有効な場合

      • Syslog Facility リストを使用して、syslog機能を指定しますuse.

      • Syslog Ident フィールドを使用して、システムログのEDB Postgres Advanced Serverエントリを識別するプログラム名を指定します。

Next を選択します。

  1. When to Logダイアログボックスを使用して、ログファイルエントリを開始するイベントを指定します。

    • 重大度の順に重大度レベルは、最も重大度の高いものから最も低いものは次のとおりです。

      • panic - すべてのデータベースセッションを中止するエラー。

      • fatal - セッションを中止するエラー。

      • log - 管理者が関心を持つ情報メッセージ。

      • error - コマンドを中止するエラー。

      • warning - コマンドが完了するが、予想通りに実行されないエラー条件。

      • notice - ユーザーの関心のある項目。これはデフォルトです。

      • info - ユーザーによって暗黙的に要求された情報。

      • debug5 ~ debug1 - 開発者に役立つ詳細なデバッグ情報。

    • Client min attempts リストを使用して、クライアントアプリケーションに送信するメッセージの最も低い重大度レベルを指定します。

    • Log min attempts リストを使用して、サーバーログに書き込む最も低い重大度レベルを指定します。

    • デフォルトでは、エラーメッセージがサーバーログに書き込まれるときに、ログエントリを開始したSQLステートメントのテキストは含まれません。 Log min error Statement リストを使用して、 SQLステートメントロギングをトリガーする重大度レベルを指定します。メッセージが指定された重大度以上の場合、メッセージを生成したSQLステートメントはサーバーlog.

    • に書き込まれます。 Log minduration Statement リストを使用して、ミリ秒単位のステートメント期間を指定します。指定されたミリ秒数を超えるステートメントはサーバーログに書き込まれます。値 -1 は、すべての期間ベースのロギングを無効にします。値 0 は、すべてのステートメントとその期間をログに記録します。

    • Log temp files フィールドを使用して、ファイルサイズをキロバイト単位で指定します。一時ファイルが指定されたサイズに達すると、ログに記録されます。この機能を無効にするには、 -1 デフォルトの値を指定します。

    • Log autoVacuum minduration フィールドを使用して、ミリ秒単位の時間長を指定します。自動バキュームが指定された時間を超えると、アクティビティがログに記録されます。この機能を無効にするには、値 -1 デフォルトを指定します。

Next を選択します。

  1. What to Logダイアログボックスを使用して、デバッグと監査に役立つログエントリオプションを指定します。

Debug options ボックスのスイッチを使用して、クエリの実行に関連するログファイルに、開発者が関心を持つ可能性のある情報を含めます。

  • ログファイルの構文解析ツリー。

  • ログファイルにクエリリライター出力を含めるには、 Rewriter Output スイッチを Yes に設定します。

  • Execution plan スイッチを Yes に設定します実行された各クエリの実行プランをログファイルに含めます。

Indent Debug Options Output in Log スイッチが Yes に設定されている場合、サーバーはパースツリーエントリ、クエリリライターエントリ、またはクエリ実行プランエントリを含む各行をインデントします。インデントにより、生成されるログファイルが読みやすくなりますが、ログファイルが長くなります。

General Options ボックスのスイッチを使用して、ログファイルに監査情報を含めます。

  • サーバーログにチェックポイントとリスタートポイントを含めるには、 Checkpoints スイッチを Yes に設定します。

  • を設定しますConnections** スイッチを Yes に設定して、サーバーへの接続が試行された各接続と、サーバーログに正常に認証された接続を含めます。

  • サーバーログを含めるには、 Disconnections スイッチを Yes に設定しますセッション情報とセッション期間を提供する、終了したセッションのエントリー。

  • Duration スイッチを Yes に設定して、サーバーにログに記録された各ステートメントの実行に必要な時間を含めます。log.

  • を設定しますHostname** は Yes に切り替えて、各サーバーログエントリにIPアドレスとホスト名の両方を含めます。デフォルトでは、IPアドレスのみがログに記録されます。これにより、パフォーマンスのペナルティが発生する可能性があります。

  • ロックを取得するためにdeadlock_timeout パラメーターで指定された時間より長く待機するセッションのログエントリを書き込むには、 Lock Waits スイッチを Yes に設定します。これは、ロック待機がパフォーマンスの低下の原因であるかどうかを判断する場合に役立ちます。

Error verbosity リストを使用して、サーバーログの各エントリに書き込まれる詳細を指定します。

  • default を選択して、各サーバーログエントリにエラーメッセージ、詳細、ヒント、クエリ、およびコンテキストを含めます。

  • エラーメッセージのみをログに記録するには terse を選択します。

  • エラーメッセージ、DETAIL、HINT、QUERY、およびCONTEXTエラー情報、SQLSTATEエラーコードとソースコードファイル名、ファンクション名を含めるには verbose を選択します、およびエラーを生成した行番号。

Prefix string フィールドを使用して、各ログファイルエントリの先頭に書き込まれるprintfスタイルの文字列を指定します。サポートされるオプションについては、 Postgres core documentation のlog_line_prefixドキュメントを参照してください。

Statements リストを使用して、サーバーログに含めるSQLステートメントを指定します。

  • SQLステートメントのロギングを無効にするには none デフォルトを指定します。

  • ログddlに指示するには ddl を指定しますCREATE、ALTER、DROPなどのデータ定義言語ステートメント。

  • すべてのddlステートメントと、INSERT、UPDATE、DELETE、TRUNCATEなどのすべてのdmlデータ変更言語ステートメントをログに記録するには mod を指定します。と COPY FROM.

  • すべてのSQLステートメントをログに記録するには all を指定します。

Next を選択します。

  1. Schedule Logging Changesダイアログボックスを使用して、ロギングが構成変更を適用する時期を指定します。

    • Configure locations now スイッチを Yes に設定して、構成設定を有効にします。ログマネージャーウィザード.

    • が完了すると、サーバーが再起動します。設定とサーバーを再起動します。

ログマネージャーウィザードで指定された構成の変更を適用すると、サーバーが再起動し、ユーザーのデータベースサーバーの使用を一時的に中断します。

  1. Finish を選択してウィザードを終了します。サーバーを再起動するか、スケジュールダイアログボックスで指定された時間にサーバーの再起動をスケジュールします。

Server Log Analysisダッシュボードの確認#

ログマネージャーウィザードを起動し、ログファイルをPEMにインポートした後、 Server Log Analysisダッシュボードを使用して、選択したサーバーのログファイルを確認できます。 Server Log Analysisダッシュボードを開くには、PEMクライアントツリーで監視対象サーバーの名前を右クリックし、 Dashboards > Server Log Analysis を選択します。

The Server Log Analysis dashboard

The Server Log Analysis dashboard#

Server Log Analysisダッシュボードのヘッダー情報には、サーバーが起動された日時、ページが最後に更新された日時、およびトリガーされたアラートの現在の数が表示されます。

Server Logテーブルのエントリは時系列で表示され、最新のログエントリが最初に表示されます。スクロールバーを使用して、ログエントリを移動したり、表示されていない列を表示したりします。

サーバーログテーブルの上部の見出しは、各列に格納されている情報を示します。列見出しにカーソルを合わせると、各列のコンテンツの説明を含むツールチップが表示されます。

フィルタリングを使用して、表示されるサーバーログレコードの数を制限できます。 Show Filters を選択してフィルタパネルを開き、フィルタを定義します。 フィルタ定義 ボックスを使用して、表示するレポートのサブセットを選択するための選択基準を説明します。

  • From フィールドを使用して、表示されるサーバーログの開始日を指定します。

  • To フィールドを使用して、表示されるサーバーログの終了日を指定します。

  • Username フィールドにロール名を入力して、そのユーザーのみが実行したトランザクションを表示します。

  • Server フィールドにデータベース名を入力して、表示されるレコードを指定したデータベースに対して実行されたトランザクションに制限します。

  • Command Type フィールドを使用して、フィルタリングされたレポートに表示されるコマンドの選択基準を指定します。

サーバーログをフィルタリングするための基準を指定した後、 Filter を選択して、フィルタリングされたサーバーログをServer Logテーブルに表示します。