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

収集される診断情報
scrutinizeは、Verticaを構成するすべてのノードで以下の診断情報を収集します。
・ホストの診断情報と構成情報
・稼働状況(起動状態のノード数または停止状態のノード数)
・ログファイル(vertica.logやdbLog、admintools.logなど)
・エラーメッセージ
・データベースデザイン
・システムテーブルの情報(システムリソース、ワークロード、パフォーマンス)※
・カタログのメタデータ(システム構成用のパラメータ)
・バックアップ情報
※サポートセンターから、scrutinizeの実行を依頼された場合は、速やかに実行してください。システムテーブルは、一定のサイズを超えると過去情報が削除されてしまいます。そのため、事象発生から暫く経過後にscrutinizeを実行した場合は、情報が存在せずに調査できないことがあります。
前提条件
scrutinizeを実行するための前提条件です。
実行可能ユーザ | ファイル出力ディレクトリ | ディスク要件 |
|---|---|---|
dbadmin(OSユーザ) | (デフォルト)カレントディレクトリ | /tmpに最低1GB以上の空き容量があること。 |
使用例
scrutinizeは、Verticaクラスタ内のいずれかのノードで実行します。
基本的な使い方
データベース名がtestdb、データベースの管理者名がdbadmin、パスワードがpasswordの場合の例です。
$ export LANG=en_US.utf-8
$ scrutinize -d testdb -U dbadmin -P 'password'※正常にscrutinizeが取得されないため、LANG環境変数は「en_US.utf-8」に設定してください。
過去分vertica.logを取得する場合
scrutiznizeを実行すると、最新のvertica.logのみを取得しますが、-zオプションを使うことで、指定した日数分だけ過去のvertica.logを取得します。サポートセンターから、scrutiznizeの実行を依頼されて、既に事象発生日が過ぎている場合は、何日前に事象発生したかを確認のうえで、-zオプションを指定してください。
#-- dbadmin(OS)ユーザに変更にします。
# su - dbadmin
#-- LANG環境変数を設定します。
$ export LANG=en_US.utf-8
#-- 2日前のvertica.logを取得するため、"-z 2"を指定します。
$ scrutinize -d testdb -U dbadmin -P 'password' --by-minute yes -z 2
Scrutinize Version 11.0.0-0
Using default temporary directory
/tmp
-----------------------------
Invocation information
-----------------------------
/opt/vertica/oss/python3/lib/python3.7/site-packages/vertica/scrutinize.py -d testdb -U dbadmin -P ******--by-minute yes -z 2
-----------------------------
Vertica Scrutinize Report
-----------------------------
Result Dir: /home/dbadmin/VerticaScrutinize.20210930194418
User: dbadmin
Database: testdb
Leader node: v_testdb_node0001
ScrutinConsumer: Initializing
...
All threads reported done, exiting
Closing monitor thread...
Monitor received close message. Proceeding to close.
Please wait, this may take a few seconds...
Starting final packaging
Beginning archiving and compression of Scrutinize result
Tarball creation was successful.
Final file is /home/dbadmin/VerticaScrutinize.20210930195629.tar
All output stored in /home/dbadmin/VerticaScrutinize.20210930195629.tar
#-- 出力された VerticaScrutinize.*.tar ファイルを確認します。
$ ls -l /home/dbadmin/VerticaScrutinize.20210930195629.tar
-rw-r--r-- 1 dbadmin verticadba 829440 9月 30 19:57 /home/dbadmin/VerticaScrutinize.20210930195629.tarコマンドオプション
scrutinizeコマンドには、以下のオプションが用意されています。(バージョン:10.1)
バージョンによっては使用できないオプションがありますので、ヘルプやマニュアルを確認してください。
情報オプション
オプション | 説明 |
|---|---|
--version | Verticaのバージョン、およびscrutinizeのバージョンを表示します。 |
--help | scrutinizeオプションを画面に表示します。 |
出力リダイレクトオプション
オプション | 説明 |
|---|---|
--tmpdir=path | scrutinize実行に使用される一時ディレクトリを指定します。デフォルトは/tmpが使用されます。このオプションで指定したパスには次の要件が適用されます。 |
--output_dir=path | scrutinizeファイルの出力ディレクトリを指定します。このオプションを省略した場合は、カレントディレクトリに出力されます。 |
セキュリティオプション
オプション | 説明 |
|---|---|
--user=username | データベースの管理者ユーザ名を指定します。デフォルトでは、scrutinizeを実行したOSユーザ名を使用します。 |
--password=password | データベースのパスワードを指定します。このオプションを省略した場合は、環境変数「VSQL_PASSWORD」を参照し、設定されていない場合は警告が発生します。特殊文字を含むパスワードは、一重引用符で囲む必要があります。 |
--prompt-password | データベースパスワードの入力を求めるプロンプトを表示します。 |
データ収集範囲オプション[データ収集量]
オプション | 説明 |
|---|---|
--by-second | 以下のいずれかのオプションを使用して、Data Collectorテーブルから収集される情報の細分性を指定します。 |
--get-files file-list | グロブを含む、収集する追加ファイルを指定します。file-listはセミコロンで区切られたファイルのリストです。 |
--include_gzlogs=num-files | ローテーションされたログファイル(vertica.log*.gz)を収集対象に含めることを指定します。ここで、num-filesは次のいずれかです。 |
--log-limit=limit | Verticaログから収集するデータの量を指定します。limitでは、最新のログエントリから始めて、収集するログデータの量をギガバイト単位で指定します。デフォルトでは、Scrutinizeは1 GBのログデータを収集します。 次のコマンドは4GBのログデータを収集するように指定しています。 |
データ収集範囲オプション[ノード固有コレクション]
オプション | 説明 |
|---|---|
--local_diags | scrutinizeが呼び出されたホストからのみデータを収集します。 |
--hosts=host-list | host-listで指定されたホストからのみデータを収集します。host-listはカンマ区切りで指定します。 |
データ収集範囲オプション[インクルード]
オプション | 説明 |
|---|---|
--debug | ログのデバッグ情報を収集します。 |
--diag-dump | データベースデザイン、システムテーブル、およびデータコレクタテーブルに制限して収集します。このオプションを使用してデータを収集し、システムのパフォーマンスを分析します。 |
--diagnostics | ログファイルデータとVerticaおよびそのホストシステムに対して実行されるコマンドからの出力に制限して収集します。このオプションを使用してデータを収集し、Verticaシステムでの予期しない動作を評価します。 |
--include-ros-info | システムテーブルのROS関連情報が含まれます。 |
--no-active-queries | 現在実行中のクエリに関する診断情報をシステムテーブルとデータコレクターテーブルから除外することを指定します。デフォルトでは、scrutinizeはこの情報を収集します。 |
--tasks=tasks | ファイルまたはJSONリストで指定されているように、1つ以上のタスクのデータ収集を指定します。このオプションは通常、excludeオプションと一緒に使用されます。 |
--type=type | 実行する診断コレクションのタイプを指定します。typeは次の引数のいずれかです。 |
-with-active-queries | デフォルト設定では、現在実行中のクエリに関するシステムテーブルとデータコレクタテーブルの診断情報を含めるように指定します。このデータを省略するには、「--no-active-queries」オプションを使用します。 |
データ収集範囲オプション[エクスクルード]
オプション | 説明 |
|---|---|
--exclude=tasks | 収集データから1つ以上のタイプのタスクを除外します。ここで、tasksは除外するタスクのカンマ区切りのリストです。 |
--no-active-queries | 現在実行中のクエリに関するシステムテーブルとデータコレクターテーブルからのデータ収集を省略します。デフォルトでは、scrutinizeは常にアクティブなクエリ情報を収集します。 |
--vsql-off | データベースへの接続に使用される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 本記事を公開