はじめに

トラブル発生時にサポートセンターにお問い合わせいただくと、scrutinizeという情報収集ツールの実行を求められる場合があります。scrutinizeを実行すると、クラスタを構成しているサーバの情報や、Verticaのログファイル、カタログ、システムテーブルといった様々な情報を一括で収集することができます。


収集される診断情報

scrutinizeは、Verticaを構成するすべてのノードで以下の診断情報を収集します。
・ホストの診断情報と構成情報
・稼働状況(起動状態のノード数または停止状態のノード数)
・ログファイル(vertica.logやdbLog、admintools.logなど)
・エラーメッセージ
・データベースデザイン
・システムテーブルの情報(システムリソース、ワークロード、パフォーマンス)※
・カタログのメタデータ(システム構成用のパラメータ)
・バックアップ情報

※サポートセンターから、scrutinizeの実行を依頼された場合は、速やかに実行してください。システムテーブルは、一定のサイズを超えると過去情報が削除されてしまいます。そのため、事象発生から暫く経過後にscrutinizeを実行した場合は、情報が存在せずに調査できないことがあります。

前提条件

scrutinizeを実行するための前提条件です。
実行可能ユーザファイル出力ディレクトリディスク要件
dbadmin(OSユーザ)(デフォルト)カレントディレクトリ
※-oオプションによって出力ディレクトの変更が可能
/tmpに最低1GB以上の空き容量があること。
その他、ファイル出力ディレクトリにScrutinizeを出力するだけの空き容量が存在すること。(オプションによって必要サイズは異なります)

使用例

scrutinizeは、Verticaクラスタ内のいずれかのノードで実行します。

基本的な使い方

データベース名がtestdb、データベースの管理者名がdbadmin、パスワードがpasswordの場合の例です。

※正常にscrutinizeが取得されないため、LANG環境変数は「en_US.utf-8」に設定してください。

過去分vertica.logを取得する場合

scrutiznizeを実行すると、最新のvertica.logのみを取得しますが、-zオプションを使うことで、指定した日数分だけ過去のvertica.logを取得します。サポートセンターから、scrutiznizeの実行を依頼されて、既に事象発生日が過ぎている場合は、何日前に事象発生したかを確認のうえで、-zオプションを指定してください。


コマンドオプション

scrutinizeコマンドには、以下のオプションが用意されています。(バージョン:10.1)
バージョンによっては使用できないオプションがありますので、ヘルプやマニュアルを確認してください。

情報オプション

オプション説明
--version Verticaのバージョン、およびscrutinizeのバージョンを表示します。
--help
-h
scrutinizeオプションを画面に表示します。

出力リダイレクトオプション

オプション説明
--tmpdir=path scrutinize実行に使用される一時ディレクトリを指定します。デフォルトは/tmpが使用されます。このオプションで指定したパスには次の要件が適用されます。
・ディレクトリには1GB以上の空き容量が必要です。
・ディレクトリに対する書き込み権限が必要です。

※複数ノードの情報を一括で取得する場合、このパラメータで指定するディレクトリが各ノードに存在する必要があります
--output_dir=path
-o path
scrutinizeファイルの出力ディレクトリを指定します。このオプションを省略した場合は、カレントディレクトリに出力されます。

$ scrutinize ‑‑output_dir="/my_diagnostics/"

セキュリティオプション

オプション説明
--user=username
-U username
データベースの管理者ユーザ名を指定します。デフォルトでは、scrutinizeを実行したOSユーザ名を使用します。
--password=password
-P password
データベースのパスワードを指定します。このオプションを省略した場合は、環境変数「VSQL_PASSWORD」を参照し、設定されていない場合は警告が発生します。特殊文字を含むパスワードは、一重引用符で囲む必要があります。

$ scrutinize -P '@passWord**'
$ scrutinize --password='$password1*'
--prompt-password
-W
データベースパスワードの入力を求めるプロンプトを表示します。

データ収集範囲オプション[データ収集量]

オプション説明
--by-second
--by-minute=boolean-value
以下のいずれかのオプションを使用して、Data Collectorテーブルから収集される情報の細分性を指定します。

--by-second:最高レベルの細分性。秒単位までデータを収集することを指定します。
--by-minute=boolean-value:ブーリアン値の指定は次のいずれかです。
                {yes|on}:(デフォルト)データを分単位で収集します。
                {no|off}:1時間単位でのデータ収集を行います。

次のコマンドは1時間までのデータを収集します。
$ scrutinize --by-minute=no

次のコマンドは秒単位でデータを収集します。
$ scrutinize --by-second
--get-files file-list グロブを含む、収集する追加フ​​ァイルを指定します。file-listはセミコロンで区切られたファイルのリストです。
--include_gzlogs=num-files
-z num-files
ローテーションされたログファイル(vertica.log*.gz)を収集対象に含めることを指定します。ここで、num-filesは次のいずれかです。

整数値:収集するローテーションされたログファイル数を指定します。
all:ローテーションされたすべてのログファイルを収集します。

デフォルトでは、scrutinizeは3つのローテーションされたログファイルを含みます。 次のコマンドは、2つのローテーションされたログファイルを収集するように指定します。

$ scrutinize --include_gzlogs=2
--log-limit=limit
-l limit
Verticaログから収集するデータの量を指定します。limitでは、最新のログエントリから始めて、収集するログデータの量をギガバイト単位で指定します。デフォルトでは、Scrutinizeは1 GBのログデータを収集します。 次のコマンドは4GBのログデータを収集するように指定しています。

$ scrutinize --log-limit=4

データ収集範囲オプション[ノード固有コレクション]

オプション説明
--local_diags
-s
scrutinizeが呼び出されたホストからのみデータを収集します。
--hosts=host-list
-n host-list
host-listで指定されたホストからのみデータを収集します。host-listはカンマ区切りで指定します。

$ scrutinize --hosts=127.0.0.1,host_3,host_1

データ収集範囲オプション[インクルード]

オプション説明
--debug ログのデバッグ情報を収集します。
--diag-dump データベースデザイン、システムテーブル、およびデータコレクタテーブルに制限して収集します。このオプションを使用してデータを収集し、システムのパフォーマンスを分析します。
--diagnostics ログファイルデータとVerticaおよびそのホストシステムに対して実行されるコマンドからの出力に制限して収集します。このオプションを使用してデータを収集し、Verticaシステムでの予期しない動作を評価します。
--include-ros-info システムテーブルのROS関連情報が含まれます。
--no-active-queries
--with-active-queries
現在実行中のクエリに関する診断情報をシステムテーブルとデータコレクターテーブルから除外することを指定します。デフォルトでは、scrutinizeはこの情報を収集します。
--tasks=tasks
-T tasks
ファイルまたはJSONリストで指定されているように、1つ以上のタスクのデータ収集を指定します。このオプションは通常、excludeオプションと一緒に使用されます。
--type=type
-t type
実行する診断コレクションのタイプを指定します。typeは次の引数のいずれかです。

profiling:プロファイリングデータを収集します。
context:概要情報を収集します。
-with-active-queriesデフォルト設定では、現在実行中のクエリに関するシステムテーブルとデータコレクタテーブルの診断情報を含めるように指定します。このデータを省略するには、「--no-active-queries」オプションを使用します。

データ収集範囲オプション[エクスクルード]

オプション説明
--exclude=tasks
-X tasks
収集データから1つ以上のタイプのタスクを除外します。ここで、tasksは除外するタスクのカンマ区切りのリストです。

※このオプションは、通常サポートセンターから提示された場合のみ使用します。

除外するタスクを、次の引数で指定します。(文字の大文字/小文字は区別されません)

all:すべてのデフォルトタスク
DC:データコレクターテーブル
File:インストールプロセス、データベース、およびvertica.log、dbLog、adminTools.logなどの管理ツールからのログファイル
VerticaLog:vertica.log
CatalogObject:システム構成パラメータなどのVerticaカタログメタデータ
SystemTable:システム、リソース、ワークロード、パフォーマンスに関する情報を含むVerticaシステムテーブル
Query:vsqlを使用してデータベースに接続するVerticaメタ関数(EXPORT_CATALOG)など
Command:オペレーティングシステム情報(ノードが稼働している時間の長さなど)
--no-active-queries現在実行中のクエリに関するシステムテーブルとデータコレクターテーブルからのデータ収集を省略します。デフォルトでは、scrutinizeは常にアクティブなクエリ情報を収集します。
--vsql-off
-v
データベースへの接続に使用されるQueryおよびSystemTableタスクを除外します。
このオプションは、アップグレード中に発生する問題に対処するのに役立ち、通常、次の場合に使用されます。

・データベースの応答が遅い場合
・データベース未作成の状態でクラスターの問題のトラブルシューティングが必要な状態


参考情報

各バージョンのマニュアル:Collecting Diagnostics: scrutinize Command
Vertica10.1
Vertica10.0
Vertica9.3
Vertica9.2
Vertica9.1
Vertica9.0
Vertica8.1

検証バージョンについて

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

更新履歴

2021/11/01 「はじめに」のscrutinize紹介文を更新、
 「使用例」に「-z」オプション追加、「–begin –end」と「-m」オプション削除、
 「コマンドオプション」を用途毎に分類、内容全般を更新、「–begin –end」オプション削除、
 「参考情報」の項目を追加、
 「検証バージョン」を10.1に更新、
 「更新履歴」の項目を追加
2020/05/26 9.1用に更新
2015/06/03 本記事を公開