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の種類に応じて,次に示すスクレイプジョブ名のスクレイプ定義が,デフォルトで設定されています。

スクレイプジョブ名

スクレイプ定義

prometheus

Prometheus server用のスクレイプ定義

jpc_node

Node exporter用のスクレイプ定義

jpc_windows

Windows exporter用のスクレイプ定義

jpc_blackbox_http

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

jpc_blackbox_icmp

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

jpc_cloudewatch

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

jpc_process

Process exporter用のスクレイプ定義

jpc_promitor

Promitor用のスクレイプ定義

jpc_script

Script 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.23 JP1/IM - Agentが使用するExporterのスクレイプ用のAPI」の説明を参照してください。スクレイプの対象とするExporterは,ここに記載されている方法で実行できるようにする必要があります。

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

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

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

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

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

表3‒15  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: モード(privileged,user)

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(不明)

■ コレクタ

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: ジョブ名

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

node_netstat_Icmp_InMsgs

netstat

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

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

job: ジョブ名

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

node_netstat_Icmp6_OutMsgs

netstat

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

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

job: ジョブ名

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

node_netstat_Icmp_OutMsgs

netstat

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

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

job: ジョブ名

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

node_netstat_Tcp_InSegs

netstat

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

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

job: ジョブ名

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

node_netstat_Tcp_OutSegs

netstat

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

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

job: ジョブ名

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

node_netstat_Udp_InDatagrams

netstat

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

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

job: ジョブ名

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

node_netstat_Udp_OutDatagrams

netstat

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

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

job: ジョブ名

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

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の収集情報とは差異があります。

(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‒16 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_RSA_WITH_AES_128_CBC_SHA"(TLS1.2まで)

  • "TLS_RSA_WITH_AES_256_CBC_SHA"(TLS1.2まで)

  • "TLS_RSA_WITH_AES_128_GCM_SHA256"(TLS1.2だけ)

  • "TLS_RSA_WITH_AES_256_GCM_SHA384"(TLS1.2だけ)

  • "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の構成を次に示します。

  • 非クラスタの場合

    非CDB構成およびCDB構成

  • Oracle RACの場合

    CDB構成

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

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

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

■ 取得項目

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) PrometheusとExporterが同一ホストの構成と別ホストの構成についてのサポート可否

PrometheusとExporterの同一ホストの構成と別ホストの構成についてのサポート可否を,次の表に示します。

表3‒17 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‒18  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(4) 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‒19  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‒20  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‒21  JP1/IM - AgentがサポートするAlertmanagerの通知先の定義に関する設定項目

設定項目

説明

Webhookの設定(必須)

統合エージェント制御基盤のエンドポイントURLを設定します。

(c) 通知抑止機能

3.15.1(3)(b)アラート通知機能」で説明する通知を,抑止する機能です。次の機能があります。

  • サイレンス機能

    一時的に特定のアラートを通知したくない場合に使用します。

■ サイレンス機能

一時的に特定の通知を抑止する機能です。一時的なメンテナンスを行う場合など,その間に発生するアラートを通知しない設定ができます。なお,通知抑止機能では,JP1/IM - Managerの共通除外条件を使用する場合と異なり,JP1/IM - Managerへの通知自体を行いません。

サイレンスが有効である間は,アラートの状態が変わっても通知を行いません。サイレンスが無効になったときに,サイレンスを有効化する前のアラートの状態と比較して,状態が変わっていれば,通知を行います。

通知を行うタイミングについて,次に2つの例を示します。

図3‒34  サイレンスの有効化前と無効化後で状態が異なるケース

[図データ]

上記の図は,サイレンスを有効化するときのアラートの状態が「異常」で,サイレンスが有効である間に,アラートの状態が「正常」に変わり,そのあと,サイレンスを無効化した例です。

アラートが「正常」に変わったタイミングでは,サイレンスが有効であるため,通知は行われません。サイレンスを無効化したタイミングでは,アラートの状態が,サイレンスを有効化する前の「異常」から「正常」に変わっているため,「正常」の通知が行われます。

図3‒35  サイレンスの有効化前と無効化後で状態が同一となるケース

[図データ]

上記の図は,サイレンスが有効である間に,アラートの状態が一度「正常」に変わったあと,再び「異常」に変わり,そのあと,サイレンスを無効化した例です。

サイレンスを無効化したタイミングでは,アラートの状態は,サイレンスを有効化する前と同じ「異常」であるため,通知は行われません。

アラートの送信に失敗してリトライしているときに,そのアラートを抑止するサイレンスが有効になった場合,アラートの送信リトライは行われなくなります。

■サイレンスの設定方法

サイレンスの設定(有効化または無効化),および,現在のサイレンスの設定内容の取得は,REST APIで行います(GUIはサポートしていません)。

また,サイレンスの設定を行う場合,ユーザーが操作するマシンから統合エージェントホストに対して,Alertmanagerのポート番号で通信できるようにしておく必要があります。

サイレンスの設定,および,現在のサイレンスの設定内容の取得で使用するREST APIについては,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「5.21.3 Alertmanagerのサイレンス一覧取得」,「5.21.4 Alertmanagerのサイレンス作成」,および「5.21.5 Alertmanagerのサイレンス失効」を参照してください。

(4) 通信機能

(a) 通信プロトコルと認証方法

統合エージェントが使用する通信プロトコルと認証方法を,次に示します。

接続元

接続先

プロトコル

認証方式

Prometheus server

統合エージェント制御基盤

HTTP

認証なし

Alertmanager

Prometheus server

Alertmanager

HTTP

認証なし

Exporter

Blackbox exporter

監視対象

HTTP/HTTPS

Basic認証

Bearer認証

認証なし

HTTPS

サーバ認証

クライアント認証あり

クライアント認証なし

ICMP

認証なし

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リスナー独自(暗号なし)

ユーザー名とパスワードによる認証あり

注※

ICMPv6は使用できません。

(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リスナー

プロキシサーバなし

統合エージェントは,次に示すデータを送信します。

接続元

接続先

送信データ

認証方式

Prometheus server

統合エージェント制御基盤

Protobuf形式のパフォーマンスデータ

Alertmanager

JSON形式のアラート情報※1

Prometheus server

Exporter

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リスナーの独自データ

注※1

詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「5.6.5 JP1イベント変換」の,リクエストのメッセージボディーに関する説明を参照してください。

注※2

詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「5.23 JP1/IM - Agentが使用するExporterのスクレイプ用のAPI」の,Prometheusのテキストフォーマットに関する説明を参照してください。