Hitachi

JP1 Version 13 JP1/Integrated Management 3 - Manager 導入・設計ガイド


3.15.1 JP1/IM - Agentによる性能監視機能

性能監視機能は,アドオンプログラムのPrometheus,Alertmanager,Exporterで構成され,次に示す2つの機能を提供します。

統合マネージャーホストに送信したパフォーマンスデータやアラートは,統合オペレーション・ビューアーで参照できます。

〈この項の構成〉

(1) パフォーマンスデータの収集機能

Prometheus serverが,監視対象からパフォーマンスデータを収集する機能です。次の2つの機能があります。

(a) スクレイプ機能

Prometheus serverが,Exporterを経由して,監視対象のパフォーマンスデータを取得する機能です。

Prometheus serverが,Exporterの特定のURLにアクセスすると,Exporterが監視対象のパフォーマンスデータを取得し,Prometheus serverに返却します。この一連の処理を「スクレイプ」と呼びます。

スクレイプは,同じ目的の複数のスクレイプをまとめたスクレイプジョブの単位で実行されます。スクレイプの定義は,スクレイプジョブの単位で行います。

UAP監視機能でディスカバリ設定ファイルの作成による監視を行う場合は,ジョブの定義が必要です。また,ログメトリクス機能のスクレイプ定義は,設定の追加が必要です。ログメトリクス機能のスクレイプ定義については,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「1.21.2(10)スクレイプ定義の設定」を参照してください。

JP1/IM - Agentでは,Exporterの種類に応じて,次に示すスクレイプジョブ名のスクレイプ定義が,デフォルトで設定されています。

スクレイプジョブ名

スクレイプ定義

jpc_node

Node exporter用のスクレイプ定義

jpc_windows

Windows exporter用のスクレイプ定義

jpc_blackbox_http

Blackbox exporeterのHTTP/HTTPS監視用のスクレイプ定義

jpc_blackbox_icmp

Blackbox exporeterのICMP監視用のスクレイプ定義

jpc_cloudwatch

Yet another cloudwatch exporter用のスクレイプ定義

jpc_process

Process exporter用のスクレイプ定義

jpc_promitor

Promitor用のスクレイプ定義

jpc_script

Script exporter用のスクレイプ定義

jpc_oracledb

OracleDB exporter用のスクレイプ定義

jpc_node_aix

Node exporter for AIX用のスクレイプ定義

jpc_web_probe

Web exporter用のスクレイプ定義

jpc_vmware

VMware exporter用のスクレイプ定義

jpc_hyperv

Windows exporter(Hyper-V監視)用のスクレイプ定義

jpc_sql

SQL exporter用のスクレイプ定義

ユーザー独自のExporterをスクレイプの対象とする場合は,対象のExporterごとに,スクレイプ定義を追加する必要があります。

Prometheus serverが,スクレイプを実行してExporterから取得するメトリックは,Exporterの種類に応じて異なります。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」(2. 定義ファイル)の各Exporterのメトリック定義ファイルの説明を参照してください。

また,Prometheus serverは,スクレイプの実行時に,Exporterから取得するメトリック以外に,次に示すメトリックを生成します。

メトリック名

説明

up

スクレイプに成功したときは「1」,失敗したときは「0」を示すメトリックです。Exporterの稼働監視に利用できます。

スクレイプに失敗したときの要因は,ホスト停止,Exporter停止,Exporterが200以外を返却,または通信エラーが考えられます。

scrape_duration_seconds

スクレイプにかかった時間を示すメトリックです。通常の運用では使用しません。

スクレイプが想定した時間内に終わらなかった場合の調査などで使用します。

scrape_samples_post_metric_relabeling

メトリックのリラベル後に残ったサンプル数を示すメトリックです。通常の運用では使用しません。

環境構築時のデータ数の確認で使用します。

scrape_samples_scraped

Exporterがスクレイプで返却したサンプル数を示すメトリックです。通常の運用では使用しません。

環境構築時のデータ数の確認で使用します。

scrape_series_added

新しく生成した系列のおおよその数を示すメトリックです。通常の運用では使用しません。

スクレイプを実行する方法については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「5.24 JP1/IM - Agentが使用するExporterのスクレイプ用のAPI」の説明を参照してください。スクレイプの対象とするExporterは,ここに記載されている方法で実行できるようにする必要があります。

スクレイプの定義方法を,次に示します。

  • スクレイプ定義は,スクレイプジョブの単位で行います。

  • スクレイプ定義は,Prometheus設定ファイル(jpc_prometheus_server.yml)に記述します。

  • スクレイプ定義を編集する場合は,統合オペレーション・ビューアーからPrometheus設定ファイルをダウンロードし,編集したあとでアップロードします。

JP1/IM - Agentがサポートするスクレイプ定義に関する設定項目を,次に示します。

表3‒35  JP1/IM - Agentがサポートするスクレイプ定義に関する設定項目

設定項目

説明

スクレイプジョブ名

(必須)

Prometheusがスクレイプするスクレイプジョブの名称を設定します。スクレイプジョブ名は複数指定できます。

指定したスクレイプジョブ名は,メトリックのラベルに,job="スクレイプジョブ名"として設定されます。

スクレイプ先

(必須)

スクレイプ先となるExporterの特定のURLを設定します。スクレイプ先として,JP1/IM - Agentが同居するホストのExporterだけを指定できます。

URL内に記述するスクレイプ先のサーバは,ホスト名で指定します。"localhost"は使用できません。

すべてのスクレイプジョブ内に指定したスクレイプ先の合計数は100が上限です。

スクレイプ時のパラメーター

(任意)

スクレイプ時にExporterに渡すパラメーターを設定できます。

Exporterの種類に応じて,設定できる内容が異なります。

スクレイプ間隔

(任意)

スクレイプの間隔を設定できます。

すべてのスクレイプジョブに共通のスクレイプ間隔と,スクレイプジョブごとのスクレイプ間隔を設定できます。両方設定されている場合は,スクレイプジョブごとのスクレイプ間隔が優先されます。

指定できる単位は,年,週,日,時,分,秒,またはミリ秒です。

スクレイプのタイムアウト時間

(任意)

スクレイプに時間がかかった場合のタイムアウト時間を設定できます。

すべてのスクレイプジョブに共通のタイムアウト時間と,スクレイプジョブごとのタイムアウト時間を設定できます。両方設定されている場合は,スクレイプジョブごとのスクレイプ間隔が優先されます。

リラベル設定

(任意)

不要なメトリックを削除やラベルのカスタマイズができます。

この機能を使用し,サポートしない不要なメトリックを破棄するようにデフォルトで設定しておくことで,JP1/IM - Managerに送信するデータ量を削減できます。

Prometheus serverのスクレイプ対象とするExporterによるスクレイプの結果は,PrometheusのText-based formatのデータ形式で返却されます。PrometheusのText-based formatを次に示します。

Text-based formatの基本情報

項目

説明

開始時期

2014年4月

サポートバージョン

バージョン0.4.0以降のPrometheus

伝送形式

HTTP

文字コード

UTF-8

改行コードは\n

Content-Type

text/plain; version=0.0.4

バージョンの値がない場合は,最新のテキストフォーマットのバージョンとして扱われます。

Content-Encoding

gzip

利点

  • ヒューマンリーダブル

  • 組み立てが容易で,特にミニマムなケースに適している(ネストの必要がない)。

  • 一行ごとに読める(ヒントやdocstringを除く)。

制約

  • 冗長

  • 型とdocstringはシンタックスの一部ではないため,メトリックコントラクトの検証はほとんど行われない。

  • 構文解析のコスト

サポートしているメトリクス

  • Counter

  • Gauge

  • Histogram

  • Summary

  • Untyped

Text-based formatの詳細

PrometheusのText-based formatは行指向です。

行間は改行文字で区切ります。改行コードは\nです。\r\nは不正とみなされます。

最終行は必ず改行文字にしてください。

また,空行は無視されます。

行の形式

1行の中で,トークンは任意の数の空白やタブで区切ることができます。ただし,前のトークンと結合する場合は,少なくとも1つの空白で区切られる必要があります。

また,先頭および末尾のホワイトスペースは無視されます。

コメント,ヘルプテキスト,および情報

最初のホワイトスペース以外の文字として#がある行はコメントです。

この行は,#の後の最初のトークンがHELPまたはTYPEでない限り,無視されます。

これらの行は次のように扱われます。

トークンがHELPの場合,少なくとももう1つのトークン(メトリック名)が期待されます。残りのすべてのトークンは,そのメトリック名のdocstringとみなされます。

HELP行には,メトリック名の後ろに任意のUTF-8文字列を含めることができます。ただし,バックスラッシュは¥,改行文字は\nとしてエスケープする必要があります。任意のメトリック名に対して,HELP行は1つだけ存在できます。

トークンがTYPEの場合,2つ以上のトークンが期待されます。1つ目はメトリック名です。2つ目はcounter,gauge,histogram,summary,またはuntypedのいずれかで,メトリックの型を定義します。与えられたメトリック名に対して,TYPE行は1つだけ存在できます。メトリック名のTYPE行は,最初のサンプルの前にメトリック名が表示されなければなりません。

メトリック名に対するTYPE行が存在しない場合,タイプはuntypedに設定されます。

次の構文(EBNF)を使用してサンプルを記述します(1行に1つ)。

 metric_name [
    "{" label_name "=" `"` label_value `"` { "," label_name "=" `"` label_value `"` } [ "," ] "}"
 ] value [ timestamp ]
サンプルの構文
  • metric_nameとlabel_nameには,通常のPrometheus式言語の制限があります。

  • label_valueは,任意のUTF-8文字列ですが,バックスラッシュ(\),ダブルクォート("),ラインフィードは,それぞれ\\\"\nとしてエスケープする必要があります。

  • valueは,GoのParseFloat()関数で必要とされる浮動小数点数です。標準的な数値に加えて,NaN,+Inf,-Infも有効な値です。NaNは数値ではないことを表します。+Infは正の無限大です。-Infは,負の無限大です。

  • タイムスタンプはint64(エポックからのミリ秒,すなわち1970-01-01 00:00:00 UTC,うるう秒を除く)で,GoのParseInt()関数で必要に応じて表されます。

グルーピングとソート

メトリックが付与された行はすべて,1つのグループとして提供される必要があり,オプションのHELPとTYPEの行が最初に来るようにする必要があります(順不同)。

それ以外にも,繰り返しの説明で再現性のあるソートを行うことを推奨しますが,必須ではありません。

各行には,メトリック名とラベルのユニークな組み合わせが必要です。ユニークな組み合わせではない場合,取り込みの動作は未定義です。

ヒストグラムとサマリー

ヒストグラムやサマリータイプは,テキスト形式での表現が難しいため,次のような規則があります。

  • xというサマリーまたはヒストグラムのサンプルサムは,x_sumという別のサンプルとして表示されます。

  • xという名前のサマリーまたはヒストグラムのサンプル・カウントは,x_countという別のサンプルとして表示されます。

  • xという名前の要約の各分位点は,同じxという名前と{quantile="y"}というラベルを持つ別のサンプル行として表示されます。

  • xという名前のヒストグラムの各バケット数は,x_bucketという名前と{le="y"}というラベルを持つ別のサンプル行として表示されます(yはバケットの上限です)。

  • ヒストグラムには,{le="+Inf"}のバケットが必要です。その値は,x_countの値と同じである必要があります。

  • ヒストグラムのバケットとサマリーの分位値は,leまたはquantileラベルの場合,それぞれラベルの値の昇順で表示される必要があります。

Text-based formatの例

コメント,HELPやTYPEの表現,ヒストグラム,サマリー,文字エスケープなどを含むPrometheus metric expositionの例を次に示します。

# HELP http_requests_total The total number of HTTP requests.
# TYPE http_requests_total counter
http_requests_total{method="post",code="200"} 1027 1395066363000
http_requests_total{method="post",code="400"}    3 1395066363000
 
# Escaping in label values:
msdos_file_access_time_seconds{path="C:\\DIR\\FILE.TXT",error="Cannot find file:\n\"FILE.TXT\""} 1.458255915e9
 
# Minimalistic line:
metric_without_timestamp_and_labels 12.47
 
# A weird metric from before the epoch:
something_weird{problem="division by zero"} +Inf -3982045
 
# A histogram, which has a pretty complex representation in the text format:
# HELP http_request_duration_seconds A histogram of the request duration.
# TYPE http_request_duration_seconds histogram
http_request_duration_seconds_bucket{le="0.05"} 24054
http_request_duration_seconds_bucket{le="0.1"} 33444
http_request_duration_seconds_bucket{le="0.2"} 100392
http_request_duration_seconds_bucket{le="0.5"} 129389
http_request_duration_seconds_bucket{le="1"} 133988
http_request_duration_seconds_bucket{le="+Inf"} 144320
http_request_duration_seconds_sum 53423
http_request_duration_seconds_count 144320
 
# Finally a summary, which has a complex representation, too:
# HELP rpc_duration_seconds A summary of the RPC duration in seconds.
# TYPE rpc_duration_seconds summary
rpc_duration_seconds{quantile="0.01"} 3102
rpc_duration_seconds{quantile="0.05"} 3272
rpc_duration_seconds{quantile="0.5"} 4773
rpc_duration_seconds{quantile="0.9"} 9001
rpc_duration_seconds{quantile="0.99"} 76656
rpc_duration_seconds_sum 1.7560473e+07
rpc_duration_seconds_count 2693

(b) 監視対象の稼働情報の取得機能

監視対象から稼働情報(パフォーマンスデータ)を取得する機能です。稼働情報を収集する処理は,「Exporter」と呼ばれるプログラムが行います。

Prometheus serverからExporterに送られるスクレイプの要求に対して,Exporterは,監視対象から稼働情報を収集し,Prometheusに結果を返却します。

JP1/IM - Agentに同梱するExporterは,同居するJP1/IM - AgentのPrometheusからだけスクレイプします。ほかのホストやユーザーが独自に用意したPrometheusからはスクレイプしないでください。

JP1/IM - Agentに同梱する各Exporterの機能について説明します。

(c) Windows exporter(Windows性能情報収集機能)

Windows exporterは,監視対象のWindowsホストに組み込んで,Windowsホストの稼働情報を取得するExporterです。

Windows exporterは,Prometheus serverと同じホストにインストールされ,Prometheus serverからのスクレイプ要求を契機に,同ホストのWindows OSから稼働情報を収集して,Prometheus serverに返却します。

ホストの外からの監視(URLによる外形監視やCloudWatch)では収集できない,メモリーやディスクに関する稼働情報を,ホスト内部から収集できます。

また,JP1/IM - ManagerおよびJP1/IM - Agentのバージョン13-01以降では,統合エージェントホスト(Windows)のサービス(Windowsサービスに登録されているプログラム)の稼働状態を監視できます(サービス監視機能)。

なお,コンテナ内でJP1/IM - Agentを動作させて,サービス監視機能を使用することはできません。

注※

13-00から13-01以降にバージョンアップインストールした環境で,サービス監視機能を使用する場合,サービス監視を行うための設定が必要です。JP1/IM - MangerおよびJP1/IM - Agentのセットアップ手順の参照先を次に示します。

JP1/IM - Managerのセットアップ手順の参照先

マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「1.19.3(1)(d)製品プラグインの設定(Windowsの場合)」の,「IM管理ノードカテゴリ名称定義ファイル(imdd_category_name.conf)の編集(オプション)」を参照してください。

JP1/IM - Agentのセットアップ手順の参照先

マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「1.21.2(3)(f)サービス監視の設定をする(Windowsの場合)(オプション)」および「1.21.2(5)(b)収集するメトリックを変更する(オプション)」の,サービス監視の設定を行う手順を参照してください。

この機能を使用すると,監視するサービスごとにIM管理ノードが作成されます。ツリーの表示については,「3.15.6(1)(i)ツリーの形式」を参照してください。アラートを設定しておくと,サービスが停止したときにJP1イベントが発行され,停止したサービスに対応するIM管理ノードに登録されます。サービスのトレンド表示で,過去のサービスの稼働状態を確認できます。

■ 主な取得項目

Windows exporterの主な取得項目は,Windows exporterのメトリック定義ファイル(初期状態)およびWindows exporter(サービス監視)のメトリック定義ファイル(初期状態)で定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」(2. 定義ファイル)の「Windows exporterのメトリック定義ファイル(metrics_windows_exporter.conf)」および「Windows exporter(サービス監視)のメトリック定義ファイル(metrics_windows_exporter_service.conf)」を参照してください。

メトリック定義ファイルには,取得項目を追加できます。定義ファイル内で記述するPromQL文で指定できるメトリックを,次に示します。なお,表内の「コレクタ」の詳細については,表下の「コレクタ」の説明を参照してください。

メトリック名

コレクタ

取得する内容

ラベル

windows_cache_copy_read_hits_total

cache

キャッシュにヒットしたコピー読み取り要求の回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

windows_cache_copy_reads_total

cache

ファイルシステムキャッシュのページから読み込んだ回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

windows_cpu_time_total

cpu

モードごとに費やしたプロセッサ時間の秒数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

core: coreid

mode: モード

注※

次のどれかが入ります。

  • "dpc"

  • "idle"

  • "interrupt"

  • "privileged"

  • "user"

windows_cs_physical_memory_bytes

cs

物理メモリ容量のバイト数

instance: インスタンス識別文字列

job: ジョブ名

windows_logical_disk_idle_seconds_total

logical_disk

ディスクがアイドル状態だった秒数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

volume: ボリューム名

windows_logical_disk_free_bytes

logical_disk

ディスクの未使用領域のバイト数

instance: インスタンス識別文字列

job: ジョブ名

volume: ボリューム名

windows_logical_disk_read_bytes_total

logical_disk

読み取り操作中にディスクから転送されたバイト数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

volume: ボリューム名

windows_logical_disk_read_seconds_total

logical_disk

読み取り操作のためにディスクがビジーであった秒数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

volume: ボリューム名

windows_logical_disk_reads_total

logical_disk

ディスクへの読み取り操作の回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

volume: ボリューム名

windows_logical_disk_requests_queued

logical_disk

ディスクのキューに存在するリクエスト数

instance: インスタンス識別文字列

job: ジョブ名

volume: ボリューム名

windows_logical_disk_size_bytes

logical_disk

ディスク容量のバイト数

instance: インスタンス識別文字列

job: ジョブ名

volume: ボリューム名

windows_logical_disk_write_bytes_total

logical_disk

書き込み操作中にディスクに転送されたバイト数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

volume: ボリューム名

windows_logical_disk_write_seconds_total

logical_disk

書き込み操作のためにディスクがビジーであった秒数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

volume: ボリューム名

windows_logical_disk_writes_total

logical_disk

ディスクへの書き込み操作の回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

volume: ボリューム名

windows_memory_available_bytes

memory

物理メモリーの未使用領域のバイト数

プロセスへの割り当て,またはシステムがすぐに利用できるゼロメモリー,空きメモリー,およびスタンバイメモリー(キャッシュ済み)の領域の合計です。

instance: インスタンス識別文字列

job: ジョブ名

windows_memory_cache_bytes

memory

ファイルシステムのキャッシュに使用されている物理メモリーのバイト数

instance: インスタンス識別文字列

job: ジョブ名

windows_memory_cache_faults_total

memory

ファイルシステムキャッシュでページフォールトが発生した回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

windows_memory_page_faults_total

memory

ページフォールトが発生した回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

windows_memory_pool_nonpaged_allocs_total

memory

ページアウト不可能な物理メモリー領域を割り当てた回数

instance: インスタンス識別文字列

job: ジョブ名

windows_memory_pool_paged_allocs_total

memory

ページアウト可能な物理メモリー領域を割り当てた回数

instance: インスタンス識別文字列

job: ジョブ名

windows_memory_swap_page_operations_total

memory

ハードページフォールトを解決するためにディスクから読み取られた,またはディスクへ書き込まれたページ数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

windows_memory_swap_pages_read_total

memory

ハードページフォールトを解決するためにディスクから読み取られたページ数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

windows_memory_swap_pages_written_total

memory

ハードページフォールトを解決するためにディスクへ書き込まれたページ数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

windows_memory_system_cache_resident_bytes

memory

物理メモリー内のアクティブなシステムファイルキャッシュのバイト数

instance: インスタンス識別文字列

job: ジョブ名

windows_memory_transition_faults_total

memory

ページを共有しているほかのプロセスによって使用されていたページ,修正ページリストもしくはスタンバイリストにあったページ,またはディスクに書き込まれていたページを回復することによって解決したページフォールトの回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

windows_net_bytes_received_total

net

インターフェースによって受信されたバイト数(累積値)

NIC名称に半角英数字以外の文字が含まれている場合,それらの文字がアンダースコアに変換されてnicラベルに設定されます。

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

windows_net_bytes_sent_total

net

インターフェースから送信されたバイト数(累積値)

NIC名称に半角英数字以外の文字が含まれている場合,それらの文字がアンダースコアに変換されてnicラベルに設定されます。

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

windows_net_bytes_total

net

インターフェースによって受信および送信されたバイト数(累積値)

NIC名称に半角英数字以外の文字が含まれている場合,それらの文字がアンダースコアに変換されてnicラベルに設定されます。

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

windows_net_packets_sent_total

net

インターフェースによって送信されたパケット数(累積値)

NIC名称に半角英数字以外の文字が含まれている場合,それらの文字がアンダースコアに変換されてnicラベルに設定されます。

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

windows_net_packets_received_total

net

インターフェースによって受信されたパケット数(累積値)

NIC名称に半角英数字以外の文字が含まれている場合,それらの文字がアンダースコアに変換されてnicラベルに設定されます。

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

windows_system_context_switches_total

system

コンテキストスイッチの回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

windows_system_processor_queue_length

system

プロセッサキュー内のスレッド数

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

windows_system_system_calls_total

system

プロセスからOSのサービスルーチンを呼び出した回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

windows_process_start_time

process

プロセスの開始時間(UNIX時間)

instance: インスタンス識別文字列

job: ジョブ名

process: プロセス名

process_id: プロセスID

creating_process_id: 作成元プロセスID

windows_process_cpu_time_total

process

プロセスのスレッドがプロセッサを使用して命令を実行した経過時間をモード別(privileged,user)で返却(累積値)

instance: インスタンス識別文字列

job: ジョブ名

process: プロセス名

process_id: プロセスID

creating_process_id: 作成元プロセスID

mode: モード(privileged,user)

windows_process_io_bytes_total

process

プロセスのIO操作で発生したのバイト数をモード別(read,write,other)で返却(累積値)

instance: インスタンス識別文字列

job: ジョブ名

process: プロセス名

process_id: プロセスID

creating_process_id: 作成元プロセスID

mode: モード(read,write,other)

windows_process_io_operations_total

process

プロセスのIO操作の回数をモード別(read,write,other)で返却(累積値)

instance: インスタンス識別文字列

job: ジョブ名

process: プロセス名

process_id: プロセスID

creating_process_id: 作成元プロセスID

mode: モード(read,write,other)

windows_process_page_faults_total

process

プロセスで実行されているスレッドによるページフォールトの回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

process: プロセス名

process_id: プロセスID

creating_process_id: 作成元プロセスID

windows_process_page_file_bytes

process

プロセスがページングファイルで使用した現在のバイト数

instance: インスタンス識別文字列

job: ジョブ名

process: プロセス名

process_id: プロセスID

creating_process_id: 作成元プロセスID

windows_process_pool_bytes

process

ページプールまたは非ページプールで最後に監視されたバイト数

instance: インスタンス識別文字列

job: ジョブ名

process: プロセス名

process_id: プロセスID

creating_process_id: 作成元プロセスID

pool: ページプール(paged)または非ページプール(nonpaged)

windows_process_priority_base

process

プロセスの現在の基本優先度(値が大きいほど基本優先度が高い)

値は次のとおりです。

  • 24:リアルタイム

  • 13:高

  • 10:通常以上

  • 8:通常

  • 6:通常以下

  • 4:低

instance: インスタンス識別文字列

job: ジョブ名

process: プロセス名

process_id: プロセスID

creating_process_id: 作成元プロセスID

windows_process_private_bytes

process

プロセスが割り当てた現在のバイト数(ほかのプロセスと共有不可)

instance: インスタンス識別文字列

job: ジョブ名

process: プロセス名

process_id: プロセスID

creating_process_id: 作成元プロセスID

windows_process_virtual_bytes

process

プロセスが使用している仮想アドレス空間の現在のバイト数

instance: インスタンス識別文字列

job: ジョブ名

process: プロセス名

process_id: プロセスID

creating_process_id: 作成元プロセスID

windows_service_state

service

サービスの状態(State)

instance: インスタンス識別文字列

job: ジョブ名

name: サービス名※1

state: サービスの状態※2

注※1

大文字は小文字に変換されます。

注※2

次のどれかが入ります。

  • continue pending(継続保留中)

  • pause pending(一時停止保留中)

  • paused(一時停止中)

  • running(実行中)

  • start pending(起動保留中)

  • stop pending(停止保留中)

  • stopped(停止中)

  • unknown(不明)

注※

プロセス名が設定されますが,「.exe」は省略されます。

■ コレクタ

Windows exporterには,CPU,メモリーなどの監視対象のリソースごとに,「コレクタ」と呼ばれる収集処理が内蔵されています。

上記の表に示すメトリックを取得項目として追加する場合は,使用するメトリックに対応するコレクタを有効にする必要があります。また,収集しないメトリックのコレクタを無効にして,不要な収集を抑止することもできます。

コレクタごとの有効・無効化は,Windows exporterのコマンドラインの「--collectors.enabled」オプション,または,Windows exporter設定ファイル(jpc_windows_exporter.yml)の項目「collectors.enabled」で指定できます。

Windows exporterのコマンドラインのオプションについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「サービス定義ファイル(jpc_プログラム名_service.xml)」(2. 定義ファイル)の,「windows_exporterコマンドのオプション」の説明を参照してください。

Windows exporter設定ファイルの項目「collectors.enabled」については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Windows exporter設定ファイル(jpc_windows_exporter.yml)」(2. 定義ファイル)の,項目「collectors」の説明を参照してください。

■ 監視対象サービスの指定

Windows exporterのサービス監視機能を使用する場合,監視する対象のサービスは,Windows exporter設定ファイル(jpc_windows_exporter.yml)の項目「services-where」で指定します。

Windows exporter設定ファイルの項目「services-where」については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Windows exporter設定ファイル(jpc_windows_exporter.yml)」(2. 定義ファイル)の,項目「services-where」の説明を参照してください。

Windows exporterのserviceコレクタが出力するメトリックの,nameラベルの値には,サービス名が設定されます。監視対象のサービス名に半角大文字が含まれる場合,半角小文字に変換して設定されます。全角大文字が含まれる場合,全角小文字に変換して設定されます。

■JP1/IM - Agentのサービスの監視について

JP1/IM - Agentのサービスのサービス名については,マニュアル「JP1/Integrated Management 3 - Manager 運用ガイド」の「10.1 JP1/IM - Agentのサービス」を参照してください。論理ホスト環境の場合のサービス名については,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「7.3.6 統合エージェントホストでのJP1/IM - Agentの新規インストール(Windowsの場合)」を参照してください。

なお,サービス監視機能で,Prometheus serverとWindows exporterのサービスを監視することはできません。

(d) Node exporter(Linux性能情報収集機能)

Node exporterは,監視対象のLinuxホストに組み込んで,Linuxホストの稼働情報を取得するExporterです。

Node exporterは,Prometheus serverと同じホストにインストールされ,Prometheus serverからのスクレイプ要求を契機に,同ホストのLinux OSから稼働情報を収集して,Prometheus serverに返却します。

ホストの外からの監視(URLによる外形監視やCloudWatch)では収集できない,メモリーやディスクに関する稼働情報を,ホスト内部から収集できます。

また,JP1/IM - ManagerおよびJP1/IM - Agentのバージョン13-01以降では,統合エージェントホスト(Linux)のサービス(Systemdに登録されているプログラム)の稼働状態を監視できます(サービス監視機能)。

なお,コンテナ内でJP1/IM - Agentを動作させて,サービス監視機能を使用することはできません。

注※

13-00から13-01以降にバージョンアップインストールした環境で,サービス監視機能を使用する場合,サービス監視を行うための設定が必要です。JP1/IM - MangerおよびJP1/IM - Agentのセットアップ手順の参照先を次に示します。

JP1/IM - Managerのセットアップ手順の参照先

マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「1.19.3(1)(d)製品プラグインの設定(Windowsの場合)」の,「IM管理ノードカテゴリ名称定義ファイル(imdd_category_name.conf)の編集(オプション)」を参照してください。

JP1/IM - Agentのセットアップ手順の参照先

マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「2.19.2(3)(f)サービス監視の設定をする(Linuxの場合)(オプション)」および「2.19.2(5)(b)収集するメトリックを変更する(オプション)」の,サービス監視の設定を行う手順を参照してください。

この機能を使用すると,監視するサービスごとにIM管理ノードが作成されます。ツリーの表示については,「3.15.6(1)(i)ツリーの形式」を参照してください。アラートを設定しておくと,サービスが停止したときにJP1イベントが発行され,停止したサービスに対応するIM管理ノードに登録されます。サービスのトレンド表示で,過去のサービスの稼働状態を確認できます。

■ 主な取得項目

Node exporterの主な取得項目は,Node exporterのメトリック定義ファイル(初期状態)およびNode exporter(サービス監視)のメトリック定義ファイル(初期状態)で定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」(2. 定義ファイル)の「Node exporterのメトリック定義ファイル(metrics_node_exporter.conf)」および「Node exporter(サービス監視)のメトリック定義ファイル(metrics_node_exporter_service.conf)」を参照してください。

メトリック定義ファイルには,取得項目を追加できます。定義ファイル内で記述するPromQL文で指定できるメトリックを,次に示します。なお,表内の「コレクタ」の詳細については,表下の「コレクタ」の説明を参照してください。

メトリック名

コレクタ

取得する内容

ラベル

node_boot_time_seconds

stat

最後の起動時刻

マイクロ秒を含むUNIX時間で示します。

instance: インスタンス識別文字列

job: ジョブ名

node_context_switches_total

stat

コンテキストスイッチが行われた回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

node_cpu_seconds_total

cpu

各モードで費やされたCPUの秒数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

cpu: cpuid

mode: モード

注※

次のどれかが入ります。

  • user

  • nice

  • system

  • idle

  • iowait

  • irq

  • soft

  • steal

node_disk_io_now

diskstats

現在進行中のディスクのI/O数

instance: インスタンス識別文字列

job: ジョブ名

device:デバイス名

node_disk_io_time_seconds_total

diskstats

ディスクのI/Oに費やされた秒数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:デバイス名

node_disk_read_bytes_total

diskstats

ディスクから正常に読み取られたバイト数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:デバイス名

node_disk_read_time_seconds_total

diskstats

ディスクからの読み込みにかかった秒数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:デバイス名

node_disk_reads_completed_total

diskstats

正常に完了したディスクからの読み取りの回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:デバイス名

node_disk_write_time_seconds_total

diskstats

ディスクへの書き込みにかかった秒数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:デバイス名

node_disk_writes_completed_total

diskstats

正常に完了したディスクへの書き込みの回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:デバイス名

node_disk_written_bytes_total

diskstats

ディスクへ正常に書き込んだバイト数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:デバイス名

node_filesystem_avail_bytes

filesystem

root以外のユーザーが使用可能なファイルシステムのバイト数

instance: インスタンス識別文字列

job: ジョブ名

fstype:ファイルシステムタイプ

mountpoint:マウントポイント

node_filesystem_files

filesystem

ファイルシステムのファイルノード数

instance: インスタンス識別文字列

job: ジョブ名

fstype:ファイルシステムタイプ

mountpoint:マウントポイント

node_filesystem_files_free

filesystem

ファイルシステムの空きファイルノード数

instance: インスタンス識別文字列

job: ジョブ名

fstype:ファイルシステムタイプ

mountpoint:マウントポイント

node_filesystem_free_bytes

filesystem

ファイルシステムの空き領域のバイト数

instance: インスタンス識別文字列

job: ジョブ名

fstype:ファイルシステムタイプ

mountpoint:マウントポイント

node_filesystem_size_bytes

filesystem

ファイルシステムの容量のバイト数

instance: インスタンス識別文字列

job: ジョブ名

fstype:ファイルシステムタイプ

mountpoint:マウントポイント

node_intr_total

stat

処理された割り込みの回数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

node_load1

loadavg

実行キューにあるジョブ数の1分間の平均値

instance: インスタンス識別文字列

job: ジョブ名

node_load15

loadavg

実行キューにあるジョブ数の15分間の平均値

instance: インスタンス識別文字列

job: ジョブ名

node_load5

loadavg

実行キューにあるジョブ数の5分間の平均値

instance: インスタンス識別文字列

job: ジョブ名

node_memory_Active_file_bytes

meminfo

最近使用されたファイルキャッシュメモリーのバイト数

/proc/meminfoのActive(file)をバイトに変換した値です。

instance: インスタンス識別文字列

job: ジョブ名

node_memory_Buffers_bytes

meminfo

ファイルバッファーのバイト数

/proc/meminfoのBuffersをバイトに変換した値です。

instance: インスタンス識別文字列

job: ジョブ名

node_memory_Cached_bytes

meminfo

ファイル読み込みキャッシュメモリーのバイト数

/proc/meminfoのCachedをバイトに変換した値です。

instance: インスタンス識別文字列

job: ジョブ名

node_memory_Inactive_file_bytes

meminfo

最近使用されていないファイルキャッシュメモリーのバイト数

/proc/meminfoのInactive(file)をバイトに変換した値です。

instance: インスタンス識別文字列

job: ジョブ名

node_memory_MemAvailable_bytes

meminfo

スワップせずに新しいアプリケーションを起動するために使用できるメモリーのバイト数

/proc/meminfoのMemAvailableをバイトに変換した値です。

instance: インスタンス識別文字列

job: ジョブ名

node_memory_MemFree_bytes

meminfo

メモリーの空き領域のバイト数

/proc/meminfoのMemFreeをバイトに変換した値です。

instance: インスタンス識別文字列

job: ジョブ名

node_memory_MemTotal_bytes

meminfo

メモリーの総容量のバイト数

/proc/meminfoのMemTotalをバイトに変換した値です。

instance: インスタンス識別文字列

job: ジョブ名

node_memory_SReclaimable_bytes

meminfo

回収可能なSlabキャッシュのバイト数

/proc/meminfoのSReclaimableをバイトに変換した値です。

instance: インスタンス識別文字列

job: ジョブ名

node_memory_SwapFree_bytes

meminfo

スワップメモリーの空き領域のバイト数

/proc/meminfoのSwapFreeをバイトに変換した値です。

instance: インスタンス識別文字列

job: ジョブ名

node_memory_SwapTotal_bytes

meminfo

スワップメモリーの総容量のバイト数

/proc/meminfoのSwapTotalをバイトに変換した値です。

instance: インスタンス識別文字列

job: ジョブ名

node_netstat_Icmp6_InMsgs

netstat

受信したICMPv6メッセージ数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

node_netstat_Icmp_InMsgs

netstat

受信したICMPv4メッセージ数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

node_netstat_Icmp6_OutMsgs

netstat

送信したICMPv6メッセージ数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

node_netstat_Icmp_OutMsgs

netstat

送信したICMPv4メッセージ数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

node_netstat_Tcp_InSegs

netstat

受信したTCPパケット数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

node_netstat_Tcp_OutSegs

netstat

送信したTCPパケット数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

node_netstat_Udp_InDatagrams

netstat

受信したUDPパケット数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

node_netstat_Udp_OutDatagrams

netstat

送信したUDPパケット数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

node_network_flags

netclass

インターフェースの状態を示す数値

/sys/class/net/<iface>/flagsの値を10進数にした値です。

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

node_network_iface_link

netclass

インターフェースの通し番号

/sys/class/net/<iface>/iflinkの値です。

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

node_network_mtu_bytes

netclass

インターフェースのMTU値

/sys/class/net/<iface>/mtuの値です。

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

node_network_receive_bytes_total

netdev

ネットワークデバイスの受信バイト数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

node_network_receive_errs_total

netdev

ネットワークデバイスの受信エラー数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

node_network_receive_packets_total

netdev

ネットワークデバイスの受信パケット数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

node_network_transmit_bytes_total

netdev

ネットワークデバイスの送信バイト数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

node_network_transmit_colls_total

netdev

ネットワークデバイスの送信コリジョン数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

node_network_transmit_errs_total

netdev

ネットワークデバイスの送信エラー数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

node_network_transmit_packets_total

netdev

ネットワークデバイスの送信パケット数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

device:ネットワークデバイス名

node_time_seconds

time

エポック(1970)以降のシステム時間の秒数

instance: インスタンス識別文字列

job: ジョブ名

node_uname_info

uname

unameシステムコールで取得したシステム情報

instance: インスタンス識別文字列

job: ジョブ名

domainname: NISやYPのドメイン名

machine: ハードウェア識別子

nodename:実装時に定義された何らかのネットワークにおけるマシン名

release: オペレーションシステムのリリース番号 (例:"2.6.28")

sysname:OSの名前(例:"Linux")

version: オペレーティングシステムのバージョン

node_vmstat_pswpin

vmstat

ページスワップインの回数(累積値)

/proc/vmstatのpswpinの値です。

instance: インスタンス識別文字列

job: ジョブ名

node_vmstat_pswpout

vmstat

ページスワップアウトの回数(累積値)

/proc/vmstatのpswpoutの値です。

instance: インスタンス識別文字列

job: ジョブ名

node_systemd_unit_state

systemd

Systemdユニットの状態

instance: インスタンス識別文字列

job: ジョブ名

name: ユニットファイル名

state: サービスの状態※1

type: プロセスの起動方法※2

注※1

次のどれかが入ります。

  • activating(起動処理中)

  • active(実行中)

  • deactivating(停止処理中)

  • failed(実行失敗)

  • inactive(停止中)

注※2

ユニットファイルのTypeの値が入ります。

■ コレクタ

Node exporterには,CPU,メモリーなどの監視対象のリソースごとに,「コレクタ」と呼ばれる収集処理が内蔵されています。

上記の表に示すメトリックを取得項目として追加する場合は,使用するメトリックに対応するコレクタを有効にする必要があります。また,収集しないメトリックのコレクタを無効にして,不要な収集を抑止することもできます。

コレクタごとの有効・無効化は,Node exporterのコマンドラインのオプションで指定できます。有効化するコレクタを「--collector.コレクタ名」のオプション,無効化するコレクタを「--no-collector.コレクタ名」のオプションで指定します。

Node exporterのコマンドラインのオプションについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「ユニット定義ファイル(jpc_プログラム名.service)」(2. 定義ファイル)の,「node_exporterコマンドのオプション」の説明を参照してください。

■ 監視対象サービスの指定

Node exporterのサービス監視機能を使用する場合,監視する対象のサービスは,Node exporterのユニット定義ファイル(jpc_node_exporter.service)の項目「services-where」で指定します。このファイルで指定した監視対象のサービスのうち,次のどちらかの条件を満たすサービスのパフォーマンスデータを収集します。

  • 監視対象のサービスの自動起動が有効である(systemctl enableを実行している)

  • 監視対象のサービスの自動起動が無効であるが,状態が実行中(active)である

自動起動が無効であるサービスのパフォーマンスデータは,サービスが停止している間収集されません。そのため,自動起動が無効で停止しているサービスを監視対象とする場合は,IM管理ノードのツリー情報の作成を行う前に,監視対象のサービスを一度起動してパフォーマンスデータを収集してください。

ユニット定義ファイルについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「ユニット定義ファイル(jpc_プログラム名.service)」(2. 定義ファイル)の,「node_exporterコマンドのオプション」の項目「--collector.systemd.unit-include」の説明を参照してください。

■JP1/IM - Agentのサービスの監視について

JP1/IM - Agentのサービスのユニット定義ファイル名については,マニュアル「JP1/Integrated Management 3 - Manager 運用ガイド」の「10.1 JP1/IM - Agentのサービス」を参照してください。論理ホスト環境の場合のユニット定義ファイル名については,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「8.3.6 統合エージェントホストでのJP1/IM - Agentの新規インストール(UNIXの場合)」を参照してください。

なお,サービス監視機能で,Prometheus serverとNode exporterのサービスを監視することはできません。

(e) Process exporter(Linuxプロセス情報収集機能)

Process exporterは,監視対象のLinuxホストに組み込んで,Linuxホスト上で稼働するプロセスの稼働情報を取得するExporterです。

Process exporterは,Prometheus serverと同じホストにインストールされ,Prometheus serverからのスクレイプ要求を契機に,同ホストのLinux OSからプロセスの稼働情報を収集して,Prometheus serverに返却します。

ホストの外からの監視(URLによる外形監視やCloudWatch)では収集できない,プロセスに関する稼働情報を,ホスト内部から収集できます。

■ 主な取得項目

Process exporterの主な取得項目は,Process exporterのメトリック定義ファイル(初期状態)で定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Process exporterのメトリック定義ファイル(metrics_process_exporter.conf)」を参照してください。

メトリック定義ファイルには,取得項目を追加できます。定義ファイル内で記述するPromQL文で指定できるメトリックを,次に示します。

メトリック名

取得する内容

ラベル

namedprocess_namegroup_num_procs

グループ内のプロセスの数

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

namedprocess_namegroup_cpu_seconds_total

CPU経過時間(累積値)

取得元:/proc/[pid]/statutime(14)stime(15)

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

mode: userまたはsystem

namedprocess_namegroup_read_bytes_total

読み込みI/Oのバイト数(累積値)

取得元:/proc/[pid]/ioread_bytes

process_exporterを,rootまたはそのプロセスを実行したユーザで実行しないと,値が0になります。

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

namedprocess_namegroup_write_bytes_total

書き込みI/Oのバイト数(累積値)

取得元:/proc/[pid]/iowrite_bytes

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

namedprocess_namegroup_major_page_faults_total

メジャーページフォルトの回数(累積値)

取得元:/proc/[pid]/statmajflt(12)

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

namedprocess_namegroup_minor_page_faults_total

マイナーページフォルトの回数(累積値)

取得元:/proc/[pid]/statminflt(10)

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

namedprocess_namegroup_context_switches_total

コンテキストスイッチの回数(累積値)

取得元:/proc/[pid]/statusvoluntary_ctxt_switchesnonvoluntary_ctxt_switches

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

ctxswitchtype: voluntaryまたはnonvoluntary

namedprocess_namegroup_memory_bytes

使用メモリ量

memtypeラベル(種別)の値は次のとおりです。

  • resident

    プロセスが持っている実メモリ上のページ数

    取得元:/proc/[pid]/statrss(24)

  • virtual

    仮想メモリサイズ

    取得元:/proc/[pid]/statのvsize(23)

  • swapped

    スワップアウトされた仮想メモリのサイズ

    取得元:/proc/[pid]/statusVmSwap(ただし,バイト単位に変換)

  • proportionalResident

    ほかのプロセスと共有している実メモリ上のページから自プロセスに割り当てられたページ数

    取得元:/proc/[pid]/smapsPssの合計値

  • proportionalSwapped

    ほかのプロセスと共有しているスワップアウトされたページから自プロセスに割り当てられたページ数

    取得元:/proc/[pid]/smapsSwapPssの合計値

注※ smapsファイルが存在する場合だけ

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

memtype: resident,virtual,swapped,proportionalResident,またはproportionalSwapped

namedprocess_namegroup_open_filedesc

プロセスが使用しているファイルディスクリプターの数

/proc/[pid]/fdで参照できるファイルディスクリプターの数を取得して使用します。

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

namedprocess_namegroup_worst_fd_ratio

プロセスが使用しているファイルディスクリプターの上限値に対する割合のうち,グループ内で最も高い割合値

/proc/[pid]/limitsで取得したMax open filesSoft Limit値に対するopen_filedescの比率を使用します。

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

namedprocess_namegroup_oldest_start_time_seconds

グループ内の最も古いプロセスが開始されたエポック時間(1970/1/1からの秒数)

取得元:/proc/[pid]/statのstarttime(22)

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

namedprocess_namegroup_num_threads

プロセスのスレッド数

取得元:/proc/[pid]/statfield num_threads(20)

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

namedprocess_namegroup_states

ステータス別のスレッド数

stateラベル(分類)の値は次のとおりです。

  • Running

  • Sleeping

  • Waiting

  • Zombie

  • Other

取得元:/proc/[pid]/statstate(3)

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

state: Running,Sleeping,Waiting,Zombie,またはOther

namedprocess_namegroup_thread_count

サブグループに所属するスレッド数

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

threadname: スレッド名

namedprocess_namegroup_thread_cpu_seconds_total

namedprocess_namegroup_cpu_seconds_totalと同じ値を,スレッド単位(累積値)で取得します。

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

threadname: スレッド名

mode: userまたはsystem

namedprocess_namegroup_thread_io_bytes_total

namedprocess_namegroup_read_bytes_totalまたはnamedprocess_namegroup_write_bytes_totalと同じ値,スレッド単位(累積値)で取得します。iomodeラベルでreadとwriteを区別できます。

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

threadname: スレッド名

iomode: readまたはwrite

namedprocess_namegroup_thread_major_page_faults_total

namedprocess_namegroup_major_page_faults_totalと同じ値を,スレッド単位(累積値)で取得します。

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

namedprocess_namegroup_thread_minor_page_faults_total

namedprocess_namegroup_minor_page_faults_totalと同じ値を,スレッド単位(累積値)で取得します。

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

namedprocess_namegroup_thread_context_switches_total

namedprocess_namegroup_context_switches_totalと同じ値を,スレッド単位(累積値)で取得します。

instance: インスタンス識別文字列

job: ジョブ名

groupname: グループ名

重要
  • マルチバイトを含むプロセス名の監視はできません。

  • Process exporterは,一度収集した情報に対して,プロセスの停止後も出力を続けます。収集情報にプロセスIDを含めた場合,プロセスが再起動してプロセスIDが変更されるたびに,新しい時系列データが増え,不要なデータが大量に増加します。そのため,バージョン13-00では,デフォルトの収集対象(groupname)にプロセスIDを含みません。同一のコマンドラインのプロセスを分けて管理したい場合は,引数の順番を変えるなどの運用,または,プロセスIDでの運用(ただし,収集情報が増え続けることを避けるために定期的な再起動が必要です)を推奨します。

    なお,Windows exporterは,収集情報にプロセスIDを含むため,Windows exporterの収集情報とは差異があります。

  • Process exporterは,監視対象プロセスの監視を行う際にデフォルトでは監視対象プロセスの子プロセスを含めて監視し,子プロセスを含めた稼働情報を取得します。

    子プロセスを含めないようにするためには,Process exporterのユニット定義ファイルを編集する必要があります。

    詳細については,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「2.19.2(6)(d)子プロセスを監視対象から外す設定(オプション)」を参照ください。

(f) Node exporter for AIX(AIX性能情報収集機能)

Node exporter for AIXは,監視対象のAIXホストに組み込んで,AIXホストの稼働情報を取得するExporterです。

Node exporter for AIXは,Prometheus serverとは別のホストにインストールされ,Prometheus serverからのスクレイプ要求を契機に,同ホストのAIX OSから稼働情報を収集して,Prometheus serverに返却します。

ホストの外からの監視(URLによる外形監視やCloudWatch)では収集できない,メモリーやディスクに関する稼働情報を,ホスト内部から収集できます。

■ 前提条件

Node exporter for AIXが使用するポートは,JP1/IM - AgentのPrometheus server以外からアクセスされないように,ファイアウォールやネットワーク構成などで保護することが前提条件となります。

Node exporter for AIXが使用するポートについては,マニュアル「JP1/Integrated Management 3 - Manager 運用ガイド」の「10.4.2(1)サービスの登録の有効化」の,「node_exporter_aixコマンドのオプション」の説明を参照してください。

■ 監視対象の条件

Node exporter for AIXをインストールするホストのサポートOSについては,リリースノートを参照してください。

WPAR環境はサポート対象外です。

同一ホスト上でNode exporter for AIXの複数起動はサポート対象外です(物理ホストと論理ホストで両方起動する場合も含みます)。

次の条件を満たす場合だけ,監視対象のAIXホストの論理ホスト構成がサポート対象となります。

  • Prometheusから監視対象のAIXホストのホスト名が一意に名前解決できる

注 監視対象のAIXホストに複数のIPアドレスが割り当たっている場合,すべてのIPアドレスでNode exporter for AIXにアクセスできます。

1つのPrometheus serverで監視できるNode exporter for AIXの上限については,「付録D.1 インテリジェント統合管理基盤を使用する上での制限値一覧」のJP1/IM - Agentの制限値一覧を参照してください。

■ 主な取得項目

JP1/IM - Agentが同梱するNode exporter for AIXの主な取得項目は,Node exporter for AIXのメトリック定義ファイル(初期状態)で定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Node exporter for AIXのメトリック定義ファイル(metrics_node_exporter_aix.conf)」(2. 定義ファイル)を参照してください。

メトリック定義ファイルには,取得項目を追加できます。定義ファイル内で記述するPromQL文で指定できるメトリックを,次に示します。

メトリック名

取得する場合のコマンドラインのオプション

取得する内容

ラベル

データソース

node_context_switches

-C

コンテキストスイッチが行われた回数(累積値)

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_cpu_total関数で取得

perfstat_cpu_t構造体のpswitch

node_cpu

-C

各モードで費やされたCPUの秒数(累積値)

instance: インスタンス識別文字列

job: ジョブ名

cpu: cpuid

mode: モード(idle,sys,user,wait)

perfstat_cpu関数で取得

perfstat_cpu_t構造体

aix_diskpath_wblks

-D

ディスクパス経由で書き込まれたブロック

cpupool_id=物理プロセッサーの共用プールID

diskpath=ディスクパス名

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_diskpath関数で取得

perfstat_diskpath_t構造体のwblks

aix_diskpath_rblks

-D

ディスクパス経由で読み取られたブロック

cpupool_id=物理プロセッサーの共用プールID

diskpath=ディスクパス名

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_diskpath関数で取得

perfstat_diskpath_t構造体のrblks

aix_disk_rserv

-d

読み取りサービス時間

cpupool_id=物理プロセッサーの共用プールID

disk=ディスク名

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

vgname=ボリューム・グループ名

perfstat_disk関数で取得

perfstat_disk_t構造体のrserv

aix_disk_rblks

-d

ディスクから読み取られたブロックの数

cpupool_id=物理プロセッサーの共用プールID

disk=ディスク名

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

vgname=ボリューム・グループ名

perfstat_disk関数で取得

perfstat_disk_t構造体のrblks

aix_disk_wserv

-d

書き込みサービス時間

cpupool_id=物理プロセッサーの共用プールID

disk=ディスク名

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

vgname=ボリューム・グループ名

perfstat_disk関数で取得

perfstat_disk_t構造体のwserv

aix_disk_wblks

-d

ディスクに書き込まれたブロックの数

cpupool_id=物理プロセッサーの共用プールID

disk=ディスク名

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

vgname=ボリューム・グループ名

perfstat_disk関数で取得

perfstat_disk_t構造体のwblks

aix_disk_time

-d

ディスクがアクティブである時間

cpupool_id=物理プロセッサーの共用プールID

disk=ディスク名

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

vgname=ボリューム・グループ名

perfstat_disk関数で取得

perfstat_disk_t構造体のtime

aix_disk_xrate

-d

ディスクからの転送回数

cpupool_id=物理プロセッサーの共用プールID

disk=ディスク名

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

vgname=ボリューム・グループ名

perfstat_disk関数で取得

perfstat_disk_t構造体のxrate

aix_disk_xfers

-d

ディスクとの間の転送回数

cpupool_id=物理プロセッサーの共用プールID

disk=ディスク名

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

vgname=ボリューム・グループ名

perfstat_disk関数で取得

perfstat_disk_t構造体のxfers

node_filesystem_avail_bytes

-f

root以外のユーザーが使用可能なファイルシステムのバイト数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

device=デバイス名

fstype=ファイルシステムタイプ

mountpoint=マウントポイント

stat_filesystems関数で取得

filesystem構造体のavail_bytes

node_filesystem_files

-f

ファイルシステムのファイルノード数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

device=デバイス名

fstype=ファイルシステムタイプ

mountpoint=マウントポイント

stat_filesystems関数で取得

filesystem構造体のfiles

node_filesystem_files_free

-f

ファイルシステムの空きファイルノード数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

device=デバイス名

fstype=ファイルシステムタイプ

mountpoint=マウントポイント

stat_filesystems関数で取得

filesystem構造体のfiles_free

node_filesystem_free_bytes

-f

ファイルシステムの空き領域のバイト数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

device=デバイス名

fstype=ファイルシステムタイプ

mountpoint=マウントポイント

stat_filesystems関数で取得

filesystem構造体のfree_bytes

node_filesystem_size_bytes

-f

ファイルシステムの容量のバイト数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

device=デバイス名

fstype=ファイルシステムタイプ

mountpoint=マウントポイント

stat_filesystems関数で取得

filesystem構造体のsize_bytes

node_intr

-C

decrementer 割り込みの数

MPCの送信済み割り込みの数

デバイス割り込みの数

ソフトウェア割り込みの数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_cpu_total関数で取得

perfstat_cpu_total_t構造体のdecrintrs

perfstat_cpu_total_t構造体のmpcsintrs

perfstat_cpu_total_t構造体のdevintrs

perfstat_cpu_total_t構造体のsoftintrs

node_load1

-C

(1 < < SBITS) x 直近1分の間の実行可能プロセスの平均数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループD

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_cpu_total関数で取得

perfstat_cpu_total_t構造体のloadavg[0]

node_load5

-C

(1 << SBITS) x 直近5分の間の実行可能プロセスの平均数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_cpu_total関数で取得

perfstat_cpu_total_t構造体のloadavg[1]

node_load15

-C

(1 << SBITS) x 直近15分の間の実行可能プロセスの平均数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_cpu_total関数で取得

perfstat_cpu_total_t構造体のloadavg[2]

aix_memory_real_avail

-m

ページアウトなしで使用可能なメモリページの数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_memory_total関数で取得

perfstat_memory_total_t構造体のreal_avail

aix_memory_real_free

-m

空き実メモリー(4KBページ単位)

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_memory_total関数で取得

perfstat_memory_total_t構造体のreal_free

aix_memory_real_inuse

-m

使用実メモリー(4KBページ単位)

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_memory_total関数で取得

perfstat_memory_total_t構造体のreal_inuse

aix_memory_real_total

-m

実メモリーの合計(4KBページ単位)

cpupool_id=物理プロセッサーの共用プールID

group_id=グループ ID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_memory_total関数で取得

perfstat_memory_total_t構造体のreal_total

aix_netinterface_mtu

-i

ネットワーク・フレーム・サイズ

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

netinterface=ネットインターフェース名

perfstat_netinterface関数で取得

perfstat_netinterface_t構造体のmtu

aix_netinterface_ibytes

-i

インターフェース上の受信バイト数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

netinterface=ネットインターフェース名

perfstat_netinterface関数で取得

perfstat_netinterface_t構造体のibytes

aix_netinterface_ierrors

-i

インターフェース上の入力エラーの数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

netinterface=ネットインターフェース名

perfstat_netinterface関数で取得

perfstat_netinterface_t構造体のierrors

aix_netinterface_ipackets

-i

インターフェース上で受信されたパケットの数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

netinterface=ネットインターフェース名

perfstat_netinterface関数で取得

perfstat_netinterface_t構造体のipackets

aix_netinterface_obytes

-i

インターフェースで送信されたバイト数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

netinterface=ネットインターフェース名

perfstat_netinterface関数で取得

perfstat_netinterface_t構造体のobytes

aix_netinterface_collisions

-i

csmaインターフェース上の衝突の数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

netinterface=ネットインターフェース名

perfstat_netinterface関数で取得

perfstat_netinterface_t構造体のcollisions

aix_netinterface_oerrors

-i

インターフェース上の出力エラーの数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

netinterface=ネットインターフェース名

perfstat_netinterface関数で取得

perfstat_netinterface_t構造体のoerrors

aix_netinterface_opackets

-i

インターフェース上で送信されたパケットの数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

netinterface=ネットインターフェース名

perfstat_netinterface関数で取得

perfstat_netinterface_t構造体のopackets

aix_memory_pgspins

-m

ページング・スペースからのページインの数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_memory_total関数で取得

perfstat_memory_total_t構造体のpgspins

aix_memory_pgspouts

-m

ページング・スペースからのページアウトの数

cpupool_id=物理プロセッサーの共用プールID

group_id=グループID

instance: インスタンス識別文字列

job: ジョブ名

lpar=区画名

machine_serial=マシンID

perfstat_memory_total関数で取得

perfstat_memory_total_t構造体のpgspouts

Node exporter for AIXは,CPU,メモリーなどの監視対象のリソースごとに収集されます。監視対象のリソースごとの収集の有効・無効化は,Node exporter for AIXのコマンドラインのオプションで指定できます。

Node exporter for AIXのコマンドラインのオプションについては,マニュアル「JP1/Integrated Management 3 - Manager 運用ガイド」の「10.4.2(1)サービスの登録の有効化」の,「node_exporter_aixコマンドのオプション」の説明を参照してください。

プロセスの情報の収集には,Script exporterを使用します。設定方法については,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「1.23.2(4)(e)監視対象ホスト(AIX)上のプロセス監視(オプション)」を参照してください。

監視対象のAIXホストのログファイルの監視には,JP1/Baseのログファイルトラップ機能を使用します。

■ Node exporter for AIXのログに関する注意事項

Node exporter for AIXのログファイルは,OSのシステムログに出力します。そのため,出力先はOSのシステムログの設定に従います。Node exporter for AIXのログを出力するOSのシステムログの出力先を変更する手順については,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「1.23.2(4)(f)Node exporter for AIXのログ出力先の変更(オプション)」を参照してください。

■ SMTやMicro-Partitioningを使用した環境での注意事項

SMT(Simultaneous multithreading)やMicro-Partitioningを使用した環境では,Node exporter for AIXのCPU使用率(cpu_used_rate)のメトリックの値の計算には物理CPUの割り当て量が含まれませんが,sarコマンドで表示されるCPU使用率の計算には物理CPUの割り当て量が含まれます。

そのため,Node exporter for AIXのCPU使用率(cpu_used_rate)のメトリックの値が,sarコマンドの出力結果より低く表示されることがあります。

(g) Yet another cloudwatch exporter(Amazon CloudWatch性能情報収集機能)

Yet another cloudwatch exporterは,監視エージェントに含まれ,Amazon CloudWatchを使用して,クラウド上のAWSサービスの稼働情報を収集するExporterです。

Yet another cloudwatch exporterは,Prometheus serverと同じホストにインストールされ,Prometheus serverからのスクレイプ要求を契機に,AWSが提供するSDK(AWS SDK)を介して取得したCloudWatchメトリックを収集して,Prometheus serverに返却します。

注※

Amazon Web Services(AWS)が提供するSDKです。Yet another cloudwatch exporterは,Go言語版のAWS SDK for Go (V1)を使用しています。CloudWatch監視では,Amazon CloudWatchがAWS SDK for Go (V1)をサポートしている必要があります。

Node exporterやWindows exporterを組み込むことができないサービスを,監視できます。

■ 主な取得項目

Yet another cloudwatch exporterの主な取得項目は,Yet another cloudwatch exporterのメトリック定義ファイル(初期状態)で定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Yet another cloudwatch exporterのメトリック定義ファイル(metrics_ya_cloudwatch_exporter.conf)」(2. 定義ファイル)を参照してください。

■ 収集できるCloudWatchメトリック

3.15.6(1)(k)Yet another cloudwatch exporterのIM管理ノードの作成」に記載しているJP1/IM - AgentのYet another cloudwatch exporterが監視対象としてサポートするAWSの名前空間名のメトリックを収集できます。

収集するメトリックは,Yet another cloudwatch exporter設定ファイル(jpc_ya_cloudwatch_exporter.yml)に,AWSサービス名およびCloudWatchメトリック名を記述して指定します。

AWS/EC2サービスのCloudWatchメトリックの,CPUUtilizationとDiskReadBytesを収集する場合のYet another cloudwatch exporter設定ファイルの記述例を,次に示します。

discovery:
  exportedTagsOnMetrics:
    ec2:
      - jp1_pc_nodelabel
  jobs:
  - type: ec2
    regions:
      - ap-northeast-1
    period: 60
    length: 300
    delay: 60
    nilToZero: true
    searchTags:
      - key: jp1_pc_nodelabel
        value: .*
    metrics:
      - name: CPUUtilization
        statistics:
        - Maximum
      - name: DiskReadBytes
        statistics:
        - Maximum

Yet another cloudwatch exporter設定ファイルの記述内容については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Yet another cloudwatch exporter設定ファイル(jpc_ya_cloudwatch_exporter.yml)」(2. 定義ファイル)を参照してください。

また,Yet another cloudwatch exporter設定ファイルで設定したメトリックを使用して,Yet another cloudwatch exporterのメトリック定義ファイルに,新たなメトリックを追加することもできます。

定義ファイル内で記述するPromQL文で指定するメトリックおよびラベルは,次に示す名称規則に従ったものを使用します。

■Exporterのメトリックの名称規則

Yet another cloudwatch exporterは,CloudWatchのメトリック名称を,次に示すルールで自動変換したものを,Exporterのメトリック名として扱います。また,PromQL文で指定するメトリックは,Exporterのメトリック名を使用して記述します。

"aws_"※1名前空間※2+"_"+CloudWatchメトリック※2+"_"+統計タイプ※2

注※1

名前空間が"aws_"で始まらない場合に付加されます。

注※2

Yet another cloudwatch exporter設定ファイル(jpc_ya_cloudwatch_exporter.yml)で設定した名称を示します。次に示すルールで変換されます。

  • キャメルケースの表記からスネークケースの表記に変換されます。

    キャメルケースとは,「CamelCase」や「camelCase」のように単語の区切りを大文字にする記法のことです。

    スネークケースとは,「snake_case」のように単語の区切りを"_"にする記法のことです。

  • 次に示す記号は"_"に変換されます。

    半角空白,半角コンマ,タブ,/\,半角ピリオド,-:=,全角左二重引用符,@<>

  • "%"は"_percent"に変換されます。

■Exporterのラベルの名称規則

Yet another cloudwatch exporterは,CloudWatchのディメンション・タグ名称を,次に示すルールで自動変換したものを,Exporterのラベル名として扱います。また,PromQL文で指定するラベルは,Exporterのラベル名を使用して記述します。

  • ディメンションの場合

    "dimension"+"_"+ディメンションの名称

  • タグの場合

    "tag"+"_"+タグの名称

  • カスタムタグの場合

    "custom_tag_"+"_"+カスタムタグの名称

注※

Yet another cloudwatch exporter設定ファイル(jpc_ya_cloudwatch_exporter.yml)で設定した名称を示します。

■ AWSアカウントでのIAMユーザーのポリシーについて

AWS CloudWatchに接続するためは,次に示すアクセス許可のポリシーを作成して,IAMユーザーに割り当てる必要があります。

"tag:GetResources",
"cloudwatch:GetMetricData",
"cloudwatch:GetMetricStatistics",
"cloudwatch:ListMetrics"

JSON形式の情報の設定手順については,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「2.19.2(8)(b) CloudWatchに接続するための設定を変更する(Linuxの場合)(オプション)」を参照してください。

■ 環境変数HTTPS_PROXY

Yet another cloudwatch exporterからプロキシ経由でCloudWatchに接続する場合に指定する環境変数です。環境変数HTTPS_PROXYに設定できるURLはhttpだけです。なお,サポートする認証方式はBasic認証だけです。

環境変数HTTPS_PROXYを設定することで,プロキシ経由でAWS CloudWatchに接続できます。設定例を次に示します。

HTTPS_PROXY=http://username:password@proxy.example.com:5678

■ JP1/IM - Agentでサポートしていない監視対象の対応方法について

JP1/IM - Agentで監視できない製品やメトリックがある場合は,ユーザー独自のExporterなどを使用してデータを取得する必要があります。

(h) Promitor(Azure Monitor性能情報収集機能)

Promitorは,統合エージェントに含まれ,Azure MonitorおよびAzure Resource Graphを使用して,クラウド上のAzureサービスの稼働情報を収集するExporterです。

Promitorは,Promitor ScraperとPromitor Resource Discoveryから構成されます。Promitor Scraperは,Scheduleの設定によってAzure Monitorからリソースのメトリクスを収集し,返却します。

メトリクスの取得対象のリソースは,設定ファイルで個別に指定する方式と,対象リソースを自動検出する方式の2種類があります。自動検出する方式の場合は,Promitor Resource DiscoveryがAzure Resource Graphからテナント内のリソースを検出し,その結果をもとにPromitor Scraperがメトリクス情報を取得します。

また,Promitorは,Promitor ScraperおよびPromitor Resource Discoveryのどちらも,認証情報などのruntime設定の定義を行う設定ファイルと,取得するメトリクス情報の定義を行う設定ファイルの2つの設定ファイルが必要となります。

■ 主な取得項目

Promitorの主な取得項目は,Promitorのメトリック定義ファイル(初期状態)で定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Promitorのメトリック定義ファイル(metrics_promitor.conf)」を参照してください。

■ 収集できるメトリック

Promitorは監視対象として次に示すサービスのメトリクスを収集できます。

収集するメトリックは,Promitor Scraper設定ファイル(metrics-declaration.yaml)に記述して指定します。

Promitor Scraper設定ファイルに指定するメトリックを変更する場合は,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」で,「1.21.2(8)Promitorの設定」の「(d)取得対象の設定(必須)」の「■監視メトリクスの変更(オプション)」を参照してください。

また,Promitor Scraper設定ファイルに設定したメトリックを使用して,Promitorのメトリック定義ファイルに,新たなメトリックを追加することもできます。定義ファイル内で記述するPromQL文に,Promitor Scraper設定ファイルに設定したメトリックを指定できます。

表3‒36 Promitorが監視対象としてサポートするサービス

PromitorのresourceType名

Azure Monitorの名前空間名

オートディスカバリ

VirtualMachine

Microsoft.Compute/virtualMachines

FunctionApp

Microsoft.Web/sites

ContainerInstance

Microsoft.ContainerInstance/containerGroups

KubernetesService

Microsoft.ContainerService/managedClusters

FileStorage

Microsoft.Storage/storageAccounts/fileServices

BlobStorage

Microsoft.Storage/storageAccounts/blobServices

ServiceBusNamespace

Microsoft.ServiceBus/namespaces

CosmosDb

Microsoft.DocumentDB/databaseAccounts

SqlDatabase

Microsoft.Sql/servers/databases

SqlServer

Microsoft.Sql/servers/databases

Microsoft.Sql/servers/elasticPools

SqlManagedInstance

Microsoft.Sql/managedInstances

SqlElasticPool

Microsoft.Sql/servers/elasticPools

LogicApp

Microsoft.Logic/workflows

(凡例)

○:オートディスカバリの対象です。

−:オートディスカバリの対象外です。

■ Promitorが使用するAzure SDKのサポート状況の確認

Promitorは,Azure SDK for .NETを使用しています。Azure SDKのサポート終了は12か月前に通知されます。Azure SDKのライフサイクルについては,下記のWebサイトのライフサイクルに関するFAQを参照してください。

https://learn.microsoft.com/ja-jp/lifecycle/faq/azure#azure-sdk-----------

また,Azure SDKのライブラリのバージョンのライフサイクルについては,下記のWebサイトで検索できます。

https://azure.github.io/azure-sdk/releases/latest/all/dotnet.html

■ アカウント情報に必要な権限

PromitorからAzureに接続する方式には,サービスプリンシパル方式とマネージドID方式があります。サービスプリンシパルおよびマネージドIDに割り当てる権限については,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「1.21.2(8)Promitorの設定」の「(a)Azureに接続するための設定(必須)」を参照してください。

(i) Blackbox exporter(外形監視機能)

Blackbox exporterは,ネットワーク上の監視対象のインターネットサービスに対して,疑似的なリクエストを発信し,その応答から得られる稼働情報を取得するExporterです。対応する通信プロトコルは,HTTP,HTTPS,およびICMPです。

Blackbox exporterは,Prometheus serverからのスクレイプ要求を契機に,監視対象に対して,HTTP等のサービスリクエストを投げ,その応答時間とレスポンスを取得します。また,実行結果をメトリクス形式にまとめて,Prometheus serverに返却します。

■ 主な取得項目

Blackbox exporterの主な取得項目は,Blackbox exporterのメトリック定義ファイル(初期状態)で定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Blackbox exporterのメトリック定義ファイル(metrics_blackbox_exporter.conf)」(2. 定義ファイル)を参照してください。

メトリック定義ファイルには,取得項目を追加できます。定義ファイル内で記述するPromQL文で指定できるメトリックを,次に示します。

メトリック名

Prober

取得する内容

ラベル

probe_http_duration_seconds

http

httpリクエストのフェーズごとにかかった秒数

リダイレクトはすべて合計します。

instance: インスタンス識別文字列

job: ジョブ名

phase:フェーズ

注※

次のどれかが入ります。

  • "resolve"

  • "connect"

  • "tls"

  • "processing"

  • "transfer"

probe_http_content_length

http

HTTPコンテンツ応答の長さ

instance: インスタンス識別文字列

job: ジョブ名

probe_http_uncompressed_body_length

http

非圧縮応答本文の長さ

instance: インスタンス識別文字列

job: ジョブ名

probe_http_redirects

http

リダイレクトの回数

instance: インスタンス識別文字列

job: ジョブ名

probe_http_ssl

http

最終リダイレクトにSSLが使用されたかどうか

  • 0:TLS/SSLが使用されなかった

  • 1:TLS/SSLが使用された

instance: インスタンス識別文字列

job: ジョブ名

probe_http_status_code

http

HTTPレスポンスのステータスコードの値

リダイレクトを行っている場合,最終的なステータスコードが,メトリックの値になります。

リダイレクトを行っていない場合,最初に受信したステータスコードがメトリックの値になります。

instance: インスタンス識別文字列

job: ジョブ名

probe_ssl_earliest_cert_expiry

http

最も早く有効期限が切れるSSL証明書のUNIX時間

instance: インスタンス識別文字列

job: ジョブ名

probe_ssl_last_chain_expiry_timestamp_seconds

http

SSLチェーンの最後の証明書の有効期限のタイムスタンプ

このメトリックを監視する場合,Blackbox exporter設定ファイル(jpc_blackbox_exporter.yml)の<tls_config>の設定で,insecure_skip_verifyパラメーターにfalseを指定し,証明書を配置して,証明書ファイルのパスを該当するパラメーターに指定する必要があります。

instance: インスタンス識別文字列

job: ジョブ名

probe_ssl_last_chain_info

http

SSLリーフ証明書情報

監視対象となるサーバ証明書のSHA256ハッシュ値になります。ハッシュ値はラベル「fingerprint_sha256」に設定されます。

instance: インスタンス識別文字列

job: ジョブ名

fingerprint_sha256:証明書のsha256指紋

probe_tls_version_info

http

使用されるTLSバージョン

"TLS 1.2"などのTLSバージョンがラベル「version」に設定されます。

instance: インスタンス識別文字列

job: ジョブ名

version:TLSバージョン

probe_http_version

http

プローブ応答のHTTPのバージョン

instance: インスタンス識別文字列

job: ジョブ名

probe_failed_due_to_regex

http

応答本文やレスポンスヘッダーに対する正規表現チェックによりプローブが失敗したかどうか

  • 0:成功

  • 1:失敗

instance: インスタンス識別文字列

job: ジョブ名

probe_http_last_modified_timestamp_seconds

http

HTTP応答ヘッダーのLast-Modifiedを示すUNIX時間

instance: インスタンス識別文字列

job: ジョブ名

probe_icmp_duration_seconds

icmp

ICMPリクエストのフェーズごとにかかった秒数

instance: インスタンス識別文字列

job: ジョブ名

phase: フェーズ

注※

次のどれかが入ります。

  • resolve

    名前解決時間

  • setup

    resolve完了からICMPパケットの送信までの時間

  • rtt

    setup後から応答を得るまでの時間

probe_icmp_reply_hop_limit

icmp

ホップリミット(IPv4の場合はTTL)の値

Windowsの場合は,サポート対象外です。

instance: インスタンス識別文字列

job: ジョブ名

probe_success

プローブが成功したかどうか

  • 0:失敗

  • 1:成功

instance: インスタンス識別文字列

job: ジョブ名

probe_duration_seconds

プローブが完了するまでにかかった秒数

instance: インスタンス識別文字列

job: ジョブ名

■ 監視対象とのIP通信

IPv4通信だけに対応しています。

■ 監視対象との暗号化通信

HTTP監視では,TLSによる暗号化通信を行えます。この場合,Blackbox exporterは,監視対象(TLSサーバ)に対してTLSクライアントとして動作します。

TLSによる暗号化通信を使用する場合は,Blackbox exporter設定ファイル(jpc_blackbox_exporter.yml)の項目「tls_config」で指定します。また,次に示す証明書ファイルおよびキーファイルを,準備する必要があります。

ファイル

形式

CA証明書ファイル

pkcs7形式のX509公開鍵証明書をPEM形式でエンコードしたファイル

クライアント証明書ファイル

クライアント証明書キーファイル

pkcs1またはpkcs8形式の秘密鍵をPEM形式でエンコードしたファイル

注※

パスワードで保護したファイルは使用できません。

使用できるTLSバージョンと暗号スイートのサポート範囲を,次に示します。

項目

サポート範囲

TLSバージョン

1.2〜1.3

暗号スイート

  • "TLS_AES_128_GCM_SHA256"(TLS1.3だけ)

  • "TLS_AES_256_GCM_SHA384"(TLS1.3だけ)

  • "TLS_CHACHA20_POLY1305_SHA256"(TLS1.3だけ)

  • "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA"(TLS1.2まで)

  • "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA"(TLS1.2まで)

  • "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"(TLS1.2まで)

  • "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA"(TLS1.2まで)

  • "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"(TLS1.2だけ)

  • "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"(TLS1.2だけ)

  • "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"(TLS1.2だけ)

  • "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"(TLS1.2だけ)

  • "TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256"(TLS1.2だけ)

  • "TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256"(TLS1.2だけ)

■ 稼働情報の収集に関するタイムアウト

(通常状態で)応答が遅いネットワーク環境では,タイムアウト時間を調整することにより,稼働情報を収集できます。

Prometheus serverでは,Prometheus設定ファイル(jpc_prometheus_server.yml)の項目「scrape_timeout」で,スクレイプ要求のタイムアウト時間を指定できます。

詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Prometheus設定ファイル(jpc_prometheus_server.yml)」(2. 定義ファイル)の,項目「scrape_timeout」の説明を参照してください。

また,Blackbox exporterから監視対象へ接続するときのタイムアウト時間は,上記の「scrape_timeout」で指定した値の0.5秒前となります。

■ 証明書の有効期限

HTTPS監視による稼働情報の収集を行う場合,Exporterは監視対象から証明書リスト(サーバ証明書とサーバ証明書を証明する証明書リスト)を受け取ります。

Blackbox exporterでは,最も期限が近い証明書の有効期限(UNIX時間)を,probe_ssl_earliest_cert_expiryメトリクスとして収集できます。

また,「probe_ssl_earliest_cert_expiryメトリクスの値」−「PromQLのtime()関数の値」の計算値で,期限までの残りの秒数を算出できるため,「3.15.1(3)パフォーマンスデータの監視・通知機能」の機能を使用して,期限が近い証明書を監視できます。

■ HTTP監視時のHTTPリクエストヘッダーのUser-Agentの値

HTTP監視時のHTTPリクエストヘッダーに含まれるUser-Agentのデフォルト値は,次のとおりです。

  • バージョン13-00以前の場合

    "Go-http-client/1.1"

  • バージョン13-00-01以降の場合

    "Blackbox Exporter/0.24.0"

Blackbox exporter設定ファイル(jpc_blackbox_exporter.yml)の項目「headers」の設定で,User-Agentの値を変更できます。

User-Agentの値を「"My-Http-Client"」に変更する場合の例を,次に示します。

modules:
  http:
    prober: http
    http:
      headers:
        User-Agent: "My-Http-Client"

詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Blackbox exporter設定ファイル(jpc_blackbox_exporter.yml)」(2. 定義ファイル)の,項目「headers」の説明を参照してください。

■ HTTP1.1名前ベースバーチャルホストの対応について

Blackbox exporterは,HTTP1.1名前ベースバーチャルホストおよびTLSのServer Name Indication(SNI)に対応しています。1つのHTTP/HTTPSサーバを複数のHTTP/HTTPSサーバに見せかけた仮想ホストに対する監視ができます。

■ TLSサーバ認証とクライアント認証について

Blackbox exporterのHTTPS監視では,Blackbox exporter設定ファイル(jpc_blackbox_exporter.yml)の項目「ca_file」に記述したCA証明書と,サーバとのHTTPS通信開始時(TLSハンドシェイク時)にサーバが送信したサーバ証明書を使用して,サーバ認証を行います。

送信された証明書が正しくない場合(サーバ名が正しくない,有効期限が切れている,自己証明書を使用している など),HTTPS通信を開始できず,監視はエラーになります。

また,HTTPS通信開始時(TLSハンドシェイク時)に,監視対象サーバから証明書の送信要求があると,Blackbox exporter設定ファイル(jpc_blackbox_exporter.yml)の項目「cert_file」に記述したクライアント証明書を監視対象サーバに送信します。

送信された証明書を,サーバが検証して不正と認識し,TLSプロトコルを通じて,Blackbox exporterにエラーを返却した場合(または,通信の切断などで通信を継続できない場合),監視はエラーになります。

監視対象サーバでの,クライアント証明書に関する検証内容および不正時の動作については,監視対象サーバ(または,ロードバランサなどの中継機器)の仕様を確認してください。

なお,サーバ認証時の証明書に関する不正の検知については,Blackbox exporter設定ファイル(jpc_blackbox_exporter.yml)の項目「insecure_skip_verify」に「true」を指定すると,エラーにならずにHTTPS通信を開始できます。ただし,その場合,サーバでのクライアント認証に関する検証の動作は無効となります。

詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Blackbox exporter設定ファイル(jpc_blackbox_exporter.yml)」(2. 定義ファイル)の,項目「insecure_skip_verify」の説明を参照してください。

Subject Alternative Nameにホスト名が設定されていない証明書では,サーバ認証を行うことができません。

■ Cookie情報について

Blackbox exporterでは,監視対象から送信されてきたCookie情報を,次のHTTP通信のリクエストで使用しません。

■ HTTP通信のレスポンスボディーに含まれるコンテンツから参照する外部リソースについて

Blackbox exporterでは,HTTP通信のレスポンスボディーに含まれるコンテンツから参照する外部リソース(サブフレーム,画像など)は,監視範囲に含めません。

■ HTTP通信のレスポンスボディーに含まれるコンテンツの監視について

Blackbox exporterでは,コンテンツのパース(解析)を行わないため,HTTP通信のレスポンスボディーに含まれるコンテンツ内の構文(HTML,javascriptなど)による実行結果や実行時間は,監視結果に反映されません。

■ HTTP監視の監視先がBasic認証ありでリダイレクトする場合の注意事項

Blackbox exporterのHTTP監視の監視先がBasic認証ありでリダイレクトする場合,Blackbox exporterは,リダイレクト元とリダイレクト先に同じBasic認証のユーザー名とパスワードを送付します。このため,リダイレクト元とリダイレクト先の両方でBasic認証を行う場合,リダイレクト元とリダイレクト先で,同じユーザー名とパスワードを設定しておく必要があります。

(j) Script exporter(UAP監視機能)

Script exporterは,ホスト上に存在するスクリプトを実行し,結果を取得するExporterです。

Script exporterは,Prometheusと同じホストにインストールされ,Prometheus serverからのスクレイプ要求を契機に,同ホストのスクリプトを実行して結果を取得し,Prometheus serverに返却します。

Script exporterに,UAPの情報を取得してメトリクスに変換するなどのスクリプトを作り込むことで,Exporterが対応していないアプリケーションでも自由な監視ができます。

■ 主な取得項目

Script exporterの主な取得項目は,Script exporterのメトリック定義ファイル(初期状態)で定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Script exporterのメトリック定義ファイル(metrics_script_exporter.conf)」を参照してください。

メトリック定義ファイルには,取得項目を追加できます。定義ファイル内で記述するPromQL文で指定できるメトリックを,次に示します。

メトリック名

取得する内容

ラベル

script_success

スクリプトの終了ステータス(失敗時0, 成功時1)

instance: インスタンス識別文字列

job: ジョブ名

script: スクリプト名

script_duration_seconds

スクリプトの実行時間(秒)

instance: インスタンス識別文字列

job: ジョブ名

script: スクリプト名

script_exit_code

スクリプトの終了コード

instance: インスタンス識別文字列

job: ジョブ名

script: スクリプト名

(k) OracleDB exporter(Oracle Database監視機能)

OracleDB exporterは,Oracle Databaseから性能情報を取得するPrometheus用のExporterです。

■セッション数について

OracleDB exporterからOracle Databaseの監視を行うと,スクレイプのたびに接続を行い,データ収集が完了したら切断します。接続時のセッション数は1となります。

■ 監視対象の条件

JP1/IM - Agentが監視対象してサポートとするOracle Databaseの構成を次に示します。

  • Oracle Databaseの構成

    • 非クラスタの場合

      非CDB構成およびCDB構成

    • Oracle RACの場合

      CDB構成

OracleDB exporterは,1つのプロセスで1つのサービスに接続するため,監視対象が複数存在する場合は,OracleDB exporterを複数起動します。

  • Oracle RAC One NodeおよびOracle Database Cloud Serviceはサポート対象外です。

  • Oracle Database側のHAクラスタ構成はサポート対象外です。

  • データベース・キャラクタ・セット

    Oracle Databaseのデータベース・キャラクタ・セットは次のどれかを設定します。

    • AL32UTF8(Unicode UTF-8)

    • JA16SJIS(日本語 SJIS)

    • ZHS16GBK(簡体字中国語 GBK)

■ 取得項目

JP1/IM - Agentが同梱するOracleDB exporterで取得できるメトリックは,OracleDB exporterのデフォルトで定義されているメトリックとcache_hit_ratioです。

OracleDB exporterの取得項目は,OracleDB exporterのメトリック定義ファイル(初期状態)で定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「OracleDB exporterのメトリック定義ファイル(metrics_oracledb_exporter.conf)」(2. 定義ファイル)を参照してください。

定義ファイル内で記述するPromQL文で指定できるメトリックを,次の表に示します。各メトリックの値は,Oracle Databaseに対して表内に示すSQL文を実行して取得します。メトリックの詳細を確認する場合は,データソースのSQL文を元にOracle社にお問い合わせください。

メトリック名

取得する内容

ラベル

データソース(SQL文)

oracledb_sessions_value

セッション数

status: ステータス

type: セッションタイプ

SELECT status, type, COUNT(*) as value FROM v$session GROUP BY status, type

oracledb_resource_current_utilization

リソース使用量※1

resource_name: リソース名

SELECT resource_name,current_utilization,CASE WHEN TRIM(limit_value) LIKE 'UNLIMITED' THEN '-1' ELSE TRIM(limit_value) END as limit_value FROM v$resource_limit

oracledb_resource_limit_value

リソース使用量の上限※1

-1の場合は上限なし

resource_name: リソース名

oracledb_asm_diskgroup_total

ASMディスクグループの総容量のバイト数

name: ディスクグループ名

SELECT name,total_mb*1024*1024 as total,free_mb*1024*1024 as free FROM v$asm_diskgroup_stat where exists (select 1 from v$datafile where name like '+%')

oracledb_asm_diskgroup_free

ASMディスクグループの空き容量のバイト数

name: ディスクグループ名

oracledb_activity_execute_count

SQL文を実行するコール(ユーザー・コールおよび再帰コール)の合計数(累積値)

なし

SELECT name, value FROM v$sysstat WHERE name IN ('parse count (total)', 'execute count', 'user commits', 'user rollbacks', 'db block gets from cache', 'consistent gets from cache', 'physical reads cache')

oracledb_activity_parse_count_total

解析コール(ハード,ソフトおよびdescribe)の合計数(累積値)

なし

oracledb_activity_user_commits

ユーザー・コミットの合計数(累積値)

なし

oracledb_activity_user_rollbacks

ユーザーがROLLBACK文を手動で発行した回数,またはユーザーのトランザクション中にエラーが発生した回数の合計数(累積値)

なし

oracledb_activity_physical_reads_cache

ディスクからバッファ・キャッシュに読み取られたデータ・ブロックの合計数(累積値)

なし

oracledb_activity_consistent_gets_from_cache

バッファ・キャッシュからブロックの読み取り一貫性が要求された回数(累積値)

なし

oracledb_activity_db_block_gets_from_cache

バッファ・キャッシュからCURRENTブロックが要求された回数(累積値)

なし

oracledb_process_count

Oracle Databaseのアクティブプロセス数

なし

SELECT COUNT(*) as count FROM v$process

oracledb_wait_time_administrative

Administrative待機クラスの待機に費やされた時間(100分の1秒単位)※2

なし

SELECT

n.wait_class as WAIT_CLASS,

round(m.time_waited/m.INTSIZE_CSEC,3) as VALUE

FROM

v$waitclassmetric m, v$system_wait_class n

WHERE

m.wait_class_id=n.wait_class_id AND n.wait_class != 'Idle'

oracledb_wait_time_application

Application待機クラスの待機に費やされた時間(100分の1秒単位)※2

なし

oracledb_wait_time_commit

Commit待機クラスの待機に費やされた時間(100分の1秒単位)※2

なし

oracledb_wait_time_concurrency

Concurrency待機クラスの待機に費やされた時間(100分の1秒単位)※2

なし

oracledb_wait_time_configuration

Configuration待機クラスの待機に費やされた時間(100分の1秒単位)※2

なし

oracledb_wait_time_network

Network待機クラスの待機に費やされた時間(100分の1秒単位)※2

なし

oracledb_wait_time_other

Other待機クラスの待機に費やされた時間(100分の1秒単位)※2

なし

oracledb_wait_time_scheduler

Scheduler待機クラスの待機に費やされた時間(100分の1秒単位)※2

なし

oracledb_wait_time_system_io

System I/O待機クラスの待機に費やされた時間(100分の1秒単位)※2

なし

oracledb_wait_time_user_io

User I/O待機クラスの待機に費やされた時間(100分の1秒単位)※2

なし

oracledb_tablespace_bytes

表領域によって消費された合計バイト数

tablespace: 表領域の名前

type: 表領域の中身

SELECT

dt.tablespace_name as tablespace,

dt.contents as type,

dt.block_size * dtum.used_space as bytes,

dt.block_size * dtum.tablespace_size as max_bytes,

dt.block_size * (dtum.tablespace_size - dtum.used_space) as free,

dtum.used_percent

FROM dba_tablespace_usage_metrics dtum, dba_tablespaces dt

WHERE dtum.tablespace_name = dt.tablespace_name

ORDER by tablespace

oracledb_tablespace_max_bytes

表領域の最大バイト数

tablespace: 表領域の名前

type: 表領域の中身

oracledb_tablespace_free

表領域の空きバイト数

tablespace: 表領域の名前

type: 表領域の中身

oracledb_tablespace_used_percent

表領域の使用率

自動拡張がONの場合,自動拡張を考慮したサイズで計算される。

tablespace: 表領域の名前

type: 表領域の中身

oracledb_exporter_last_scrape_duration_seconds

最後のスクレイプにかかった秒数

なし

-

oracledb_exporter_last_scrape_error

最後のスクレイプでエラーが発生したかどうか。

0: エラーが発生しなかった

1: エラーが発生した

なし

-

oracledb_exporter_scrapes_total

Oracle Databaseがスクレイプされた回数

なし

-

oracledb_up

Oracle Database Serverが起動しているかどうか。

0: 起動していない

1: 起動している

なし

-

注※1

PDB環境では,データ取得元のv$resource_limitのテーブルが空になるため,取得できません。

注※2

PDB環境では,データ取得元のv$waitclassmetricのテーブルが空になるため,取得できません。

重要
  • OracleDB exporterを使用する前に,データソースとなるSQL文をSQL*Plusコマンドなどで実行し,必要な情報が表示できることを確認してください。確認の際には,OracleDB exporterからOracle Databaseへの接続に使用するユーザーを使用してください。

  • JP1/IM - Agentが提供するOracleDB exporterは,任意のメトリック(カスタムメトリック)を収集する機能をサポートしていません。

■ Oracle Databaseを監視するための条件

OracleDB exporterでOracle Databaseを監視する場合,Oracle Databaseに次の設定が行われている必要があります。

JP1/IM - Agentホスト側にOracle Clientなどをインストールする必要はありません。

  • Oracleリスナー

    • Oracleリスナーとサービス名で監視対象に接続できるように設定する。

    • Oracleリスナーは暗号化なしの接続要求を受け付けるように構成する。

  • Oracle Database

    Oracle Databaseのデータベース・キャラクタ・セットには次のどれかを設定します。

    • AL32UTF8(Unicode UTF-8)

    • JA16SJIS(日本語SJIS)

    • ZHS16GBK(簡体字中国語GBK)

  • Oracle Databaseへのアクセスに使用するユーザー

    • Oracle Databaseへの接続に使用するユーザーに下記の権限を付与されている必要があります。

      ・ログイン権限

      ・次のテーブルへのSELECT権限

      dba_tablespace_usage_metrics

      dba_tablespaces

      v$system_wait_class

      v$asm_diskgroup_stat

      v$datafile

      v$sysstat

      v$process

      v$waitclassmetric

      v$session

      v$resource_limit

    • Oracle Databaseへの接続に使用するユーザー

      ユーザー名に指定できる文字種,最大長については,「■環境変数」を参照してください。

    • Oracle Databaseへの接続に使用するユーザーのパスワード

      パスワードに使用できる文字種を次に示します。

      ・英大文字,英小文字,数字,@+'!$:.()~-_

      ・パスワードの長さは1から30バイトまでです。

■ Oracle Databaseのパスワードの難読化

JP1/IM - Agentに同梱しているOracleDB exporterでは,OracleDB exporterからOracle Databaseにアクセスするためパスワードを,シークレット難読化機能で管理します。詳細については,「3.15.10 シークレット難読化機能」を参照してください。

■ Oracle Databaseのログファイルに関する注意事項

OracleDB exporterでOracle Databaseを監視すると,ログファイルが大量に生成される場合があります。そのため,Oracle Database管理者は,ログファイルを定期的に削除することを検討する必要があります。

ログファイルが生成されるディレクトリ

(サブディレクトリを含む)

増加するログファイルの拡張子

$ORACLE_BASE/diag/rdbms

.trc,.trm

下記に更新日が古い「.trc」または「.trm」ファイルを削除するためのコマンドラインの例を示します。必要に応じて,このようなコマンドを定期的に実行して不要なログを削除するなどを検討してください。

OS

ログを削除するコマンドラインの例

Windows

forfiles /P "%ORACLE_BASE%\diag\rdbms" /M *.trm /S /C "cmd /C del /Q @path" /D -14

forfiles /P "%ORACLE_BASE%\diag\rdbms" /M *.trc /S /C "cmd /C del /Q @path" /D -14

Linux

find $ORACLE_BASE/diag/rdbms -name '*.tr[cm]' -mtime +14 -delete

環境変数「$ORACLE_BASE」および「%ORACLE_BASE%」は必要に応じて設定してください。

■ 環境変数

OracleDB exporterを使用する場合は必須で設定する環境変数を,次に示します。

■環境変数「DATA_SOURCE_NAME」(必須)

OracleDB exporterの接続先を次の形式で指定します。デフォルトの値はありません。

  • Windowsの場合

oracle://ユーザー名@ホスト名:ポート/サービス名?connection timeout=10[&amp;instance name=インスタンス名]
  • Linuxの場合

oracle://ユーザー名@ホスト名:ポート/サービス名?connection timeout=10[&instance name=インスタンス名]
ユーザー名
  • Oracleリスナーに接続するためのユーザー名を指定します。最大30文字まで指定できます。

  • 英大文字,数字,アンダースコア,ドル記号,シャープ記号,ピリオド,アットマークを使用できます。英小文字は使用できないため,注意してください。

  • Linuxの場合,ユニット定義ファイルにユーザー名を記載するときに,シャープ記号を「%%23」に置き換えます。例えば,CDBの共通ユーザーの場合は,「C##USER」を「C%%23%%23USER」として指定します。

  • Windowsの場合,サービス定義ファイルにユーザー名を記載するときに,シャープ記号を「%23」に置き換えます。例えば,CDBの共通ユーザーの場合は,「C##USER」を「C%23%23USER」として指定します。

ホスト名
  • 監視対象のOracle Databaseホストのホスト名を指定します。最大253文字まで指定できます。

  • 英大文字,英小文字,数字,ハイフン,ピリオドを使用できます。

ポート
  • Oracleリスナーに接続するためのポート番号を指定します。

サービス名
  • Oracleリスナーのサービス名を指定します。最大64文字まで指定できます。

  • 英大文字,英小文字,数字,アンダースコア,ハイフン,ピリオドを使用できます。

オプション

次のオプションを指定できます。複数指定する場合は,Windowsでは「&amp;」,Linuxでは「&」でつなげます。

  • connection timeout=数字

    コネクションタイムアウトを秒数で指定します。このオプションの指定は必須です。

    必ず10を指定してください。10以外の値を指定,または,このオプションを指定しなかった場合は,Prometheus serverのスクレイプがタイムアウトとなり,OracleDB exporterが稼働している場合でもupメトリックが0になる場合があります。

  • instance name=インスタンス名

    接続するインスタンス名を指定します。このオプションの指定は任意です。

(指定例)

oracle://orauser@orahost:1521/orasrv?connection timeout=10
  • Windowsの場合

oracle://orauser@orahost:1521/orasrv?connection timeout=10&amp;instance name=orcl1
  • Linuxの場合

oracle://orauser@orahost:1521/orasrv?connection timeout=10&instance name=orcl1
■環境変数「DATA_SOURCE_NAME」(必須)

JP1/IM - Agentのインストール先ディレクトリ下のjp1imaディレクトリをフルパスで指定します。

論理ホストの場合は,JP1/IM - Agentの共有ディレクトリ下のjp1imaディレクトリをフルパスで指定します。

(指定例)

  • Windowsの場合

C:\Program files\Hitachi\jp1ima
  • Linuxの場合

/opt/jp1ima

■ 注意事項

  • OracleDB exporterを停止する前に,監視対象のOracle Databaseインスタンスおよびコンテナを停止しようとすると,OracleのNORMALシャットダウンでは終了しない場合があります。事前にOracleDB exporterを停止するか,IMMEDIATEシャットダウンでOracle Databaseを停止してください。

  • OracleDB exporterを停止してから,Oracle Databaseインスタンスおよびコンテナの構成変更やメンテナンスを実施してください。

(l) Fluentd(ログメトリクス機能)

監視対象が出力するログファイルからログメトリクスを生成・計測する機能です。機能の詳細については,「3.15.2 JP1/IM - Agentによるログメトリクス機能」を参照してください。

■ 主な取得項目

監視対象が出力するログファイルから数値化する定義は,ログメトリクス定義ファイル(fluentd_任意の名前_logmetrics.conf)で行います。定義によって数値化したデータ(ログメトリクス)が取得項目となります。

ログメトリクス定義ファイルの詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「ログメトリクス定義ファイル(fluentd_任意の名前_logmetrics.conf)」を参照してください。

■ サンプルファイル

ログメトリクス機能を使用する場合のサンプルファイルについて説明します。サンプルファイルをコピーして使用する場合は,改行コードに注意してください。改行コードについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「2. 定義ファイル」の各ファイルの説明を参照してください。このサンプルファイルは,下記の「■サンプルファイルの想定条件」に従うサンプルファイルであるため,実際の監視対象に応じて,各ファイルを複製し,設定値を書き換えてください。

■サンプルファイルの想定条件

ここで説明するサンプルファイルは,JP1/IM - Agentがインストールされている監視対象ホスト「HostA」(統合エージェントホスト)が存在し,HostAで稼働しているアプリケーション「WebAppA」が,次に示すログファイルを出力している場合を想定しています。

ControllerLog.log

対象ログメッセージ1に示すように,WebAppAのHTTPエンドポイントのリクエスト処理の開始時に,そのエンドポイントを利用するというログメッセージが出力される。ログメッセージには,リクエスト処理時に取り扱うレコードの数も出力されている。

<対象ログメッセージ1>

:
2022-10-19 10:00:00 [INFO] c.b.springbootlogging.LoggingController : endpoint "/register" started. Target record: 5.
:

サンプルファイルでは,ログメッセージの正規表現を指定することで,対象ログメッセージ1と合致するログメッセージの数を計上し,ログメトリクス1「registerへのリクエスト数」として,JP1/IMの統合オペレーション・ビューアーの[トレンド]タブに表示する。

このログメトリクス1の定義では,ログメトリクスタイプとしてcounterを利用する。

また,ログメッセージの正規表現を指定することで,対象ログメッセージ1から「Target record」の数を抽出して累計し,ログメトリクス2「登録されたレコード数」として,JP1/IMの統合オペレーション・ビューアーの[トレンド]タブに表示する。

このログメトリクス2の定義では,ログメトリクスタイプとしてcounterを利用する。

Fluentdのworker(複数プロセス起動機能)は,監視対象とするログファイルの数だけ用意します。ログメトリクス機能に関するworkerの設定については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「ログメトリクス定義ファイル(fluentd_任意の名前_logmetrics.conf)」を参照してください。ここでは,Fluentdのworkerが11個起動しているものとし,ControllerLog.logをFluentdの「workerのid」が10のworkerで監視しているものとします。

また,サンプルファイルでは,次に示すIM管理ノードのツリーを想定しています。

All Systems
└ ホストA
  └ Application Server
   └ WebAppA
■サンプルファイルの対象ファイル

サンプルファイルの対象ファイルを次に示します。

  • 統合マネージャーホスト

    ・ユーザー独自のメトリック定義ファイル

  • 統合エージェントホスト

    ・Prometheus設定ファイル

    ・ユーザー独自のディスカバリ設定ファイル

    ・ログメトリクス定義ファイル

    ・Fluentdのログ監視対象定義ファイル

■「ユーザー独自のメトリック定義ファイル」のサンプルファイル

・ファイル名:metrics_logmatrics1.conf

・記述内容

[
  {
    "name":"logmetrics_request_endpoint_register",
    "default":true,
    "promql":"logmetrics_request_endpoint_register and $jp1im_TrendData_labels",
    "resource_en":{
      "category":"HTTP",
      "label":"request_num_of_endpoint_register",
      "description":"The request number of endpoint register",
      "unit":"request"
    },
    "resource_ja":{
      "category":"HTTP",
      "label":"registerへのリクエスト数",
      "description":"The request number of endpoint register",
      "unit":"リクエスト"
    }
  },
  {
    "name":"logmetrics_num_of_registeredrecord",
    "default":true,
    "promql":"logmetrics_num_of_registeredrecord and $jp1im_TrendData_labels",
    "resource_en":{
      "category":"DB",
      "label":"logmetrics_num_of_registeredrecord",
      "description":"The number of registered record",
      "unit":"record"
    },
    "resource_ja":{
      "category":"DB",
      "label":"登録されたレコード数",
      "description":"The number of registered record",
      "unit":"レコード"
    }
  }
]

格納先ディレクトリ,記述内容,およびファイル名は,「ユーザー独自のメトリック定義ファイル(metrics_任意のPrometheusトレンド名.conf)」の形式に従っています。

■「Prometheus設定ファイル」のサンプルファイル

・ファイル名:jpc_prometheus_server.yml

・記述内容

global:
 :
(略)
 :
scrape_configs:
  - job_name: 'LogMetrics'
    
    file_sd_configs:
      - files:
        - 'user/user_file_sd_config_logmetrics.yml'
    
    relabel_configs:
      - target_label: jp1_pc_nodelabel
        replacement: Log trapper(Fluentd)
    
    metric_relabel_configs:
      - target_label: jp1_pc_nodelabel
        replacement: ControllerLog
      - source_labels: ['__name__']
        regex: 'logmetrics_request_endpoint_register|logmetrics_num_of_registeredrecord'
        action: 'keep'
      - regex: (jp1_pc_multiple_node|jp1_pc_agent_create_flag)
        action: labeldrop
 
 :
(略)
 :

格納先ディレクトリおよび記述内容は,「Prometheus設定ファイル(jpc_prometheus_server.yml)」の形式に従っています。新規にファイルを作成する必要はなく,インストール時に生成されるPrometheus設定ファイル(jpc_prometheus_server.yml)に,ログメトリクス機能のためのscrape_configsの定義を追加します。

■「ユーザー独自のディスカバリ設定ファイル」のサンプルファイル

・ファイル名:user_file_sd_config_logmetrics.yml

・記述内容

- targets:
  - HostA:24830
  labels:
    jp1_pc_exporter: logmetrics
    jp1_pc_category: WebAppA
    jp1_pc_trendname: logmetrics1
    jp1_pc_multiple_node: "{__name__=~'logmetrics_.*'}"
    jp1_pc_agent_create_flag: false

格納先ディレクトリおよび記述内容は,「ユーザー独自のディスカバリ設定ファイル(file_sd_config_任意の名前.yml)」の形式に従っています。

targetsのポート番号は,ControllerLog.logをFluentdの「workerのid」 が10のworkerで監視しているため,下記の「■「ログメトリクス定義ファイル」のサンプルファイル」のportで設定した「24820」に対して,ControllerLog.logを監視しているworkerのポート番号が24820+10=24830となります。

■「ログメトリクス定義ファイル」のサンプルファイル

ファイル名:fluentd_WebAppA_logmetrics.conf

・記述内容

## Input
<worker 10>
  <source>
    @type prometheus
    bind '0.0.0.0'
    port 24820
    metrics_path /metrics
  </source>
</worker>
##対象ログメッセージ1の抽出
<worker 10>
  <source>
    @type tail
    @id logmetrics_counter
    path /usr/lib/WebAppA/ControllerLog/ControllerLog.log
    tag WebAppA.ControllerLog
    pos_file ../data/fluentd/tail/ControllerLog.pos
    read_from_head true
    <parse>
      @type regexp
      expression /^(?<logtime>[^\[]*) \[(?<loglebel>[^\]]*)\] (?<class>[^\[]*) : endpoint "\/register" started. Target record: (?<record_num>\d[^\[]*).$/
      time_key logtime
      time_format %Y-%m-%d %H:%M:%S
      types record_num:integer
    </parse>
  </source>
 
## Output
##ログメトリクス1とログメトリクス2の定義
  <match WebAppA.ControllerLog>
    @type prometheus
    <metric>
      name logmetrics_request_endpoint_register
      type counter
      desc The request number of endpoint register
    </metric>
    <metric>
      name logmetrics_num_of_registeredrecord
      type counter
      desc The number of registered record
      key record_num
      <labels>
      loggroup ${tag_parts[0]}
      log ${tag_parts[1]}
      </labels>
    </metric>
  </match>
</worker>

格納先ディレクトリおよび記述内容は,「ログメトリクス定義ファイル(fluentd_任意の名前_logmetrics.conf)」の形式に従っています。

■「Fluentdのログ監視対象定義ファイル」のサンプルファイル

・ファイル名:jpc_fluentd_common_list.conf

・記述内容

## [Target Settings]
 :
(略)
 :
@include user/fluentd_WebAppA_logmetrics.conf

格納先ディレクトリおよび記述内容は,「JP1/IM - Agentの定義ファイル」の「Fluentdのログ監視対象定義ファイル(jpc_fluentd_common_list.conf)」の形式に従っています。新規にファイルを作成する必要はなく,インストール時に生成されるFluentdのログ監視対象定義ファイル(jpc_fluentd_common_list.conf)に,ログメトリクス機能のためのincludeの定義を追加します。

(m) Webシナリオ監視機能

JP1/IM - ManagerおよびJP1/IM - Agentのバージョン13-10以降では,Webシナリオ監視機能を使用できます。

Webシナリオ監視機能は,外形監視機能の1つです。Webブラウザーでのユーザー操作の操作再生時間を監視します。監視範囲は,初期画面およびログインからログオフまでの一連の操作のHTTP(S)通信です。HTTP(S)通信をベースに,HTML,json,xmlなどを組み合わせた通信を多数発行するWebコンテンツに対する稼働監視を行います。Blackbox exporterによる外形監視機能(単発のHTTP(S)監視)では行えない,ユーザーの操作視点での監視を行うことができます。

注※

JP1/IM - Managerを13-10より前のバージョンから13-10以降にバージョンアップした環境で,Webシナリオ監視機能を使用する場合,Webシナリオ監視機能を使用するための設定が必要です。JP1/IM - Managerのセットアップ手順については,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「1.21.2(13)(a) JP1/IM - Agentのセットアップ」の「環境変数の設定」および「Web exporterの設定」を参照してください。

■ 前提条件

Webシナリオ監視機能を使用する場合,次の前提条件があります。

  • 前提ブラウザー

    Webシナリオの作成および監視を行うホストには,次のブラウザーを事前にインストールする必要があります。

    • Google Chrome

    • Microsoft Edge

    また,上記のブラウザーから監視対象にアクセスできる必要があります。

    上記のブラウザーは,Webシナリオの作成,および,Webシナリオを使用したWebシナリオ監視で使用します。

  • エージェントホスト

    Webシナリオを作成するホスト,および,Webシナリオの監視を行うホストは,同一とすることを推奨します。

    Webシナリオファイルを別ホストに移行する場合は,マニュアル「JP1/Integrated Management 3 - Manager 運用ガイド」の「1.5.1(9)(c) Webシナリオファイルの別ホストへの移行」の手順を実施する必要があります。

    また,Webシナリオ監視機能を使用できるエージェントホストは,Windows版JP1/IM - AgentをインストールしたWindowsホストだけです。

  • Web exporter

    Web exporterが使用する待ち受けポートには,JP1/IM - AgentのPrometheus server以外からアクセスされないように,ファイアウォールやネットワーク構成などで保護する必要があります。Web exporterが使用するポートについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「サービス定義ファイル(jpc_プログラム名_service.xml)」(2. 定義ファイル)の,「web_exporterコマンドのオプション」の説明を参照してください。

■ ネットワーク構成

ユーザー操作のWebシナリオに沿って監視するため,監視対象のWebコンテンツを利用するユーザーに近いネットワーク上のホストに,JP1/IM - Agentをインストールすることを推奨します。JP1/IM - Agentから監視対象までのネットワーク経路が,Webコンテンツを利用するユーザーと大きく異なると,中継機器の故障などによる監視異常を検知しにくくなります。

■ 機能一覧

Webシナリオ監視機能は,ユーザーのブラウザー画面での操作を自動再生し,再生時間を計測することで,ユーザーの体感上のレスポンスタイムを監視する機能です。

Webシナリオ監視機能は,Web操作のシナリオに基づいたWeb操作のレスポンスのパフォーマンス情報を収集するWeb稼働情報収集機能と,Web操作のシナリオ(Webシナリオ)の作成を支援するWebシナリオ作成支援機能で構成されます。

表3‒37 機能一覧

機能

説明

Webシナリオ監視機能

収集したWeb操作のレスポンスのパフォーマンス情報から,Webシステムの監視を実現します。

Webシナリオ作成支援機能

Web操作のシナリオ作成を支援します。

Webシナリオ作成機能

ブラウザーを起動して,Webシナリオを作成します。

Web稼働情報収集機能

Web操作のシナリオに基づき,Web操作のレスポンスのパフォーマンス情報を収集します。

Web稼働情報収集機能を提供するWeb exporterを使用します。

Webシナリオ実行機能

作成されたWebシナリオどおりに,Web操作を実行します。

トレースビューアー機能

Webシナリオ実行で異常を検知した場合の調査に使用するトレース情報を表示します。

■ Webシナリオ作成支援機能

Webシナリオ作成支援機能は,Webシナリオ作成機能を起動すると,ブラウザーを起動し,ユーザーがブラウザーで操作した内容を,Webシナリオとして記録します。

■作成できるシナリオ

次の操作を記録したWebシナリオを使用して,Webコンテンツを監視できます。

  • トップページを表示する操作

    トップページを表示する操作だけです。ほかの操作は特にありません。

  • ログイン画面でログオンするための操作

    ユーザー名とパスワードを入力し,ログオンボタンをクリックする操作です。

  • ログオフ画面でのログオフボタンの操作

■ Webシナリオ作成機能(playwright codegen)

Webシナリオ作成機能は,Web操作のシナリオ(Webシナリオ)の作成を支援する機能を提供します。Webシナリオ作成機能は,OSSのPlaywrightを使用しています。

■前提条件

ユーザーがplaywrightコマンドを手動で実行する際は,カレントフォルダをPlaywrightの作業フォルダとする必要があります。Playwrightの作業フォルダについては,「付録A.4(3) 統合エージェントホスト(Windows)」を参照してください。

Administrators権限(WindowsのUAC機能が有効な場合は管理者コンソールから実行)を持つユーザーで実行する必要があります。

■Codegenの開始

Webシナリオ作成機能は,PlaywrightのCodegenを使用します。

Codegenを実行するユーザーは,Web exporterの実行ユーザーと同一ユーザーにする必要があります。

playwright codegenコマンドを使用して,Webシナリオ作成機能を実行します。

playwright codegenコマンドは,Webサイトのページを開いて,ユーザーの操作に応じてコードを生成するコマンドです。ユーザーがターミナル上で実行できます。

Webシナリオ作成機能が起動すると,レコーディングが開始します。

npx playwright codegen --target playwright-test --channel チャネル --lang ロケール URL -o ./tests/Webシナリオファイル名

Codegenを実行すると,監視対象のWebサイトとやり取りをするためのブラウザーのウィンドウと,Webシナリオコードの記録を行うPlaywright Inspectorの2つのウィンドウが開きます。

ユーザーがCodegenを実行し,ブラウザーで操作を実行すると,Playwrightは,操作に応じてコードを生成します。

playwright codegenコマンドに指定するパラメーターの詳細については,次に示す表を参照してください。

  • npx playwright codegenコマンドのオプション

    項目名

    説明

    変更可否

    JP1/IM - Agentでユーザーが設定する内容

    JP1/IM - Agentの初期値

    -o ファイル名

    または

    --output ファイル名

    生成したスクリプトをファイルに保存します。

    出力先のWebシナリオファイルのファイル名のパスを,コマンド実行ディレクトリからの相対パスで指定します。

    指定しない場合,Codegenの終了時に,スクリプトは破棄されます。生成したスクリプトは,ユーザーがテキストファイルなどにコピーする必要があります。

    ファイル名には,次の規則があります。

    • ファイル名は「文字列.spec.ts」の形式で指定する必要があります。

    • ファイル名に使用できる文字は,半角英数字とアンダースコア(_)だけです。

    • パラメーターに指定できるバイト数の上限は256バイトです。

    • ネットワークドライブ上のフォルダおよびファイルは指定できません。指定した場合,ネットワークの障害や遅延の際に,動作を保証できません(Windowsの場合)。

    • 次のようなパス名は指定できません。

      ・先頭が「-」(ハイフン)のファイル名

      ・環境依存文字を含むフォルダ名またはファイル名

    存在しないファイルを指定した場合は,新規にファイルが作成されます。

    既に存在するファイル名を指定した場合は,ファイルが上書きされます。

    出力したWebシナリオファイルの格納先については,「付録A.4(3) 統合エージェントホスト(Windows)」を参照してください。

    ./tests/Webシナリオファイル名

    --target 言語

    スクリプト生成時の言語を選択します。

    なし

    なし

    --channel チャネル

    Chromiumのディストリビューションチャネルを指定します。

    Codegenを実行する場合のブラウザーとして,次のどちらかを指定します。

    • "chrome"

      Google Chromeを使用する場合に指定します。

    • "msedge"

      Microsoft Edgeを使用する場合に指定します。

    なし

    --lang 言語

    言語とロケールを指定します。

    <指定例>

    "ja-JP"

    テスト実行時の言語コードに合わせて,次のどれかを指定します。

    • "en-US"

    • "ja-JP"

    • "zh-CN"

    • "th"

    指定しない場合,テスト実行時の言語コードと異なる言語コードでWebシナリオが生成され,本来成功するWebシナリオが失敗することがあります。

    なし

    --proxy-server プロキシ

    プロキシサーバを指定します。

    <指定例>

    "http://myproxy:3128"

    "socks5://myproxy:8080"

    リクエストに使用されるプロキシを指定します。

    ドメイン全体を253文字以内の半角英数字で指定します。

    なし

    --proxy-bypass バイパスプロキシ

    バイパスするプロキシのコンマ区切りのドメインを指定します。

    <指定例>

    ".com,chromium.org,.domain.com"

    プロキシの迂回用のドメインを253文字以内の半角英数字で指定します。

    なし

    URL

    監視対象のURLを指定します。

    ドメイン全体を253文字以内の半角英数字で指定します。

    URLは次の形式で指定します。

    プロトコル://ホスト名:ポート番号

    なし

(凡例)

◎:設定必須 〇:変更可 △:変更不可

■画面操作の記録

マウスのクリック,文字入力,HTML操作などの操作を記録する場合は,レコーディングが開始済みの状態で,記録したい操作をブラウザーのウィンドウ上で実施します。操作に合わせて,WebシナリオコードがPlaywright Inspectorのウィンドウ上に生成されます。

Webシナリオとして記録し計測できるブラウザーの操作や動作を,次の表に示します。

表3‒38 Webシナリオとして記録し計測できるブラウザーの操作や動作

分類

操作

記録

備考

codegenが記録するコードの例

マウス操作

マウス操作そのものは記録しないが,マウス操作によって発生するボタン操作などとして記録されます。

クリック

await page.getByRole('button', { name: 'ログイン' }).click();

ダブルクリック

await page.getByRole('button', { name: 'クリア' }).dblclick();

副ボタンクリック

await page.locator('body').click({

button: 'right'

});

キーボード操作(キー入力操作)

文字入力

入力中の値はリアルタイムで反映されます。入力後の値がHTML操作などとして記録されます。

await page.locator('input[name="username"]').fill('username');

ショートカットキー入力

ブラウザー操作と同じです。

ブラウザー操作と同じです。

アクセラレートキー入力

その他のキー入力

ブラウザー操作

次の項目移動

[TAB]

HTML内の要素が選択されている場合だけ記録されます。

await page.locator('body').press('Tab');

前の項目移動

[Shift]+[TAB]

await page.locator('body').press('Shift+Tab');

次のページへ移動

[Alt]+[→]

キーボード操作は無効です。ページ遷移は記録されます。

await page.goto('URL');

前のページへ移動

[Alt]+[←]

[BackSpace]

コンテキストメニュー表示

[右クリック]

[Shit]+[F10]

await page.locator('body').press('Shift+F10');

上スクロール

[↑]

await page.locator('body').press('ArrowUp');

下スクロール

[↓]

await page.locator('body').press('ArrowDown');

ページ上スクロール

[PageUP]

await page.locator('body').press('PageUp');

ページ下スクロール

[PageDown]

await page.locator('body').press('PageDown');

ページ先頭へ移動

[HOME]

await page.locator('body').press('Home');

ページ末尾へ移動

[END]

await page.locator('body').press('End');

中止操作

[ESC]

await page.locator('body').press('Escape');

リンククリック操作[Enter]

[クリック]

HTML操作のリンク操作と同じです。ページ遷移は記録されます。

HTML操作のリンク操作と同じです。

複数選択操作

[Ctrl]+[クリック]

await page.getByRole('listbox').selectOption(['apple', 'banana', 'orange']);

切り取り

[Ctrl]+[X]

await page.locator('body').press('Control+x');

コピー

[Ctrl]+[C]

await page.locator('body').press('Control+c');

貼り付け

[Ctrl]+[V]

await page.locator('body').press('Control+v');

すべて選択

[Ctrl]+[A]

await page.locator('body').press('Control+a');

ダイアログ操作

操作そのものは記録できないことがありますが,ページ遷移は記録します。

await page.goto('URL');

テキスト入力

※1

ボタン操作

※1

その他の入力項目

※1

HTML操作

入力操作,ページ遷移に関係する操作を記録します。

リンク操作

INPUT TEXT操作(テキスト入力)

await page.getByLabel('Name (4 to 8 characters):').fill('test');

INPUT PASSWORD操作(パスワード入力)

await page.getByLabel('パスワード(8文字以上):').fill('pwdtest1');

INPUT CHECKBOX

await page.getByRole('checkbox').check();

INPUT RADIO

await page.getByLabel('リンゴ').check();

INPUT SUBMIT

await page.getByRole('button', { name: '送信' }).click();

INPUT RESET

await page.getByRole('button', { name: 'フォームをリセット' }).click();

INPUT BUTTON

await page.getByRole('button', { name: 'テスト' }).click();

スクリプト操作

ページ遷移,HTML操作,ボタン操作を伴わないスクリプトの内部処理は記録しませんが,スクリプトの処理によって発生するページ遷移,HTML操作,ボタン操作を記録します。※2

ページ遷移操作

スクリプトの内部で実装している操作そのものは記録できないことがありますが,ページ遷移は記録します。

(凡例)

「操作」欄 〇:操作できる −:該当しない

「記録」欄 〇:記録対象 −:該当しない

上記以外 −:該当しない

注※1

ダイアログに入力された値やボタン押下による操作結果をもとに記録しますが,ダイアログによっては正しく記録できないことがあります。必ず,Webシナリオ作成後に実行を行い,正しく実行できるかどうかを確認してください。

ダイアログが開いたまま停止するなどして,正しくWebシナリオ実行が進まないダイアログには対応できません。

注※2

スクリプトの処理によって発生するページ遷移,HTML操作,ボタン操作のタイミングによっては,記録できないこともあります。

必ず,Webシナリオ作成後に実行を行い,正しく実行できるかどうかを確認してください。

上記の表に記載のない操作や動作については,Webシナリオとして記録し計測することはできません。

なお,ダイアログ表示による認証(テキスト入力がユーザーIDとパスワード以外のもの),およびActiveXコントロール内での認証には対応していません。また,ftpプロトコルをサポートしていません。

■アサートの記録

アサートとは,Webサイトに表示される要素が,期待する内容と一致するかをチェックする操作のことです。Codegenを実行してWebシナリオを作成している際に,ブラウザーのウィンドウに表示される要素をクリックして,Webシナリオにアサートを追加すると,Webシナリオ実行時にブラウザーのウィンドウ上に表示される要素が,Codegenの実行時にブラウザーのウィンドウ上に表示されていた要素と一致するかどうかを判定します。

アサートには,次の種類があります。

  • assert visibility

    要素が存在することをアサートします。

  • assert text

    要素に特定のテキストが含まれていることをアサートします。

  • assert value

    要素に特定の値があることをアサートします。

Webシナリオにアサートを追加する場合は,assert visibility,assert text,assert valueのどれかのボタンをクリックし,アサート対象の要素をブラウザーのウィンドウ上で選択します。選択した要素に対して,アサートを実行するコードがPlaywright Inspectorのウィンドウ上に生成されます。

■レコーディングの一時停止

レコーディングを一時停止する場合は,Recordボタンをクリックします。Recordボタンを再度クリックすると,レコーディングが再開します。

■生成したWebシナリオコードの保存

Webシナリオ作成機能を終了すると,Webシナリオ作成機能の開始時にコマンドラインのオプションで指定したWebシナリオファイルに,生成したWebシナリオが保存されます。

■Codegenの終了

Webシナリオ作成機能を終了するときは,playwright codegenコマンドを実行したターミナルで,[Ctrl]+[C]キーを押して終了するか,Webシナリオ作成機能の起動時に開いたブラウザーのウィンドウを閉じます。

■Codegen画面の構成

playwright codegenコマンドを使用して,Webシナリオ作成機能を実行すると,次の画面が表示されます。

  • ブラウザーのウィンドウ

    Webシナリオの実行対象のWebサイトが表示されます。クリックや入力の操作を,Webページを操作することで記録します。

    Webページの操作の記録に使用するボタンと操作方法を,次の表に示します。詳細については,Playwrightのドキュメントを参照してください。

    項番

    ボタン

    操作方法

    1

    タブを移動させる際に,このボタンをドラッグします。

    2

    Record

    このボタンをクリックすると,レコーディングを停止または再開します。

    3

    assert visibility

    このボタンをクリックしてから,要素が可視であることをアサートする要素を選択します。

    再度このボタンをクリックすると,通常の操作記録に戻ります。

    4

    assert text

    このボタンをクリックしてから,要素に特定のテキストが含まれていることをアサートする要素を選択します。

    再度このボタンをクリックすると,通常の操作記録に戻ります。

    5

    assert value

    このボタンをクリックしてから,要素に特定の値があることをアサートする要素を選択します。

    再度このボタンをクリックすると,通常の操作記録に戻ります。

  • Playwright Inspectorのウィンドウ

    Webシナリオのレコーディングができます。

    Webシナリオのレコーディングに使用するボタンと操作方法を,次に示します。詳細については,Playwrightのドキュメントを参照してください。

    項番

    ボタン

    操作方法

    1

    Record

    「ブラウザーのウィンドウ」と同じです。

    2

    assert visibility

    「ブラウザーのウィンドウ」と同じです。

    3

    assert text

    4

    assert value

■注意事項

  1. Webシナリオ作成機能で作成されるWebシナリオを使用して,HTTPのステータスコードを使用した判定はできません。そのため,「404 "Not Found"」や「500 "内部サーバー エラー"」が返却された場合,Webページへの遷移が成功したと判定されることがあります。

  2. Webシナリオ作成機能で,Webページが遷移することを確認する場合,次のようなWebシナリオを使用したときは,ページ遷移の成功または失敗を感知できません。

    <確認したい動作の例>

    統合オペレーション・ビューアーのログインページ(URL:'http://ホスト名:20703/login')で,登録済みのユーザー名パスワードを入力して,正常にログインできることを確認します。

    <CodegenがWebシナリオに出力するコードの例(一部)>

    test('test', async ({ page }) => {
      await page.goto('http://ホスト名:20703/login');
      await page.locator('input[name="username"]').fill('ユーザー名');
      await page.locator('input[name="password"]').fill('パスワード');
      await page.getByRole('button', { name: 'ログイン'}).click();
    });

    上記のWebシナリオを再生した場合,[ログイン]ボタンをクリックする操作を再生したあと,ログイン後の画面に遷移したかどうかにかかわらず,再生を終了します。そのため,ページ遷移の成功または失敗を感知できません。

    ページ遷移が成功したことを確認する対策は,次のとおりです。

    Codegenのアサートを使用して,ページ遷移後に,そのページに独自の要素が表示されていることをアサートする操作を追加します。

    アサートの記録方法については,「■アサートの記録」を参照してください。

    上記の例を修正したWebシナリオの例を,次に示します。

    <CodegenがWebシナリオに出力するコードの例(一部)>
    test('test', async ({ page }) => {
      await page.goto('http://ホスト名:20703/login');
      await page.locator('input[name="username"]').fill('ユーザー名');
      await page.locator('input[name="password"]').fill('パスワード');
      await page.getByRole('button', { name: 'ログイン' }).click();
      await expect(page.getByRole('button', { name: 'ログアウト' })).toBeVisible();
    });

    上記の修正したWebシナリオの例では,ログインの処理後に遷移するページに,そのページで表示されるはずの[ログアウト]ボタンが表示されていることをアサートする操作を追加しています。[ログアウト]ボタンのアサートに失敗した場合は,ログイン後のページ遷移が失敗したことを検知できます。

  3. CodegenでURLの遷移を記録するとき,指定したURLでアクセスした際に,別の新しいURLへ転送(リダイレクト)された場合,リダイレクト元へのURL遷移は記録されず,リダイレクト先へのURL遷移だけが記録されることがあります。

    指定したURLのサーバによって,別のURLへリダイレクトされる動作をCodegenで記録した場合は,リダイレクト元から先へのリダイレクトを監視範囲に含めることができません。

    注※

    HTTPステータスコード(300番台)とLocationヘッダーフィールドを使用したHTTPプロトコルで実現するリダイレクトを指します。

    リダイレクト元へのURL遷移は記録されず,リダイレクト先へのURL遷移だけが記録される例を,次に示します。

    • 監視対象サイトの移転などにより,サーバがURLから新しいURLへリダイレクトさせる場合

    • Codegenで指定したURLの末尾にスラッシュ(/)が抜けており,サーバが自動的にスラッシュを追加して正しいURLにリダイレクトした場合

    なお,次に示すようなHTTPプロトコルが関与しないリダイレクトについては,この注意事項に該当せず,リダイレクト元のURL遷移とリダイレクト先のURL遷移が記録されます。

    • HTMLの<meta>要素を使用するHTMLリダイレクト

    • JavaScriptなどのクライアントスクリプトによって,window.locationプロパティにURL文字列を設定することで実行される,JavaScriptのリダイレクト

■ Web稼働情報収集機能(Web exporter)

Web稼働情報収集機能(Web exporter)は,Prometheus serverからのスクレイプ要求を契機に,Webシナリオ実行機能で,事前に作成したWebシナリオファイルのシナリオを実行し,実行結果をスクレイプ結果として返信します。シナリオ実行時の詳細な動きはトレースとして出力し,トレースビューアー機能でユーザーが閲覧できます。

■取得項目

Web exporter(Web稼働情報収集機能)で取得できるメトリックは,probe_webscena_success(稼働情報の収集の成否※1)とprobe_webscena_duration_seconds(Webシナリオの実行にかかった秒数※2)です。

注※1

収集のための準備(プロセス起動など)を含めた収集全体の成否を意味します。

注※2

収集に失敗した場合,メトリックの値を取得できないことがあります。

Web exporterの取得項目は,Web exporterのメトリック定義ファイル(metrics_web_exporter.conf)で定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Web exporterのメトリック定義ファイル(metrics_web_exporter.conf)」(2. 定義ファイル)を参照してください。

■監視対象を一時的に停止する場合の監視について

停電やメンテナンスで,監視対象を一時的に停止する間,異常検知を抑止するには,該当する監視対象に対する稼働情報の収集を停止する必要があります。

稼働情報の収集は,Web exporterのディスカバリ設定ファイル(jpc_file_sd_config_web.yml)のtargetsで該当する監視対象を削除することで停止できます。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Web exporterのディスカバリ設定ファイル(jpc_file_sd_config_web.yml)」(2. 定義ファイル)を参照してください。

■ Webシナリオ実行機能

playwrightを使用して,Webシナリオ実行機能を実行します。

Playwright exporter設定ファイルに,Webシナリオ実行機能に関するパラメーターを指定します。

Playwright設定ファイルについては,マニュアル「JP1/Integrated Management 3 - Managerコマンド・定義ファイル・APIリファレンス」の「Playwright設定ファイル(jpc_playwright.config.ts)」(2. 定義ファイル)を参照してください。

■トレース

Webシナリオ実行機能では,Webシナリオ実行時のトレースを,次に示すWeb exporterのトレースファイルに出力します。Webシナリオファイル内の各操作の実行結果やHTTP通信のトレースが出力されます。

  • 物理ホストの場合

    Agentパス\logs\web_exporter\trace\Webシナリオファイル名-test-プロジェクト名-リトライ回数_世代番号\trace.zip

  • 論理ホストの場合

    共有フォルダ\jp1ima\logs\web_exporter\trace\Webシナリオファイル名-test-プロジェクト名-リトライ回数_世代番号\trace.zip

Webシナリオファイル名

Webシナリオファイル名の末尾が「.spec.ts」である場合は,「.spec.ts」を除いた文字列が格納されます。

プロジェクト名

Playwright設定ファイルのnameパラメーターに指定した文字列が格納されます。

空白,制御文字,および次の文字は,「-」(ハイフン)に変換されます。

! " # $ % & ' ( ) * + , . / : ; < = > ? @ [ \ ] ^ _ { | } ~

リトライ回数

Playwright設定ファイルのretriesパラメーターの値が1以上の場合に使用されます。Webシナリオ実行失敗時のリトライ回数に応じて,retry1retry2retry3,・・・の文字列が格納されます。

-リトライ回数」の部分は,リトライをしたときにだけ付与されます。そのため,スクレイプごとのWebシナリオ初回実行時のトレースには付与されません。

世代番号

4桁の数字が格納されます。

保存するトレースの世代数については,「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Web exporter設定ファイル(jpc_web_exporter.yml)」(2. 定義ファイル)の項目「tracenum」を参照してください。

トレースのファイルサイズは数MBです(監視対象のコンテンツの内容によって大きく異なります)。インテリジェント統合管理基盤へのログイン・ログオフを行うWebシナリオの場合は,1シナリオ当たり約2MBです。6分間隔で2000世代,リトライ回数0を保持した場合(デフォルト),約4GBのディスク容量が必要になります。

■トレースビューアー

Web exporterのトレースファイルは,トレースビューアーで参照できます。

トレースビューアーは,異常を検知したときの詳細を調査するときに使用します。

トレースビューアーの詳細については,「3.15.1(1)(n)トレースビューアー機能(playwright show-trace)」を参照してください。

■ ほかの監視機能を組み合わせた監視について

Webシナリオ監視機能は,Webコンテンツに対して,ユーザー視点での監視を行えますが,HTTP通信に関する細かい監視(名前解決の時間や証明書の有効期限)や監視対象側の内部の監視は実施できません。そのため,異常が発生した場合,Webシナリオ監視機能で取得するメトリックの情報だけでは,原因の調査はできません。

上記に対処するには,例えば,Blackbox exporterの外形監視によるHTTP通信の監視や,Fluentdのログ監視機能による監視対象側の内部(HTTPサーバやDBサーバ)の監視を併用する必要があります。

■ TLS通信で使用する公開鍵基盤(PKI:Public Key Infrastructure)の証明書の扱いについて

監視対象がHTTPSサーバの場合,下記の証明書をOSに登録してください(Windowsの場合は証明書ストアに登録します)。

  • サーバ証明書を発行した認証局のCA証明書

  • クライアント証明書(HTTPSサーバがTLSハンドシェイク時にクライアント証明書を要求する場合)および秘密鍵

OSへの登録方法については,ご使用のOSのドキュメントを参照してください。

■ パスワードを使用するHTTP認証を行うWebシナリオについて

監視対象のWebコンテンツが,ユーザー名とパスワードによるHTTP認証(Basic認証など)を必要とする場合,Webシナリオ作成機能のURLの入力欄に,ユーザー名とパスワードを次のように入力してください。

http://ユーザー名:パスワード@ドメイン名:ポート/Webコンテンツのパス

■ パスワードの扱いについて

HTTP認証およびWebコンテンツ独自の認証(入力フォームでユーザー名とパスワードの入力を要求する場合)で使用するパスワードは,Web exporter設定ファイル,Webシナリオファイル,およびトレースファイルに格納されます。障害調査の資料として依頼先に提供するときは,ユーザーがパスワード部分を別の文字列に置き換えるなどのマスキングをして,漏洩しないように対処してください。

■ HTTPプロキシの設定

JP1/IM - Agentホストから監視対象に通信するために,HTTPプロキシサーバを設定するときは,Playwright設定ファイル(jpc_playwright.config.ts)の項目「proxy」を設定してください。

Playwright設定ファイルの詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Playwright設定ファイル(jpc_playwright.config.ts)」(2. 定義ファイル)を参照してください。

設定ファイルの編集方法については,マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「1.19.3(1)(a) 共通の設定方法」の「設定ファイルを編集する(Windowsの場合)」を参照してください。

■ Webシナリオの確認について

Webシナリオ監視機能では,Webシナリオを単独でテストする機能は提供していません。実際にWebシナリオの監視を行い,正常に監視できることを確認してください。正常か否かは,probe_webscena_successのメトリックを参照してください。

■ タイムアウトの設定とタイムアウトになったときのユーザー作業について

Webシナリオ作成支援機能では,長すぎる稼働情報の収集(Webシナリオ実行時間の収集)に対して,タイムアウトによる中断を行います。

タイムアウトに関するパラメーターを次に示します。

設定個所

パラメーター名

Prometheus設定ファイル(jpc_prometheus_server.yml)※1

scrape_timeout(スクレイプ要求のタイムアウト時間)

web_exporterコマンドのオプション※2

--timeout-offset(Prometheusのscrape_timeoutの値から減算する秒数(タイムアウト時間から差し引くオフセット))

0.5秒で固定です。ユーザーは変更できません。

注※1

Prometheus設定ファイルのパラメーターについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Prometheus設定ファイル(jpc_prometheus_server.yml)」(2. 定義ファイル)を参照してください。

注※2

web_exporterコマンドのオプションについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「サービス定義ファイル(jpc_プログラム名_service.xml)」(2. 定義ファイル)を参照してください。

タイムアウトの設定は必ず適用され,タイムアウト時間を超過したときに収集は中断されます。そのため,収集が中断されずに無限に継続されることはありません。

タイムアウト時間は,scrape_timeoutの時間から--timeout-offset(0.5秒)を減算した時間となります。

このタイムアウト時間は,稼働情報の収集に必要な処理の実行時間を含んだ時間である必要があります。稼働情報の収集には,Webシナリオに従ったWebコンテンツの操作(ブラウザー操作)を含みます。

実際には,ブラウザーやそのほかのプロセスの起動処理があるため,実際のWebシナリオ実行にかかる時間より30秒ほど多めにタイムアウトを設定することを推奨します。

なお,タイムアウトで処理が中断された場合,次に示すどれかのメッセージがログに出力されます。このとき,probe_webscena_successメトリックが0(失敗)となる場合と,メトリックが送信されない場合があります。次に示すログファイルを確認して,タイムアウトで処理が中断していないかを確認してください。

ログファイル

メッセージ

web_exporterのログ

KNBC20144-E An error occurred while an internal command was executing. (maintenance information = exit status 1)

KNBC20147-E An error occurred while an internal command was executing. (message = Test timeout of ミリ秒数 exceeded., 省略)

Prometheus serverのログ

msg="Scrape failed" err="Get URL: context deadline exceeded"

タイムアウトになった場合でも起動した子プロセスは終了するため,ユーザーが終了する必要はありません。

■ 注意事項

  • Webシナリオ監視機能では,次に示す監視はできません。

    • JP1/IM - AgentがサポートするブラウザーをサポートしていないWebコンテンツの監視

    • Webシナリオ作成時と異なる動きをするWebコンテンツの監視

    • HTTPステータスコードの監視

    • 認証に外部の認証プロバイダを使用しているWebサイトの監視

  • 稼働情報の収集中にタイムアウトが発生した場合,ブラウザーのプロセスが終了せずに残ることがあります。その場合は,ユーザーが該当するプロセスを停止する必要があります。詳細については,「■タイムアウトの設定とタイムアウトになったときのユーザー作業について」を参照してください。

(n) トレースビューアー機能(playwright show-trace)

トレースビューアー機能を使用すると,Webシナリオ実行中にトレースに記録した動作を視覚的に確認できます。

■前提条件

ユーザーがplaywrightコマンドを手動で実行する際は,カレントフォルダをPlaywrightの作業フォルダとする必要があります。Playwrightの作業フォルダについては,「付録A.4(3) 統合エージェントホスト(Windows)」を参照してください。

Administrators権限(WindowsのUAC機能が有効な場合は管理者コンソールから実行)を持つユーザーで実行する必要があります。

playwright show-traceコマンドを使用して,トレースビューアー機能を実行できます。

playwright show-traceコマンドは,トレースビューアーを表示するコマンドです。ユーザーがターミナル上で実行できます。

■Webシナリオを実行してトレースを記録する

Webシナリオ実行の際にトレースを記録するには,Playwright設定ファイル(jpc_playwright.config.ts)のtraceオプションのmodeにonを指定して,各テスト実行において,常にトレースを記録するように指定する必要があります。

Playwright設定ファイルの形式とオプションについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Playwright設定ファイル(jpc_playwright.config.ts)」(2. 定義ファイル)を参照してください。

■トレースを開く

次のコマンドを実行すると,コマンドのオプションに指定したパスのトレースを,トレースビューアーに表示できます。

Administrators権限(WindowsのUAC機能が有効な場合は管理者コンソールから実行)を持つユーザーで実行します。

npx playwright show-trace トレースファイルのパス

playwright show-traceコマンドに指定するパラメーターの詳細については,次の表を参照してください。

  • npx playwright show-traceコマンドのオプション

    項目名

    説明

    変更可否

    JP1/IM - Agentでユーザーが設定する内容

    JP1/IM - Agentの初期値

    トレースファイルのパス

    トレースビューアーで表示するトレースファイルを指定します。

    出力されたトレースファイルのパスを指定します。

    指定しなかった場合は,表示されたHTML上に,トレースファイルをドラッグ&ドロップしてトレースを表示してください。

    なし

(凡例)

〇:変更可

トレースビューアーでは,次の情報を確認できます。

  • アクション

    [Action]タブで,アクションに使用されたロケーターと,各アクションの実行にかかった時間を確認できます。

    DOMスナップショットの変換を確認する場合は,Webシナリオの各アクションにカーソルを合わせます。

    調査やデバッグを実施する場合は,時間軸を前後に移動し,確認するアクションをクリックします。

    アクションの前後の差異を確認する場合は,[Before]タブと[After]タブを使用します。

  • スクリーンショット

    スクリーンショットをトレースとして記録し,サムネイル画像をトレースビューアー上部に時系列順に表示します。サムネイル画像にマウスオーバーすると,各アクションと状態の拡大画像を表示できます。

    確認するアクションをダブルクリックすると,そのアクションを実行した時間が表示できます。タイムラインのスライダーを使用して,複数のアクションを選択すると,それらが[Action]タブに表示され,選択したアクションのログだけをフィルタリングして表示できます。

  • スナップショット

    デフォルトでは,スナップショットのオプションをオフにして,トレースを行います。

    この機能を使用する場合は,Playwright設定ファイルのsnapshotsパラメーターにtrueを指定する必要があります。Playwright設定ファイルについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Playwright設定ファイル(jpc_playwright.config.ts)」(2. 定義ファイル)を参照してください。

    画面中央のタブを切り替えて,次の表に示す種類のスナップショットを確認できます。

    種類

    説明

    Action

    実行された入力の瞬間のスナップショット

    このタイプのスナップショットは,Playwrightが正確にクリックした個所を確認する場合に使用します。

    Before

    アクションが呼び出された時点のスナップショット

    After

    アクションのあとのスナップショット

  • ソース

    Webシナリオの各アクションにカーソルを合わせると,そのアクションのコード行が,[Source]タブに強調表示されます。

  • コール

    [Call]タブには,実行時間と使用されたロケーターが,表示されます。

  • ログ

    ビューに,スクロール,要素が表示されるのを待つ,有効にして安定している,クリック,フィルなどのアクションのログを参照する場合に使用します。

  • エラー

    Webシナリオ実行が失敗した場合,[Error]タブに,エラーメッセージが表示されます。タイムラインには,エラーが発生した場所を示す赤い線も表示されます。

    また,ソースコードの行を確認する場合は,[Source]タブをクリックします。

  • コンソール

    ブラウザーとWebシナリオ実行のコンソールログを参照します。

  • ネットワーク

    [Network]タブには,Webシナリオ実行中に行われたネットワーク要求が表示されます。

    [Name],[Method],[Status],[Content Type],[Duration],および[Size]で並び替えができます。

    リクエストヘッダー,レスポンスヘッダー,リクエスト本文,レスポンス本文など,要求に関する情報を表示するには,リクエストをクリックします。

    この機能を使用する場合は,Playwright設定ファイルのsnapshotsパラメーターにtrueを指定する必要があります。Playwright設定ファイルについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Playwright設定ファイル(jpc_playwright.config.ts)」(2. 定義ファイル)を参照してください。

  • メタデータ

    [Action]タブの横にある[Metadata]タブには,ブラウザー,ビューポートのサイズ,実行時間などのWebシナリオ実行に関する詳細情報が表示されます。

    [start time]には,Webシナリオ実行を開始した時刻が表示されます。トレースに表示される時刻は,JP1/IM - Agentホストの日時が「YYYY/MM/DD hh:mm:ss」形式で表示されます。監視対象ホストとJP1/IM - Agentホストのタイムゾーンが異なる場合も,JP1/IM - Agentホストの日時が適用されます。

■トレースを閉じる

トレースビューアーを終了するときは,playwright show-traceコマンドを実行したターミナルで,[Ctrl]+[C]キーを押して終了するか,トレースビューアーのウィンドウを閉じます。

(o) VMware exporter(VMware性能情報収集機能)

VMware exporterは,VMware ESXiから性能情報を取得するPrometheus用のExporterです。

■ 前提条件

VMware exporterが使用するポートは,JP1/IM - AgentのPrometheus server以外からアクセスされないように,ファイアウォールやネットワーク構成などで保護することが前提条件となります。

VMware exporterが使用するポートについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「サービス定義ファイル(jpc_プログラム名_service.xml)」(2. 定義ファイル)の,「vmware_exporterコマンドのオプション」の説明を参照してください。

■ 監視対象の条件

  • VMware vCenterServerは監視対象外です。

  • VMware exporterの監視対象はVMware ESXiです。サポートするVMware ESXiのバージョンについては,リリースノートを参照してください。

  • VMware ESXiで管理するデータストア名は,ホスト名と同じ名称にしてください。データストア名とホスト名を別の名称とした場合,データストアとハイパーバイザーでそれぞれ別のノードが作成されてしまい,取得できるメトリックが分断されてしまいます。

    データストアとハイパーバイザーでノードが分かれた場合の各ノードで取得できるメトリックは,下記となります。

    • データストア

      vmware_host_size,vmware_host_used,vmware_host_free,vmware_datastore_used_percent

    • ハイパーバイザー

      vmware_host_size,vmware_host_used,vmware_host_free,vmware_datastore_used_percent以外のhost用メトリック

    各メトリックおよび説明については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」(2. 定義ファイル)の「VMware exporterのホスト用メトリック定義ファイル(metrics_vmware_exporter_host.conf)」および「VMware exporterのVM用メトリック定義ファイル(metrics_vmware_exporter_vm.conf)」を参照してください。

    注※ データストアが複数ある場合は「ホスト名_任意の文字列」としてください。

  • VMware ESXiで管理するVM名は重複させないでください。VM名が重複すると,同一ノードに複数の監視結果が表示されてしまい,個別の監視ができなくなるため,VM名は必ずユニークな名前に設定してください。

■ 取得項目

JP1/IM - Agentが同梱するVMware exporterで取得できるメトリックは,VMware exporterのデフォルトで定義されているメトリックです。

VMware exporterの取得項目は,VMware exporterのホスト用メトリック定義ファイルおよびVM用メトリック定義ファイルで定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」(2. 定義ファイル)の「VMware exporterのホスト用メトリック定義ファイル(metrics_vmware_exporter_host.conf)」および「VMware exporterのVM用メトリック定義ファイル(metrics_vmware_exporter_vm.conf)」を参照してください。

各メトリックの値は,OSSのpyVmomiを使用し,VMwareが公式に提供しているvRealize Operationsのメトリックを使用して取得しています。各メトリックが使用するvRealize Operationsのメトリックを,次の表に示します。

メトリック名

カテゴリ

説明

ラベル

データソース

vmware_datastore_capacity_size

DATASTORES

VMware データストアの容量(単位:B)

dc_name : データセンター名

ds_name : データストア名

instance : データ取得先アドレス

job : ジョブ名

pyVmomiで取得

datastore構造体のvmware_datastore_capacity_size

vmware_datastore_freespace_size

DATASTORES

VMware データストアの空き領域(単位:B)

dc_name : データセンター名

ds_name : データストア名

instance : データ取得先アドレス

job : ジョブ名

pyVmomiで取得

datastore構造体のvmware_datastore_freespace_size

vmware_host_num_cpu

HOSTS

VMware ホスト内のプロセッサの数

dc_name : データセンター名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

pyVmomiで取得

hostst構造体のvmware_host_num_cpu

vmware_host_memory_usage

HOSTS

VMware ホストのメモリ使用量(単位:MB)

dc_name : データセンター名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

pyVmomiで取得

hostst構造体のvmware_host_memory_usage

vmware_host_memory_max

HOSTS

VMware ホスト メモリの最大可用性(単位:MB)

dc_name : データセンター名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

pyVmomiで取得

hostst構造体のvmware_host_memory_max

vmware_host_mem_vmmemctl_average

HOSTS

VMware VMのメモリ制御に現在使用されている総メモリ容量(単位:KB)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

パフォーマンスカウンターのmem.vmmemctl.average

vmware_vm_mem_swapped_average

VMS

未予約メモリの量(単位:KB)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

パフォーマンスカウンターのmem.swapped.average

vmware_host_net_bytesRX_average

HOSTS

1秒あたりに受信されるデータ量の平均(単位:KBps)

dc_name : データセンター名

host_name : ホスト名

pyVmomiで取得

パフォーマンスカウンターのvmware_host_net_bytesRX_average

vmware_host_net_bytesTX_average

HOSTS

1秒あたりに転送されるデータ量の平均(単位:KBps)

dc_name : データセンター名

host_name : ホスト名

pyVmomiで取得

パフォーマンスカウンターのvmware_host_net_bytesTX_average

vmware_vm_mem_active_average

VMS

VMWare VMで有効に使用されているメモリ容量。(単位:KB)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

パフォーマンスカウンターのmem.active.average

vmware_vm_guest_disk_capacity

VMGUESTS

パーティションごとのディスク容量メトリック(単位:B)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

partition : パーティション

vm_name : 仮想マシン名

pyVmomiで取得

vmguests構造体のvmware_vm_guest_disk_capacity

vmware_vm_guest_disk_free

VMGUESTS

パーティションごとのディスク メトリック(単位:B)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

partition : パーティション

vm_name : 仮想マシン名

pyVmomiで取得

vmguests構造体のvmware_vm_guest_disk_free

vmware_vm_mem_vmmemctl_average

VMS

VMWare VMのメモリ制御に現在使用されている総メモリ容量(単位:KB)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

パフォーマンスカウンターのmem.vmmemctl.average

vmware_vm_mem_consumed_average

VMS

ゲスト メモリ用として仮想マシンによって消費されるホストメモリ量。(単位:KB)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

パフォーマンスカウンターのmem.consumed.average

vmware_vm_net_transmitted_average

VMS

仮想マシンによって送信される1秒あたりのデータ速度(単位:KBps)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

パフォーマンスカウンターのnet.transmitted.average

vmware_vm_net_received_average

VMS

仮想マシンによって受信される1秒あたりのデータ速度(単位:KBps)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

パフォーマンスカウンターのnet.received.average

vmware_vm_power_state

VMS

VMWare VMの電源状態(オンまたはオフ)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

vms構造体のvmware_vm_power_state

vmware_host_cpu_used_summation

HOSTS

使用済みCPU(単位:msec)

dc_name : データセンター名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

pyVmomiで取得

パフォーマンスカウンターのcpu.used.summation

vmware_vm_cpu_ready_summation

VMS

VMware ホストの作動可能状態で費やされる時間。(単位:msec)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

パフォーマンスカウンターのcpu.ready.summation

vmware_vm_num_cpu

VMS

VMWare 仮想マシン内のプロセッサの数

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

vms構造体のvmware_vm_num_cpu

vmware_vm_memory_max

VMS

VMWare VMメモリの最大可用性(単位:MB)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

vms構造体のvmware_vm_memory_max

vmware_vm_max_cpu_usage

VMS

VMWare VM CPU最大可用性(単位:hz)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

vms構造体のvmware_vm_max_cpu_usage

vmware_vm_template

VMS

VMWare VMテンプレート(trueまたはfalse)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

vms構造体のvmware_vm_template

vmware_host_cpu_usage_average

平均CPU使用量の割合(使用率100%の場合10000を表示)

dc_name : データセンター名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

pyVmomiで取得

パフォーマンスカウンターのcpu.usage.average

vmware_host_disk_write_average

1秒あたりにストレージに書き込まれたデータの量(単位:KBps)

dc_name : データセンター名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

pyVmomiで取得

パフォーマンスカウンターのdisk.write.average

vmware_host_disk_read_average

1秒あたりにストレージから読み取られたデータの量(単位:KBps)

dc_name : データセンター名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

pyVmomiで取得

パフォーマンスカウンターのdisk.read.average

vmware_vm_cpu_usage_average

VMWare VMの平均CPU使用量の割合(使用率100%の場合20000を表示)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

パフォーマンスカウンターのcpu.usage.average

vmware_vm_disk_write_average

パフォーマンス間隔中にディスクに書き込まれたデータ(単位:KBps)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

パフォーマンスカウンターのdisk.write.average

vmware_vm_disk_read_average

パフォーマンス間隔中に読み取られたデータ量(単位:KBps)

dc_name : データセンター名

ds_name : データストア名

host_name : ホスト名

instance : データ取得先アドレス

job : ジョブ名

vm_name : 仮想マシン名

pyVmomiで取得

パフォーマンスカウンターのdisk.read.average

■ VMware exporterのパスワードの難読化

JP1/IM - Agentに同梱しているVMware exporterでは,VMware exporterからVMware ESXiにアクセスするためのパスワードを,シークレット難読化機能で管理します。詳細については,「3.15.10 シークレット難読化機能」を参照してください。

(p) Windows exporter(Hyper-V監視機能)

Hyper-V監視機能は,Widows exporterのhypervコレクタを使用して,Hyper-Vの稼働情報を監視する機能です。

■ 前提条件

Hyper-V監視機能が使用するポートは,JP1/IM - AgentのPrometheus server以外からアクセスされないように,ファイアウォールやネットワーク構成などで保護することが前提条件となります。

Hyper-V監視機能が使用するポートについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「サービス定義ファイル(jpc_プログラム名_service.xml)」(2. 定義ファイル)の,「windows_exporterコマンドのオプション(Hyper-V監視)」の説明を参照してください。

■ 監視対象の条件

  • Hyper-V監視機能が監視対象としてサポートするHyper-Vのバージョンについては,リリースノートを参照してください。

  • VM名には次の規則があります。

    • VM名は,ゲストOSのホスト名と同じ名称にしてください。

    • 「-」を含むVM名を設定しないでください。

    • Hyper-Vで管理するディスク名は,VM名と同じ名称にしてください。

      ディスク名とVM名を別の名称にした場合,VMのノード上で次のメトリックが表示できません。

      - hyperv_vm_device_written

      - hyperv_vm_device_read

      各メトリックの詳細については,下記の「取得項目」を参照してください。

      また,ディスクが複数ある場合は,「ホスト名_任意の文字列」の名称としてください。

  • ライブマイグレーションなどを使用して監視対象ホストからVMを移動した場合,そのVMを監視できなくなります。移動先のVMを監視対象にすれば監視できます。

  • 起動したことがないVMの情報は収集されず,VMのノードが作成されません。そのため,VMの初回起動時には,ツリーの更新を実施してください。

  • JP1/IM - Agentが同居するホストのVMだけを監視できます。入れ子構造内のVMは監視しません。

■ 取得項目

Hyper-V監視機能で取得できるメトリックは,Windows exporter(Hyper-V監視)のデフォルトで定義されているHyper-Vのメトリックです。

Windows exporter(Hyper-V監視)の取得項目は,Windows exporter(Hyper-V監視)のホスト用メトリック定義ファイルおよびVM用メトリック定義ファイルで定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」(2. 定義ファイル)の「Windows exporter(Hyper-V監視)のホスト用メトリック定義ファイル(metrics_windows_exporter_hyperv_host.conf)」および「Windows exporter(Hyper-V監視)のVM用メトリック定義ファイル(metrics_windows_exporter_hyperv_vm.conf)」を参照してください。

定義ファイル内で記述するPromQL文で指定できるメトリックを,次に示します。なお,表内の「コレクタ」の詳細については,表下の「コレクタ」の説明を参照してください。

メトリック名

コレクタ

取得する内容

ラベル

windows_hyperv_vm_cpu_total_run_time

hyperv

仮想プロセッサがゲストコードとハイパーバイザーコードに費やした時間

gauge

instance: インスタンス識別文字列

job: ジョブ名

core: coreid

vm: 仮想マシン名

windows_hyperv_vm_device_bytes_written

hyperv

仮想デバイス上で1秒あたりに書き込まれた合計バイト数

counter

instance: インスタンス識別文字列

job: ジョブ名

vm_device: 仮想ディスクのファイルパス

windows_hyperv_vm_device_bytes_read

hyperv

仮想デバイス上で1秒あたりに読み取られた合計バイト数

counter

instance : インスタンス識別文字列

job: ジョブ名

vm_device: 仮想ディスクのファイルパス

windows_hyperv_host_cpu_total_run_time

hyperv

仮想プロセッサがゲストコードとハイパーバイザーコードに費やした時間

gauge

instance: インスタンス識別文字列

job: ジョブ名

core: coreid

windows_hyperv_vswitch_bytes_received_total

hyperv

仮想スイッチが1秒あたりに受信した合計バイト数

counter

instance: インスタンス識別文字列

job: ジョブ名

vswitch: 仮想スイッチ名

windows_hyperv_vswitch_bytes_sent_total

hyperv

仮想スイッチによって1秒あたりに送信された合計バイト数

counter

instance: インスタンス識別文字列

job: ジョブ名

vswitch: 仮想スイッチ名

windows_cs_logical_processors

cs

インストールされている論理プロセッサの数

gauge

instance: インスタンス識別文字列

job: ジョブ名

windows_hyperv_vm_cpu_hypervisor_run_time

hyperv

ハイパーバイザーコードで仮想プロセッサが費やした時間

gauge

instance: インスタンス識別文字列

job: ジョブ名

core: coreid

vm: 仮想マシン名

■ コレクタ

Windows exporter(Hyper-V監視)には,CPU,メモリーなどの監視対象のリソースごとに,「コレクタ」と呼ばれる収集処理が内蔵されています。

上記の表に示すメトリックのうち,収集したいメトリックに対応するコレクタを有効にする必要があります。また,収集しないメトリックのコレクタを無効にして,不要な収集を抑止することもできます。

コレクタごとの有効・無効化は,Windows exporter(Hyper-V監視)のコマンドラインの「--collectors.enabled」オプション,または,Windows exporter(Hyper-V監視)設定ファイル(jpc_windows_exporter_hyperv.yml)の項目「collectors.enabled」で指定できます。

Windows exporter(Hyper-V監視)のコマンドラインのオプションについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「サービス定義ファイル(jpc_プログラム名_service.xml)」(2. 定義ファイル)の,「windows_exporterコマンドのオプション(Hyper-V監視)」の説明を参照してください。

Windows exporter(Hyper-V監視)設定ファイルの項目「collectors.enabled」については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Windows exporter(Hyper-V監視)設定ファイル(jpc_windows_exporter_hyperv.yml)」(2. 定義ファイル)の,項目「collectors」の説明を参照してください。

■ 注意事項

Hyper-V監視は,JP1/IM - Agentが同居する自ホスト内のHyper-Vの監視を行うため,HAホストクラスターやライブマイグレーションを使用する場合には,監視を行いたいHyper-Vの構成に合わせて,各監視対象にJP1/IM - Agentを導入する必要があります。

また,Hyper-Vの構成を変更したときは,監視対象となるVMの初回起動後に,ツリーの更新を実施してください。

(q) SQL exporter(Microsoft SQL Server監視機能)

SQL exporterは,Microsoft SQL Serverから性能情報を取得するPrometheus用のExporterです。

■セッション数について

SQL exporterからMicrosoft SQL Serverの監視を行う際,SQL exporter設定ファイル(jpc_sql_exporter.yml)に定義したコネクション数で接続を行い,このファイルに定義したセッション保持時間内であれば,同一セッションでデータ取得を行います。

SQL exporter設定ファイルの詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「SQL exporter設定ファイル(jpc_sql_exporter.yml)」(2. 定義ファイル)を参照してください。

■ サポートする監視対象および構成

監視対象はMicrosoft SQL Serverのインスタンスです。インスタンス単位に監視でき,監視対象の上限は10台です。

サポートするMicrosoft SQL Serverのバージョンおよびエディションについては,JP1/IM - Agentのリリースノートを参照してください。

監視対象としてサポートするMicrosoft SQL Serverの構成を次に示します。

  • 単一ホストへの監視(リモート監視を含む)

  • 複数ホストへの監視(リモート監視を含む)

ミラーリング構成の場合,プリンシパルデータベースおよびセカンダリデータベースのそれぞれを監視対象に設定することで,両方を監視できます。ただし,それぞれのインスタンスが別のため,監視ツリーは別のノードとして収集されます。

SQL Server AlwaysOn Availability Group機能を使用した構成の場合,プライマリデータベースおよびセカンダリデータベースのそれぞれを監視対象に設定することで,両方を監視できます。ただし、それぞれのインスタンスが別のため,監視ツリーは別のノードとして収集されます。

■ 取得項目

JP1/IM - Agentが同梱するSQL exporterで取得できるメトリックは,SQL exporterのデフォルトで定義されているメトリックと次に示すメトリックです。

  • mssql_database_detail_process_count

  • mssql_global_server_summary_perc_busy

  • mssql_global_server_summary_packet_errors

  • mssql_server_detail_blocked_processes

  • mssql_server_overview_cache_hit

  • mssql_transaction_log_overview_log_space_used

SQL exporterの取得項目は,SQL exporterのメトリック定義ファイルで定義しています。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「SQL exporterのメトリック定義ファイル(metrics_sql_exporter.conf)」(2. 定義ファイル)を参照してください。

定義ファイル内で記述するPromQL文で指定できるメトリックを,次の表に示します。各メトリックの値は,Microsoft SQL Serverに対して表内に示すSQL文を実行して取得します。メトリックの詳細を確認する場合は,データソースのSQL文を元にMicrosoft社にお問い合わせください。

メトリック名

取得する内容

ラベル

データソース(SQL文)

mssql_local_time_seconds

エポックからの秒単位の現地時間(UNIX時間)

なし

SELECT DATEDIFF(second, '19700101', GETUTCDATE()) AS unix_time

mssql_connections

アクティブな接続の数

なし

SELECT DB_NAME(sp.dbid) AS db, COUNT(sp.spid) AS count

FROM sys.sysprocesses sp

GROUP BY DB_NAME(sp.dbid)

mssql_deadlocks

デッドロックの原因となったロック要求の数

なし

SELECT cntr_value

FROM sys.dm_os_performance_counters WITH (NOLOCK)

WHERE counter_name = 'Number of Deadlocks/sec' AND instance_name = '_Total'

mssql_user_errors

ユーザーエラーの数

なし

SELECT cntr_value

FROM sys.dm_os_performance_counters WITH (NOLOCK)

WHERE counter_name = 'Errors/sec' AND instance_name = 'User Errors'

mssql_kill_connection_errors

SQL Serverが接続を強制終了する原因となった重大なエラーの数

なし

SELECT cntr_value

FROM sys.dm_os_performance_counters WITH (NOLOCK)

WHERE counter_name = 'Errors/sec' AND instance_name = 'Kill Connection Errors'

mssql_page_life_expectancy_seconds

ページが参照なしでこのノードのバッファー・プールに留まる最小秒数

なし

SELECT top(1) cntr_value

FROM sys.dm_os_performance_counters WITH (NOLOCK)

WHERE counter_name = 'Page life expectancy'

mssql_batch_requests

受信したコマンドバッチの数

なし

SELECT cntr_value

FROM sys.dm_os_performance_counters WITH (NOLOCK)

WHERE counter_name = 'Batch Requests/sec'

mssql_log_growths

データベースごとにトランザクション・ログが拡張された回数

なし

SELECT rtrim(instance_name) AS db, cntr_value

FROM sys.dm_os_performance_counters WITH (NOLOCK)

WHERE counter_name = 'Log Growths' AND instance_name <> '_Total'

mssql_buffer_cache_hit_ratio

バッファ・キャッシュにヒットするリクエストの比率

なし

SELECT cntr_value

FROM sys.dm_os_performance_counters

WHERE [counter_name] = 'Buffer cache hit ratio'

mssql_checkpoint_pages_sec

1秒あたりのチェックポイント・ページ数

なし

SELECT cntr_value

FROM sys.dm_os_performance_counters

WHERE [counter_name] = 'Checkpoint pages/sec'

mssql_io_stall_seconds

データベースとI/O操作あたりのストール時間(秒単位)

なし

SELECT

cast(DB_Name(a.database_id) as varchar) AS [db],

sum(io_stall_read_ms) / 1000.0 AS [read],

sum(io_stall_write_ms) / 1000.0 AS [write],

sum(io_stall) / 1000.0 AS io_stall

FROM

sys.dm_io_virtual_file_stats(null, null) a INNER JOIN sys.master_files b ON a.database_id = b.database_id AND a.file_id = b.file_id GROUP BY a.database_id

mssql_io_stall_total_seconds

データベースごとの合計停止時間(秒単位)

なし

SELECT

cast(DB_Name(a.database_id) as varchar) AS [db],

sum(io_stall_read_ms) / 1000.0 AS [read],

sum(io_stall_write_ms) / 1000.0 AS [write],

sum(io_stall) / 1000.0 AS io_stall

FROM

sys.dm_io_virtual_file_stats(null, null) a INNER JOIN sys.master_files b ON a.database_id = b.database_id AND a.file_id = b.file_id GROUP BY a.database_id

mssql_resident_memory_bytes

SQL Serverの常駐メモリサイズ(別名:ワーキングセット)

なし

SELECT

physical_memory_in_use_kb * 1024 AS resident_memory_bytes,

virtual_address_space_committed_kb * 1024 AS virtual_memory_bytes,

memory_utilization_percentage,

page_fault_count

FROM sys.dm_os_process_memory

mssql_virtual_memory_bytes

Microsoft SQL Serverがコミットした仮想メモリサイズ

なし

SELECT

physical_memory_in_use_kb * 1024 AS resident_memory_bytes,

virtual_address_space_committed_kb * 1024 AS virtual_memory_bytes,

memory_utilization_percentage,

page_fault_count

FROM sys.dm_os_process_memory

mssql_memory_utilization_percentage

ワーキングセット内のコミット済みメモリの割合

なし

SELECT

physical_memory_in_use_kb * 1024 AS resident_memory_bytes,

virtual_address_space_committed_kb * 1024 AS virtual_memory_bytes,

memory_utilization_percentage,

page_fault_count

FROM sys.dm_os_process_memory

mssql_page_fault_count

Microsoft SQL Serverのプロセスによって発生したページフォールトの数

なし

SELECT

physical_memory_in_use_kb * 1024 AS resident_memory_bytes,

virtual_address_space_committed_kb * 1024 AS virtual_memory_bytes,

memory_utilization_percentage,

page_fault_count

FROM sys.dm_os_process_memory

mssql_os_memory

OS物理メモリ(使用済み,および使用可能)

なし

SELECT

(total_physical_memory_kb - available_physical_memory_kb) * 1024 AS used, available_physical_memory_kb * 1024 AS available

FROM sys.dm_os_sys_memory

mssql_os_page_file

OSページファイル(使用済み,および使用可能)

なし

SELECT

(total_page_file_kb - available_page_file_kb) * 1024 AS used, available_page_file_kb * 1024 AS available

FROM sys.dm_os_sys_memory

mssql_database_detail_process_count

プロセスの合計数

なし

SELECT

DB_NAME(ISNULL(des.database_id,0)) AS db, COUNT(des.session_id) AS count

FROM master.sys.dm_exec_sessions des

WHERE ISNULL(des.database_id,0) <> 0

GROUP BY DB_NAME(ISNULL(des.database_id,0))

mssql_global_server_summary_perc_busy

CPUビジー時間の割合

注:このフィールドは正しい値を取得できません。

なし

SELECT 100.0 * @@cpu_busy / (@@cpu_busy+ @@idle+ @@io_busy) AS cpu_busy_percent

mssql_global_server_summary_packet_errors

パケットエラーの数

なし

SELECT @@packet_errors AS count

mssql_server_detail_blocked_processes

Microsoft SQL Serverで動作しているプロセスがロックしていることにより待たされているプロセスの数

なし

SELECT DB_NAME(ISNULL(S.database_id,0)) AS db, SUM(ISNULL(R.blocking_session_id,0)) AS count

FROM master.sys.dm_exec_sessions S LEFT OUTER JOIN master.sys.dm_exec_requests R ON S.session_id = R.session_id

GROUP BY DB_NAME(ISNULL(S.database_id,0))

mssql_server_overview_cache_hit

データキャッシュ内でデータページが見つかった回数の割合

なし

SELECT 100.0 * (

SELECT

cntr_value

FROM master.sys.dm_os_performance_counters

WHERE RTRIM(object_name) LIKE '%:Buffer Manager'

AND RTRIM(LOWER(counter_name)) = 'buffer cache hit ratio'

) / (

SELECT

cntr_value

FROM master.sys.dm_os_performance_counters

WHERE RTRIM(object_name) LIKE '%:Buffer Manager'

AND RTRIM(LOWER(counter_name)) = 'buffer cache hit ratio base'

) AS cache_hity_percent

■ Microsoft SQL Serverを監視するための前提条件

SQL exporterでMicrosoft SQL Serverを監視する場合,次の設定を行う必要があります。

  • Microsoft SQL Server

    Microsoft SQL Serverのデータベース・キャラクタ・セットには次の内容を設定します。

    • AL32UTF8(Unicode UTF-8)

    • JA16SJIS(日本語SJIS)

    • ZHS16GBK(簡体字中国語GBK)

    また,サポートする認証方法は,Microsoft SQL Serverに登録したユーザーIDとパスワードによるSQL Server認証です。Windows認証はサポートしません。

  • Microsoft SQL Serverへのアクセスに使用するユーザー

    Microsoft SQL Serverへの接続に使用するユーザーに下記の権限を付与します。

    • ログイン権限

      CONNECT SQL

    • 次のテーブルのSELECTに必要な権限

      テーブル名

      権限

      sys.sysprocesses

      VIEW SERVER STATE

      sys.dm_os_performance_counters

      VIEW SERVER PERFORMANCE STATE

      sys.dm_io_virtual_file_stats

      VIEW SERVER PERFORMANCE STATE

      sys.master_files

      CREATE DATABASE

      ALTER ANY DATABASE または VIEW ANY DEFINITION

      sys.dm_os_process_memory

      VIEW SERVER PERFORMANCE STATE

      sys.dm_os_sys_memory

      VIEW SERVER PERFORMANCE STATE

■ Microsoft SQL Serverのパスワードの難読化

JP1/IM - Agentに同梱しているSQL exporterでは,SQL exporterからMicrosoft SQL Serverにアクセスするためパスワードを,シークレット難読化機能で管理します。詳細については,「3.15.10 シークレット難読化機能」を参照してください。

■ 注意事項

  • Microsoft SQL Serverのインストールもしくは設定が行われていない場合,またはMicrosoft SQL Serverが起動していない場合,性能情報の収集は行われません。

  • 性能情報の収集中に,監視対象のMicrosoft SQL Serverがインデクスの再構築をしている場合,Microsoft SQL Serverがデータの整合性を確保するための排他待ちが発生することがあります。この場合,Microsoft SQL Server側で影響が少ないと判断したプロセスに対して排他待ちを解消しますが,性能情報の収集要求がロールバックされ,性能情報の収集に失敗することがあります。

  • Microsoft SQL Serverがトランザクション中にテーブルを作成し,操作を確定しない場合,システムテーブルに共有ロックが掛かかるため,データ収集が失敗します。この場合,操作が確定するまでデータ収集ができなくなることがあります。

  • 性能情報の収集時にデータベースに共有ロックが掛かります。このタイミングでMicrosoft SQL Serverの新規データベースの作成を行おうとすると,作成に失敗することがあります。

(r) PrometheusとExporterが同一ホストの構成と別ホストの構成についてのサポート可否

PrometheusとExporterの同一ホストの構成と別ホストの構成についてのサポート可否を,次の表に示します。

表3‒39 PrometheusとExporterのホスト構成のサポート可否

Exporterの種類

PrometheusとExporterのホストの構成

同一ホスト

別ホスト

JP1/IM - Agentが提供するExporter

Node exporter for AIX

×

上記以外のExporter

×

ユーザー独自のExporter

(凡例)

○:サポートします。

×:サポートしません。

なお,次の構成はサポートしません。

  • 複数のPrometheusから同じExporterにスクレイプする構成

  • リモートエージェントのExporter(Exporterのホストと監視対象のホストが別ホスト)

注※

リモートエージェントのExporterとは,ディスカバリ設定ファイルに「jp1_pc_remote_monitor_instance」の記載があるExporterのことを指します。

また,PrometheusとExporterが別ホストの構成の場合,Exporterが使用するポートには,JP1/IM - AgentのPrometheus server以外からアクセスされないように,ファイアウォールやネットワーク構成などで保護することが前提となります(統合エージェントホストとExporterのホストを同一ネットワーク内に構築して外部からアクセスされないようにするなど)。

(2) パフォーマンスデータの一元管理機能

Prometheus serverが,監視対象から収集したパフォーマンスデータを,JP1/IM - Managerのインテリジェント統合管理データベースに格納する機能です。次の機能があります。

また,JP1/IM - Agent 13-01以降を新規インストールした場合,初期設定でサービス監視のパフォーマンスデータが一元管理されます。JP1/IM - Agent 13-00から13-01以降にバージョンアップインストールした場合は,サービス監視を行うための設定が必要です。セットアップ手順の参照先については,「3.15.1(1)(c)Windows exporter(Windows性能情報収集機能)」および「3.15.1(1)(d)Node exporter(Linux性能情報収集機能)」を参照してください。

(a) リモートライト機能

Prometheus serverが,監視対象から収集したパフォーマンスデータを,外部の長期保存に適したデータベースに送信する機能です。JP1/IM - Agentでは,この機能を利用して,パフォーマンスデータをJP1/IM - Managerに送信します。

リモートライトの定義方法を,次に示します。

  • リモートライト定義は,Prometheus server設定ファイル(jpc_prometheus_server.yml)に記述します。

  • 統合オペレーション・ビューアーからPrometheus server設定ファイルをダウンロードし,テキストエディターで編集を行って,リモートライト定義を変更したあと,アップロードします。

JP1/IM - Agentがサポートするリモートライト定義に関する設定項目を,次に示します。各設定項目の詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Prometheus設定ファイル(jpc_prometheus_server.yml)」(2. 定義ファイル)を参照してください。

表3‒40  JP1/IM - Agentがサポートするリモートライト定義に関する設定項目

設定項目

説明

リモートライト先

(必須)

統合エージェント制御基盤のエンドポイントURLを設定します。

リモートライトのタイムアウト時間

(任意)

リモートライトに時間がかかった場合のタイムアウト時間を設定できます。

デフォルトの値で問題がある場合に変更します。

リラベル設定

(任意)

不要なメトリックの削除やラベルのカスタマイズができます。

(3) パフォーマンスデータの監視・通知機能

Prometheus serverが,監視対象から収集したパフォーマンスデータを,しきい値で監視し,JP1/IM - Managerに通知する機能です。次の3つの機能があります。

また,サービスを監視するアラート定義が設定されている環境で,監視対象のサービスを追加した場合,追加したサービスも監視対象となります。アラートが発火している監視対象のサービスを監視対象から除外した場合は,発火していたアラートが回復したことを示すアラートが通知されます。

アラートの定義例については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「アラート設定ファイル(jpc_alerting_rules.yml)」(2. 定義ファイル)の,「「Node exporterのメトリック定義ファイル」のメトリックのアラート定義例」および「「Windows exporterのメトリック定義ファイル」のメトリックのアラート定義例」を参照してください。Linux環境の場合,監視対象の自動起動が有効(systemctl enableを実行している)かどうかにより,アラートの定義が異なります。自動起動が無効であるサービスの監視を行う場合,監視対象ごとにアラート定義を作成して設定を行う必要があります。

(a) アラート評価機能

監視対象から収集したパフォーマンスデータを,しきい値で監視する機能です。

アラートの評価を行うためのアラートルールを定義して,パフォーマンスデータをしきい値で監視し,アラートの通知を行います。

アラートの評価は,時系列データをそのまましきい値と比較,または,PromQLを使用した計算式の結果としきい値を比較して行うことができます。

注※

PromQLの詳細については,「2.7.4(7) PromQLについて」を参照してください。

時系列データごと,または,PromQL式の計算結果によって生成されたデータごとに,評価に応じたアラートの状態が管理され,アラート状態に応じて,通知に関する動作が実行されます。

アラートの状態には,「pending」,「firing」,および「resolved」の3つの状態があります。最初にしきい値を超過すると,「pending」(しきい値超過)の状態となります。そのあと,アラートルールのforに指定された時間の間,アラートルールの条件に該当し続けた(回復しなかった)場合,「firing」(発火)の状態になります。アラートルールの条件に該当しなかった(回復した)場合,または時系列がなくなった場合は,「resolved」(回復)の状態になります。

アラートの状態と通知に関する動作の関係を,次に示します。

アラートの状態

説明

通知に関する動作

pending

しきい値超過状態。

アラートルールの定義にforを指定し,しきい値を超過してからforに指定した時間が経っていない状態です。

アラートの通知を行いません。

firing

発火状態。

アラートルールの定義にforを指定し,しきい値を超過してからforに指定した時間が経った状態です。

または,アラートルールの定義にforを指定せずにしきい値を超過した状態です。

アラートの通知を行います。

resolved

回復状態。

アラートルールに該当しなくなった状態です。

  • 「firing」の状態から回復した場合,回復の通知を行います。

  • 「pending」状態から回復した場合,回復の通知を行いません。

アラートルールの定義方法を,次に示します。

  • アラートルール定義は,アラート設定ファイル(jpc_alerting_rules.yml)に記述します(任意のYAML形式の定義ファイルでも記述できます)。

  • 作成した定義ファイルは,使用する環境に反映させる前に,promtoolコマンドで書式チェックとアラートルールのテストを行います。

  • 統合オペレーション・ビューアーからアラート設定ファイルをダウンロードし,テキストエディターで編集を行って,アラートルールの定義を変更したあと,アップロードします。

JP1/IM - Agentがサポートするアラートルール定義に関する設定項目を,次に示します。各設定項目の詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「アラート設定ファイル(jpc_alerting_rules.yml)」(2. 定義ファイル)を参照してください。なお,デフォルトのアラートルール定義はありません。

表3‒41  JP1/IM - Agentがサポートするアラートルール定義に関する設定項目

設定項目

説明

アラート名(必須)

アラート名を設定します。

条件式(必須)

アラートの条件式(しきい値)を設定します。

PromQLを使用して設定できます。

待ち時間(必須)

「pending」の状態になってから「firing」の状態に変更するまでの待ち時間を設定します。

デフォルトの値で問題がある場合に変更します。

ラベル(必須)

アラートや回復の通知に追加するラベルを設定します。

JP1/IM - Agentでは,特定のラベルを設定する必要があります。

注釈(必須)

アラートの説明,URLリンクなどの追加情報を格納する場合に設定します。

JP1/IM - Agentでは,特定の注釈を設定する必要があります。

ラベルと注釈には,次に示す変数を使用できます。

変数

説明

$labels

アラートインスタンスのラベルキーと値のペアを保持する変数です。ラベルキーには,次に示すラベルを指定できます。

  • アラーム評価の条件式に時系列データを指定した場合

    データが保持するラベルを指定できます。

  • アラーム評価の条件式にPromQL式を指定した場合

    PromQL式の計算結果に設定されるラベルを指定できます。

データが保持するラベルは,メトリックにより異なります。

ラベルについては,「3.15.1(1)パフォーマンスデータの収集機能」で,PromQL文で指定できるメトリックについて記載している箇所を参照してください。

$values

アラートインスタンスの評価値を保持する変数です。

発火通知の際には,発火を検知した時点の値に展開されます。

回復通知の際には,回復直前の発火時の値に展開されます(回復時点の値ではないことに注意してください)。

$externalLabels

Prometheus設定ファイル(jpc_prometheus_server.yml)の項目「global」の「external_labels」に設定したラベルと値を保持する変数です。

注※

変数は「{{」と「}}」で囲むことで値が展開されます。変数の使い方の例を,次に示します。

description: "{{ $labels.instance }} has a median request latency above 1s (current value: {{ $value }}s)"

■ JP1イベントに変換するためのアラートルール定義

通知を行うアラートを,JP1/IM - Manager側でJP1イベントに変換するために,次に示す情報を,アラートルール定義に設定しておく必要があります。

設定項目

設定する値

用途

name

統合エージェント内で重複しない任意のアラートグループ定義名を設定します。

アラートグループ定義名

alert

統合エージェント内で重複しない任意のアラート定義名を設定します。

アラート定義名

expr

PromQL文を設定します。

メトリック定義ファイルに記載したPromQL文を設定することを推奨します。こうすることで,JP1イベントが発生したときに,統合オペレーション・ビューアーでトレンド情報を表示できます。

発火条件

注※

条件を満たす場合は発火,条件を満たさない場合は回復となります。

labels.jp1_pc_product_name

"/HITACHI/JP1/JPCCS"を固定で設定します。

JP1イベントのプロダクト名に設定されます。

labels.jp1_pc_severity

次のどれかを設定します。

  • Emergency

  • Alert

  • Critical

  • Error

  • Warning

  • Notice

  • Information

  • Debug

JP1イベントの重大度に設定されます。

注※

異常のJP1イベントの重大度に設定される値となります。正常のJP1イベントの重大度には「Information」が設定されます。

labels.jp1_pc_eventid

0〜1FFF,7FFF8000〜7FFFFFFFの範囲内の任意の値を設定します。

JP1イベントのイベントIDに設定されます。

labels.jp1_pc_metricname

メトリック名を設定します。

Yet another cloudwatch exporterの場合,必ず指定してください。メトリック名(コンマ区切りで複数指定されている場合は先頭のメトリック名)に対応するAWS名前空間のIM管理ノードに対して,JP1イベントの関連付けを行います。

JP1イベントのメトリック名に設定されます。

Yet another cloudwatch exporterの場合,JP1イベントの関連付けにも使用されます。

annotations.jp1_pc_firing_description

アラートの発火条件を満たしたとき,JP1イベントのメッセージに設定する値を指定します。

値の長さが1,024バイト以上の場合,先頭から1,023バイト目までの文字列を設定します。

指定を省略した場合,JP1イベントのメッセージの内容は「The alert is firing.(alert=アラート名)」となります。

また,変数を指定することで,ジョブ名や評価値を埋め込むこともできます。変数を使用する場合,変数を展開したメッセージの先頭から1,024バイトまでが有効となります。

JP1イベントのメッセージに設定されます。

annotations.jp1_pc_resolved_description

アラートの発火条件を満たさなくなったとき,JP1イベントのメッセージに設定する値を指定します。

値の長さが1,024バイト以上の場合,先頭から1,023バイト目までの文字列を設定します。

指定を省略した場合,JP1イベントのメッセージの内容は「The alert is resolved.(alert=アラート名)」となります。

また,変数を指定することで,ジョブ名や評価値を埋め込むこともできます。変数を使用する場合,変数を展開したメッセージの先頭から1,024バイトまでが有効となります。

JP1イベントのメッセージに設定されます。

アラート定義の設定例については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」(2. 定義ファイル)の「アラート設定ファイル(jpc_alerting_rules.yml)」の「定義例」を参照してください。

対応するJP1イベントの属性については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「3.2.3 JP1/IM - Agentが発行するJP1イベント一覧」を参照してください。

■ トレンド表示関連機能と組み合わせた運用方法について

メトリック定義ファイルに記述するPromQL文と,アラート評価機能で評価するPromQL文の定義内容を合わせておき,アラート設定ファイルのアラート定義のannotations.jp1_pc_firing_descriptionおよびannotations.jp1_pc_resolved_descriptionに,対応するトレンドデータのメトリック名を記述しておくことで,アラートのJP1イベントが発行されたときに,アラートで評価した性能値の過去の変化や現在値を,統合オペレーション・ビューアーの[トレンド]タブで,確認できます。

トレンド表示関連機能で定義するPromQL文については,「3.15.6(4)トレンドデータの返却」を参照してください。

例えば,Node exporterでCPU使用率を監視し,CPU使用率が80%を超えたときにアラートを通知する場合は,次の記述例に示すように,アラート設定ファイル(アラート定義)とメトリック定義ファイルを作成します。

  • アラート設定ファイル(アラート定義)の記述例

    groups:
      - name: node_exporter
        rules:
        - alert: cpu_used_rate(Node exporter)
          expr: 80 < (avg by (instance,job,jp1_pc_nodelabel,jp1_pc_exporter) (rate(node_cpu_seconds_total{mode="system"}[2m])) + avg by (instance,job,jp1_pc_nodelabel,jp1_pc_exporter) (rate(node_cpu_seconds_total{mode="user"}[2m]))) * 100
          for: 3m
          labels:
            jp1_pc_product_name: "/HITACHI/JP1/JPCCS"
            jp1_pc_severity: "Error"
            jp1_pc_eventid: "0301"
            jp1_pc_metricname: "node_cpu_seconds_total"
          annotations:
            jp1_pc_firing_description: "CPU使用率がしきい値(80%)を上回りました。value={{ $value }}%"
            jp1_pc_resolved_description: "CPU使用率がしきい値(80%)を下回りました。"
  • メトリック定義ファイルの記述例

    [
      {
        "name":"cpu_used_rate",
        "default":true,
        "promql":"(avg by (instance,job,jp1_pc_nodelabel,jp1_pc_exporter) (rate(node_cpu_seconds_total{mode=\"system\"}[2m]) and $jp1im_TrendData_labels) + avg by (instance,job,jp1_pc_nodelabel,jp1_pc_exporter) (rate(node_cpu_seconds_total{mode=\"user\"}[2m]) and $jp1im_TrendData_labels)) * 100",
        "resource_en":{
          "category":"platform_unix",
          "label":"CPU used rate",
          "description":"CPU usage.It also indicates the average value per processor. [Units: %]",
          "unit":"%"
        },
        "resource_ja":{
          "category":"platform_unix",
          "label":"CPU使用率",
          "description":"CPU使用率(%)。プロセッサごとの割合の平均値でもある。",
          "unit":"%"
        }
      }
    }

    アラート定義のexprに指定したPromQL文の条件を満たし,アラートのJP1イベントが発行されると,JP1イベントのメッセージには,「CPU使用率がしきい値(80%)を上回りました。value=性能値%」というメッセージが設定されます。ユーザーはこのメッセージを見て,「CPU使用率」のトレンド情報を表示し,CPU使用率の過去の変化や現在値を確認できます。

■ サービス停止時の動作について

Alertmanagerのサービスが停止している場合,アラートのJP1イベントは発行されません。また,Prometheus serverとAlertmanagerのサービスが稼働している状態で,アラートが発火した状態でのExporterが,障害により停止した場合,アラートは回復となり,正常のJP1イベントを発行します。アラートが発火の状態で,Alertmanagerを稼働させたまま,Prometheus server のサービスを停止した場合,アラートの回復を表す正常のJP1イベントを発行します。

詳細については,「■Alertmanagerを稼働させたまま,Prometheus serverを再起動または停止させた場合の動作について」を参照してください。

■ サービス再起動時の動作について

アラートが発火または回復の状態で,Alertmanager,または,Exporterのサービスを再起動しても,現在のアラートの状態が再起動前のアラートの状態と同じである場合は,JP1イベントを発行しません。アラートが発火の状態で,Alertmanagerを稼働させたまま,Prometheus serverのサービスを再起動した場合,アラートの回復を表す正常のJP1イベントを発行する場合があります。詳細は,「■Alertmanagerを稼働させたまま,Prometheus serverを再起動または停止させた場合の動作について」を参照してください。

■ パフォーマンスデータのスパイクの考慮について

パフォーマンスデータが瞬間的に飛びぬけた値(大きな値,小さな値,またはマイナスの値)になることがあります。このようなパフォーマンスデータの急激な変化を一般的に「スパイク」と呼びます。スパイクが発生し,瞬間的に異常値となっても,すぐに正常値に戻り,異常として扱う必要がないケースが多くあります。また,OSの再起動などで,パフォーマンスデータがリセットされたときに,瞬間的にスパイクが発生することもあります。

このようなパフォーマンスデータのメトリックを監視する場合は,アラートルールの定義で「for」(アラートを異常と扱うまでの猶予時間)を指定することで,突発的な異常検知を抑止することを検討する必要があります。

■ Alertmanagerを稼働させたまま,Prometheus serverを再起動または停止させた場合の動作について

アラートが発火の状態で,Alertmanagerを稼働させたままPrometheus serverを再起動,または停止させた場合,アラートの回復を表す正常のJP1イベントを発行する場合があります。

次の条件を満たすとき,正常のJP1イベントを発行します。

  • 発火であるアラートの定義のforに設定されている時間と,Prometheus serverのサービスが停止または再起動により動作していない時間を足した値が,Prometheus設定ファイルのevaluation_intervalの値よりも大きくなった場合

    注※ アラートのforを設定していない場合は0とします。

■ サービスリロード時の動作について

アラートが発火または回復の状態でPrometheus server,Alertmanager,または,Exporterのサービスのリロードを行うAPIを実行しても,JP1イベントは発行しません。

(b) アラート通知機能

Prometheus serverがアラートを評価したあと,アラートの状態が「firing」または「resolved」になったときに,通知を行う機能です。

JP1/IM - Manager(インテリジェント統合管理基盤)が停止しているときにアラートの状態が変わった場合,異常通知や回復通知が行われないことがあります。

Prometheus serverは,アラートを1件ずつ送信し,送信されたアラートは,Alertmanagerを経由してJP1/IM - Manager(インテリジェント統合管理基盤)に通知されます。リトライ時も1件ずつ通知されます。

なお,JP1/IM - Managerに送信されるアラートは,基本的に発生した順番に送信されますが,複数のアラートルールが同時に条件を満たした場合や,送信エラーが発生して再送される場合に,順序が入れ替わることがあります。しかし,アラートの情報に発生時刻が含まれているため,どの順番で発生したかを把握できるようになっています。

また,7日間にわたって異常状態が継続された場合,アラートが再通知されます。

アラートの通知先の定義方法を,次に示します。

  • アラートの通知先は,Prometheus設定ファイル(jpc_prometheus_server.yml)とAlertmanager設定ファイル(jpc_alertmanager.yml)の両方に記述します。

    Prometheus設定ファイルには,Prometheus serverの通知先として,同居するAlertmanagerを指定します。Alertmanager設定ファイルには,Alertmanagerの通知先として,統合エージェント制御基盤を指定します。

  • 統合オペレーション・ビューアーから各設定ファイルをダウンロードし,テキストエディターで編集を行って,アラートの通知先の定義を変更したあと,アップロードします。

JP1/IM - AgentがサポートするPrometheus serverの通知先の定義に関する設定項目を,次に示します。各設定項目の詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Prometheus設定ファイル(jpc_prometheus_server.yml)」(2. 定義ファイル)を参照してください。

表3‒42  JP1/IM - AgentがサポートするPrometheus serverの通知先の定義に関する設定項目

設定項目

説明

通知先(必須)

通知先のAlertmanagerを設定します。

Alertmanagerのコマンドラインオプションの--web.listen-addressに,ホスト名またはIPアドレスを指定した場合は,localhostを--web.listen-addressに指定したホスト名またはIPアドレスに修正します。

  • 物理ホスト環境の場合

    同居するAlertmanagerを指定します。

  • クラスタ環境の場合

    論理ホストで動作するAlertmanagerを指定します。

ラベル設定(任意)

ラベルを追加できます。必要に応じて設定します。

JP1/IM - AgentがサポートするAlertmanagerの通知先に関する設定項目を,次に示します。各設定項目の詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Alertmanager設定ファイル(jpc_alertmanager.yml)」(2. 定義ファイル)を参照してください。

表3‒43  JP1/IM - AgentがサポートするAlertmanagerの通知先の定義に関する設定項目

設定項目

説明

Webhookの設定(必須)

統合エージェント制御基盤のエンドポイントURLを設定します。

(c) 通知抑止機能

3.15.1(3)(b)アラート通知機能」で説明する通知を,抑止する機能です。次の機能があります。

  • サイレンス機能

    一時的に特定のアラートを通知したくない場合に使用します。

■ サイレンス機能

一時的に特定の通知を抑止する機能です。一時的なメンテナンスを行う場合など,その間に発生するアラートを通知しない設定ができます。なお,通知抑止機能では,JP1/IM - Managerの共通除外条件を使用する場合と異なり,JP1/IM - Managerへの通知自体を行いません。

サイレンスが有効である間は,アラートの状態が変わっても通知を行いません。サイレンスが無効になったときに,サイレンスを有効化する前のアラートの状態と比較して,状態が変わっていれば,通知を行います。

通知を行うタイミングについて,次に2つの例を示します。

図3‒36  サイレンスの有効化前と無効化後で状態が異なるケース

[図データ]

上記の図は,サイレンスを有効化するときのアラートの状態が「異常」で,サイレンスが有効である間に,アラートの状態が「正常」に変わり,そのあと,サイレンスを無効化した例です。

アラートが「正常」に変わったタイミングでは,サイレンスが有効であるため,通知は行われません。サイレンスを無効化したタイミングでは,アラートの状態が,サイレンスを有効化する前の「異常」から「正常」に変わっているため,「正常」の通知が行われます。

図3‒37  サイレンスの有効化前と無効化後で状態が同一となるケース

[図データ]

上記の図は,サイレンスが有効である間に,アラートの状態が一度「正常」に変わったあと,再び「異常」に変わり,そのあと,サイレンスを無効化した例です。

サイレンスを無効化したタイミングでは,アラートの状態は,サイレンスを有効化する前と同じ「異常」であるため,通知は行われません。

アラートの送信に失敗してリトライしているときに,そのアラートを抑止するサイレンスが有効になった場合,アラートの送信リトライは行われなくなります。

■サイレンスの設定方法

サイレンスの設定(有効化または無効化),および,現在のサイレンスの設定内容の取得は,REST APIで行います(GUIはサポートしていません)。

また,サイレンスの設定を行う場合,ユーザーが操作するマシンから統合エージェントホストに対して,Alertmanagerのポート番号で通信できるようにしておく必要があります。

サイレンスの設定,および,現在のサイレンスの設定内容の取得で使用するREST APIについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「5.22.3 Alertmanagerのサイレンス一覧取得」,「5.22.4 Alertmanagerのサイレンス作成」,および「5.22.5 Alertmanagerのサイレンス失効」を参照してください。

(4) 通信機能

(a) 通信プロトコルと認証方法

統合エージェントが使用する通信プロトコルと認証方法を,次に示します。

接続元

接続先

プロトコル

認証方式

Prometheus server

統合エージェント制御基盤

HTTP

認証なし

Alertmanager

Prometheus server

Alertmanager

HTTP

認証なし

Exporter

Blackbox exporter

監視対象

HTTP/HTTPS

Basic認証

Bearer認証

認証なし

HTTPS

サーバ認証

クライアント認証あり

クライアント認証なし

ICMP※1

認証なし

Yet another cloudwatch exporter

Amazon CloudWatch

HTTPS

AWS IAM認証

Promitor Scraper

Azure Monitor

HTTPS

クライアント認証なし

Promitor Resource Discovery

Azure Resource Graph

HTTPS

クライアント認証なし

Promitor Scraper

Promitor Resource Discovery

HTTP

認証なし

Prometheus

Fluentd

HTTP

認証なし

OracleDB exporter

Oracleリスナー

Oracleリスナー独自(暗号なし)

ユーザー名とパスワードによる認証あり

Webシナリオ実行機能

Webシナリオ実行機能が起動するブラウザー

chrome devtools protocol(CDP)

認証なし

Webシナリオ実行機能・Webシナリオ実行機能が起動するブラウザー

監視対象サーバ

  • 非暗号通信※2

  • 暗号通信※2

  • 認証なし

  • HTTP認証(Basic認証だけ)

  • TLSサーバ証明書を使用した認証

  • TLSクライアント証明書を使用した認証※3

  • ユーザー名とパスワードをフォームで入力する認証

VMware exporter

VMware ESXi

SSL/TSLなし接続

ユーザー名とパスワードによる認証

SSL/TLSあり接続※4

  • ユーザー名とパスワードによる認証

  • CA証明書による認証

SQL exporter

Microsoft SQL Server

TLSなし接続

ユーザー名とパスワードによる認証

TLSあり接続※5

ユーザー名とパスワードによる認証

注※1

ICMPv6は使用できません。

注※2

具体的なプロトコルは監視対象に依存します。

注※3

マニュアル「JP1/Integrated Management 3 - Manager 構築ガイド」の「1.21.2(13)(a) JP1/IM - Agentのセットアップ」の「認証の設定」を参照してください。

注※4

TLS1.1とTLS1.2だけ接続できます。

注※5

SQL exporter設定ファイル(jpc_sql_exporter.yml)で設定する監視対象の接続情報に,Microsoft SQL ServerとのTLS通信を有効にするオプションを付与する必要があります。詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「SQL exporter設定ファイル(jpc_sql_exporter.yml)」(2. 定義ファイル)を参照してください。

(b) ネットワーク構成

統合エージェントは,IPv4環境だけのネットワーク構成,またはIPv4環境とIPv6環境が混在するネットワーク構成で使用できます。IPv4環境とIPv6環境が混在するネットワーク構成では,IPv4通信だけに対応しています。

統合エージェントは,次に示すプロキシサーバなしの構成で使用できます。

接続元

接続先

接続の種類

Prometheus server

統合エージェント制御基盤

プロキシサーバなし

Alertmanager

Prometheus server

Alertmanager

Exporter

Blackbox exporter

監視対象(ICMP監視)

監視対象(HTTP監視)

  • プロキシサーバなし

  • 認証なしのプロキシサーバ経由

  • 認証ありのプロキシサーバ経由

Yet another cloudwatch exporter

Amazon CloudWatch

  • プロキシサーバなし

  • 認証なしのプロキシサーバ経由

  • 認証ありのプロキシサーバ経由

Promitor Scraper

Azure Monitor

  • プロキシサーバなし

  • 認証なしのプロキシサーバ経由

  • 認証ありのプロキシサーバ経由

Promitor Resource Discovery

Azure Resource Graph

OracleDB exporter

Oracleリスナー

プロキシサーバなし

Webシナリオ実行機能・Webシナリオ実行機能が起動するブラウザー

監視対象サーバ

  • プロキシサーバなし

  • 認証なしのプロキシサーバ経由

  • 認証あり(HTTP認証(Basic認証だけ))のプロキシサーバ経由

VMware exporter

VMware ESXi

プロキシサーバなし

SQL exporter

Microsoft SQL Server

プロキシサーバなし

統合エージェントは,次に示すデータを送信します。

接続元

接続先

送信データ

認証方式

Prometheus server

統合エージェント制御基盤

Protobuf形式のパフォーマンスデータ

Alertmanager

JSON形式のアラート情報※1

Prometheus server

Exporter

なし

Exporter

Prometheus server

Prometheusのテキスト形式のパフォーマンスデータ※2

Blackbox exporter

監視対象

各プロトコルのレスポンス

Yet another cloudwatch exporter

Amazon CloudWatch

CloudWatchのデータ

Promitor Scraper

Azure Monitor

Azure Monitorのデータ(メトリクス情報)

  • サービスプリンシパル

  • マネージドID

Promitor Resource Discovery

Azure Resource Graph

Azure Resource Graphのデータ(リソース探索結果)

OracleDB exporter

Oracleリスナー

Oracleリスナーの独自データ

Webシナリオ実行機能

Webシナリオ実行機能が起動するブラウザー

プラウザーの操作データ

Webシナリオ実行機能・Webシナリオ実行機能が起動するブラウザー

監視対象サーバ

監視対象に依存するデータ

監視対象サーバ

Webシナリオ実行機能・Webシナリオ実行機能が起動するブラウザー

監視対象に依存するデータ

VMware exporter

VMware ESXi

VMware ESXiのデータ

VMware ESXi

VMware exporter

SQL exporter

Microsoft SQL Server

なし

Microsoft SQL Server

SQL exporter

SQL文の実行結果

注※1

詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「5.6.5 JP1イベント変換」の,リクエストのメッセージボディーに関する説明を参照してください。

注※2

詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「5.24 JP1/IM - Agentが使用するExporterのスクレイプ用のAPI」の,Prometheusのテキストフォーマットに関する説明を参照してください。