はじめに

Verticaの環境情報を収集するscrutinizeをご紹介します。

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


使用例

scrutinizeコマンドはデータベース管理者のOSユーザ(デフォルトはdbadmin)で実行します。
いくつかの使用例をご紹介します。

基本的な使い方

データベース名がssbm、データベースの管理者名がdbadminの場合の例です。


収集する期間を絞る

例として、2015年6月1日~2015年6月2日の期間に絞った情報を収集する場合の実行例です。
調査に必要な期間の情報だけを収集したり、アウトプットファイルのサイズを小さくしたい場合などに使います。


アウトプットファイルの中にコメントを入れる

何の目的で収集した情報なのかといったコメントを入れる場合に便利です。
コメントは英語だけでなく、日本語も入れる事ができます。
コメントした内容は、アウトプットファイルの中にある「reason.txt」に格納されます。



コマンドオプション

scrutinizeコマンドには様々なオプションがあります。

オプション説明
--auth-upload=url
-A url

--url=url
-u url
HP社のVerticaサポートから案内されたURLに、scrutinizeの出力結果を送付します。
--tmpdir=pathすべてのノードで使用する一時ディレクトリを指定します。
デフォルトは、Administrationツールの/tmpです。
scrutinizeの処理が完了できるだけの十分な空きスペースがある事を確認してください。

次の要件を満たす必要があります。
・一時ディレクトリのために最低でも1GB必要です。
・ディレクトリに対する書き込みが必要です。
--user=username
-U username
dbadminユーザの名前を指定します。
デフォルトは、scrutinizeを実行したユーザが使われます。
--log-limit limitHP Verticaログから、どれくらいのデータを収集するかを制限します。
ギガバイト単位で指定します。(直近のログから過去に向かってカウントします)
デフォルトは1GBです。
--no-containersscrutinizeの情報収集から、システムテーブルのクエリを除外します。
これをする事で、scrutinizeの実行時間を減らす事ができます。
--tasks=tasks
-T tasks
scrutinizeは1つ以上の特定のタスクに沿って、診断情報を収集します。
ファイルまたはJSONリストで指定します。
-W
--prompt-password
scrutinizeはコマンドラインでDBパスワードのプロンプトを表示します。
--message= message
-m message
scrutinizeコマンドのアウトプット内のreason.txtにメッセージを含めます。
scrutinizeをHP Verticaのサポートにアップロードすると、明示的にメッセージが含まれます。
メッセージはいくつかの方法で含める事ができます。

・"(ダブルクォーテーション)で囲まれたメッセージを指定する
・"(ダブルクォーテーション)で囲まれたファイルへのパスを指定する事で、scrutinizeはそのファイルをアウトプットに含めます。
・入力ストリームをオープンするためのプロンプトを使います。
scrutinizeは、新しい行に.(ピリオド)が打たれるまで入力を読み込みます。
これによって、入力ストリームをクローズし、scrutinizeはアウトプットにメッセージを書き込みます。
--local_diags
-s
scrutinizeコマンドを実行したホストから診断情報を収集します。
デフォルトでは、クラスタ内のすべてのノードから情報を収集します。
--begin=timestamp
--end=timestamp
この2つのオプションを一緒に、または別々に使う事で、期間の幅を狭めた範囲で
vertica.logとeditor.logからログを収集します。
--by-minute
--by-second
これらのオプションは、データコレクタの表から収集される情報の精度を高めます。
デフォルトでは、問題を診断するためにほとんど、このデータのレベルを省略します。
--no-active-queries
--with-active-queries
その時に実行中のクエリについて、システムテーブルの情報やデータコレクタテーブルの情報を収集するかどうかを指定します。
デフォルトは、--with-active-queriesで、アクティブなクエリの情報を収集します。
--output_dir=path
-o path
アウトプットファイルをカレントディレクトリではないロケーションにリダイレクトします。
デフォルトは、カレントディレクトリです。
--help
-h
コンソールに表示されるscrutinizeのすべてのオプションを表示します。
--versionHP Verticaサーバとscrutinizeのバージョンを表示します。
--vsql-off
-v
データベースに接続して、クエリとシステムテーブルのタスクを除外します。
このオプションは、アップグレード中の問題に役立ちます。

・HP Verticaは動作しているが、応答が遅い場合
・データベースを作成していないが、他のトラブルシューティングが必要な場合
--password='password'
-P 'password'
データベースのパスワードを指定します。
scrutinizeはVSQL_PASSWORDをサポートします。

パスワードで守られているデータベースにこの引数を省略すると、ワーニングを返します。
特殊文字でパスワードを守るには、'(シングルクォーテーション)でパスワードを囲みます。

HP Verticaアドミニストレーターユーザ(デフォルトはdbadmin)がパスワード認証されている場合にこのオプションを使います。
--diagnosticsログファイルへの情報収集を制限し、HP Verticaやホストで実行されたコマンド出力を制限します。
Verticaシステムで予期しない動作を評価するためのデータを収集するには、このオプションを使用します。
--include_gzlogs=num‑files
-z num-files
ログローテートされたファイル(vertica.log*.gz)を含める場合に指定します。
指定方法は以下の通りです。

・直近から数えて何個のローテートされたファイルを収集するかの整数を指定します。
・allと指定すると、すべてのローテートされたファイルを収集します。

デフォルトは、3です。

※このオプションは、--begin と --end オプションと組み合わせる事はできません。
--type=type
-t type
収集する診断情報のタイプを指定します。指定可能なタイプは以下のうちの1です。

・profiling
プロファイルデータを収集します。
・context
サマリー情報を収集します。
--diag-dump情報収集の対象をデータベースデザイン、システムテーブル、およびデータコレクタテーブルに制限します。
システムのパフォーマンスを分析するためにデータを収集するにはこのオプションを使用します。
--database=DB
-d DB
指定されたデータベースの診断を収集します。
このオプションは、次の条件に該当する場合にのみ必要です。
・複数のデータベースをクラスタで定義されてる場合
・複数のデータベースがアクティブであるか、もしくはアクティブなデータベースがない場合。

このような状態の時にこのオプションを省略したら、データベースを指定するようにscrutinizeがメッセージを返します。
--hosts=host-list
-n host-list
指定したホストの診断情報を収集します。
,(カンマ)で区切られたIPアドレスまたはホスト名でリストします。
デフォルトでは、scrutinizeはクラスタのすべてのホストの診断情報を収集します。

scrutinizeを実行したノードからだけ収集するには、 --local_diags (-s)オプションを使ってください。
--exclude-tasks=tasks
-X tasks
診断情報で、,(カンマ)で区切られたリストから、1つ以上の特定のタイプのタスクを除外します。
すべてのデフォルトタスクを除外する場合は、引数にすべてを指定してください。
※このオプションは、HPサポートセンターからの指示があった時にだけ使って下さい。
--get-files file-list追加で収集するファイルを指定します。
;(セミコロン)で区切られたファイルリストのファイル(ファイル・グロブも使用可)を収集します。

※ファイル・グロブとは・・・
*(アスタリスク)や、?(クエスチョン)等のワイルドカードを使ったファイル名の表現


検証バージョンについて

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