4.2 自動診断収集の使用

Oracle Trace File Analyzerは、ORA-00600などの内部エラーやノードの除去などの重大な問題がないか、ログを監視します。

4.2.1 自動診断収集

この項では、自動診断収集の概念について説明します。

Oracle Trace File Analyzerは問題を検出すると、次のアクションを実行します。

  • 必要な診断を実行し、問題発生時の関連するすべてのログ・データを収集します

  • ログ・ファイルを切り捨て、診断に必要なデータのみを収集します

  • クラスタ内のすべてのノードから、切捨て済のすべての診断を収集してパッケージ化し、単一ノード上にすべてを統合します

  • Oracle Trace File Analyzerリポジトリに診断収集を格納します

  • 問題と、Oracleサポートにアップロード可能な診断収集の詳細に関する電子メール通知を送信します

Oracle Trace File Analyzerには、過度の自動収集で、繰り返しエラーによってシステムが過負荷になるのを防ぐメカニズムがあります。

イベントが識別されると収集の開始点がトリガーされ、5分間後に、Oracle Trace File Analyzerによって診断データの収集が開始されます。5分後に開始することで、Oracle Trace File Analyzerが1つの操作で他の関連イベントを取得できるようになります。イベントが5分後にまだ発生している場合、診断収集は引き続き待機します。Oracle Trace File Analyzerは、イベントが発生しなくなるまで、さらに30秒間から5分間まで待機します。

10分後にイベントが継続している場合、Oracle Trace File Analyzerは引き続き診断収集を実行します。

診断収集が完了すると、Oracle Trace File Analyzerは指定された受信者に、収集場所を含む電子メール通知を送信します。

ご使用の環境でoracleに接続できる場合、Oracle Trace File Analyzerを使用して、サービス・リクエストに収集をアップロードできます。

$ tfactl set autodiagcollect=ON|OFF

デフォルトでは、自動収集はONです。

表4-3 自動収集をトリガーするログ・エントリ

文字列パターン 監視対象ログ

ORA-297(01|02|03|08|09|10|40)

ORA-00600

ORA-07445

ORA-04(69|([7-8][0-9]|9([0-3]|[5-8])))

ORA-32701

ORA-00494

ORA-04020

ORA-04021

ORA-01578

ORA-00700

System State dumped

アラート・ログ - Oracle Database

アラート・ログ - Oracle Database/Oracle ASM

アラート・ログ - Oracle Database/Oracle ASMプロキシ

アラート・ログ - Oracle Database

CRS-016(07|10|11|12)

アラート・ログ - Oracle Clusterware

また、Oracle Cluster Health Advisorが問題イベントを検出すると、Oracle Trace File Analyzerによって、関連する診断収集が自動的にトリガーされます。

4.2.2 電子メール通知の詳細の構成

自動収集の完了後に、登録された電子メール・アドレスに電子メールを送信するようにOracle Trace File Analyzerを構成します。

電子メールを送信するには、Oracle Trace Analyzerが実行されているシステムを構成します。ユーザーの電子メール・アドレスを使用して通知を構成する必要があります。

電子メール通知の詳細を構成するには:

  1. 特定のORACLE_HOMEの通知電子メールを設定するには、コマンドにオペレーティング・システムの所有者を含めます。
    tfactl set notificationAddress=os_user:email
    たとえば:
    tfactl set notificationAddress=oracle:some.body@example.com
  2. 任意のORACLE_HOMEの通知電子メールを設定するには、次のようにします。
    tfactl set notificationAddress=email
    たとえば:
    tfactl set notificationAddress=another.body@example.com
  3. tfactl set smtpを使用してSMTPサーバーを構成します。

    プロンプトが表示されたら、SMTPパラメータを設定します。

    表4-4 tfactl diagnosetfaコマンドのパラメータ

    パラメータ 説明

    smtp.host

    SMTPサーバーのホスト名を指定します。

    smtp.port

    SMTPサーバー・ポートを指定します。

    smtp.user

    SMTPユーザーを指定します。

    smtp.password

    SMTPユーザーのパスワードを指定します。

    smtp.auth

    認証フラグをtrueまたはfalseに設定します。

    smtp.ssl

    SSLフラグをtrueまたはfalseに設定します。

    smtp.from

    送信元メールIDを指定します。

    smtp.to

    受信者メールIDのカンマ区切りリストを指定します。

    smtp.cc

    CCメールIDのカンマ区切りリストを指定します。

    smtp.bcc

    BCCメールIDのカンマ区切りリストを指定します。

    smtp.debug

    デバッグ・フラグをtrueまたはfalseに設定します。

    ノート:

    tfactl print smtpを使用して、現在のSMTP構成の詳細を表示できます。

  4. tfactl sendmail email_addressを使用してテスト電子メールを送信し、SMTP構成を検証します。

    重大なエラーが発生したことをOracle Trace File Analyzerが検出した場合は、次のように電子メール通知が送信されます。

    図4-3 電子メール通知

    図4-3の説明が続きます。
    「図4-3 電子メール通知」の説明
  5. 通知電子メールを受信したら、次を実行します。
    1. 根本原因を特定するには、参照先の収集の詳細を調べます。
    2. 問題を修正できる場合は、問題の根本原因を解決します。
    3. 問題の根本原因がわからない場合は、Oracleサポートに対するSRを登録し、収集の詳細をアップロードします。

4.2.3 Oracle Cluster Health Advisorによって検出された問題の収集

異常なイベントの診断を自動的に収集し、電子メール通知を送信するようにOracle Cluster Health Advisorを構成します。

  1. Oracle Cluster Health Advisorで異常なイベントの自動収集を構成するには、次のようにします。
    tfactl set chaautocollect=ON
  2. Oracle Trace File Analyzerを介してOracle Cluster Health Advisor通知を有効にするには、次のようにします。
    tfactl set chanotification=on
  3. Oracle Cluster Health Advisor通知の送信先の電子メール・アドレスを構成するには、次のようにします。
    tfactl set notificationAddress=chatfa:john.doe@acompany.com

4.2.4 Oracle Trace File Analyzerの収集内の機密情報のサニタイズ

診断データのコピーを収集した後、Oracle Trace File AnalyzerはAdaptive Classification and Redaction (ACR)を使用して、収集内の機密データをサニタイズします。

ノート:

Oracle Autonomous Health Framework 24.1以降、Oracle Trace File Analyzerマスキング機能は非推奨になり、将来のリリースでサポートされなくなる可能性があります。
収集内の機密データをマスクまたはサニタイズするには、次のようにします。
tfactl set redact=mask|sanitize|none

mask: すべての収集内の機密データを見えなくします。たとえば、myhost1*******に置き換えます

sanitize: すべての収集内の機密データをランダムな文字に置き換えます。たとえば、myhost1をorzhmv1に置き換えます

none (デフォルト): 収集内の機密データをマスクまたはサニタイズしません

diagcollectコマンドで-sanitizeオプションと-maskオプションを使用して、特定の収集内の機密データをサニタイズまたはマスクできます。

機密データをマスクするには:

  1. すべての収集内の機密データをマスクするには、次のようにします。
    tfactl set redact=mask
  2. すべての収集内の機密データをサニタイズするには、次のようにします。
    tfactl set redact=sanitize
  3. 特定の収集内の機密データをマスクまたはサニタイズするには、次のようにします。
    たとえば:
    tfactl diagcollect -SRDC ORA-00600 -mask
    tfactl diagcollect -SRDC ORA-00600 -sanitize

4.2.5 類似の問題のフラッド制御

フラッド制御メカニズムは、類似の問題に対する収集の繰返しを減らすことで、リソースを節約するのに役立ちます。

次のことが可能です。
  • フラッド制御を有効または無効にします。
  • イベントに対して収集する回数。
  • フラッド制御を一時停止します。

フラッド制御データは、Berkeleyデータベースに格納され、Oracle Trace File Analyzerの再起動後も保持されます。

例4-1 フラッド制御の例

フラッド制御が有効か無効かを確認するには、次のようにします。
# tfactl get floodcontrol
.----------------------------------------.
|               testhost                 |
+--------------------------------+-------+
| Configuration Parameter        | Value |
+--------------------------------+-------+
| Flood Control ( floodcontrol ) | ON    |
'--------------------------------+-------'
フラッド制御の制限を確認するには、次のようにします。
# tfactl get fc.limit
.------------------------------------------------.
|                   testhost                     |
+----------------------------------------+-------+
| Configuration Parameter                | Value |
+----------------------------------------+-------+
| Flood Control Limit Count ( fc.limit ) | 3     |
'----------------------------------------+-------'
フラッド制御の制限時間を確認するには、次のようにします。
# tfactl get fc.limittime
.-------------------------------------------------------------.
|                          testhost                           |
+-----------------------------------------------------+-------+
| Configuration Parameter                             | Value |
+-----------------------------------------------------+-------+
| Flood Control Limit Time (minutes) ( fc.limitTime ) | 60    |
'-----------------------------------------------------+-------'
フラッド制御の一時停止時間を確認するには、次のようにします。
# tfactl get fc.pausetime
.-------------------------------------------------------------.
|                          testhost                           |
+-----------------------------------------------------+-------+
| Configuration Parameter                             | Value |
+-----------------------------------------------------+-------+
| Flood Control Pause Time (minutes) ( fc.pauseTime ) | 120   |
'-----------------------------------------------------+-------'
フラッド制御の詳細を出力するには、次のようにします。
# tfactl floodcontrol print

.----------------------------------------------------------------------------------------------------------------------------------------------------------.
| Event                  | Count | Start Date                   | Last Date                    | Limit | Limit Time | Pause Time | Coll Count | Skip Count |
+------------------------+-------+------------------------------+------------------------------+-------+------------+------------+------------+------------+
| orcl:ORA-00600:user1   |     1 | Thu May 21 09:18:56 UTC 2020 | Thu May 21 09:18:56 UTC 2020 |     3 |         60 |        120 |          1 |          0 |
+------------------------+-------+------------------------------+------------------------------+-------+------------+------------+------------+------------+
| orcl:ORA-00600:user2   |     1 | Thu May 21 09:18:25 UTC 2020 | Thu May 21 09:18:25 UTC 2020 |     3 |         60 |        120 |          4 |          2 |
'------------------------+-------+------------------------------+------------------------------+-------+------------+------------+------------+------------'
フラッド制御をクリアするには、次のようにします。
# tfactl floodcontrol clear -event orcl:ORA-00600:user1
Successfully cleared Event orcl:ORA-00600:user1

# tfactl floodcontrol print
.---------------------------------------------------------------------------------------------------------------------.
| Event                  | Count | Start Date | Last Date | Limit | Limit Time | Pause Time | Coll Count | Skip Count |
+------------------------+-------+------------+-----------+-------+------------+------------+------------+------------+
| orcl:ORA-00600:user1   |     0 | null       | null      |     3 |         60 |        120 |          3 |          2 |
'------------------------+-------+------------+-----------+-------+------------+------------+------------+------------'
フラッド制御の詳細を更新するには、次のようにします。
# tfactl floodcontrol update -event orcl:ORA-00600:user1 -limit 10 -limittime 90 -pausetime 180
Successfully updated Flood Control Event

# tfactl floodcontrol print -event orcl:ORA-00600:user1
.----------------------------------------------------------------------------------------------------------------------------------------------------------.
| Event                  | Count | Start Date                   | Last Date                    | Limit | Limit Time | Pause Time | Coll Count | Skip Count |
+------------------------+-------+------------------------------+------------------------------+-------+------------+------------+------------+------------+
| orcl:ORA-00600:user1   |     1 | Thu May 21 09:18:25 UTC 2020 | Thu May 21 09:18:25 UTC 2020 |    10 |         90 |        180 |          4 |          2 |
'------------------------+-------+------------------------------+------------------------------+-------+------------+------------+------------+------------'

関連トピック