3.15.1 JP1/IM - Agentによる性能監視機能
性能監視機能は,アドオンプログラムのPrometheus,Alertmanager,Exporterで構成され,次に示す2つの機能を提供します。
-
Exporter経由でパフォーマンスデータを取得し,統合マネージャーホストにパフォーマンスデータを送信する機能
-
取得したパフォーマンスデータの閾値監視を行い,条件に該当した場合はJP1/IM - Managerにアラートを通知する機能
統合マネージャーホストに送信したパフォーマンスデータやアラートは,統合オペレーション・ビューアーで参照できます。
(1) パフォーマンスデータの収集機能
Prometheus serverが,監視対象からパフォーマンスデータを収集する機能です。次の2つの機能があります。
-
スクレイプ機能(Prometheus server)
-
監視対象の稼働情報の取得機能(Exporter)
(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がサポートするスクレイプ定義に関する設定項目を,次に示します。
|
設定項目 |
説明 |
|---|---|
|
スクレイプジョブ名 (必須) |
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: モード※
|
|
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 |
インターフェースによって受信されたバイト数(累積値)
|
instance: インスタンス識別文字列 job: ジョブ名 device:ネットワークデバイス名 |
|
windows_net_bytes_sent_total |
net |
インターフェースから送信されたバイト数(累積値)
|
instance: インスタンス識別文字列 job: ジョブ名 device:ネットワークデバイス名 |
|
windows_net_bytes_total |
net |
インターフェースによって受信および送信されたバイト数(累積値)
|
instance: インスタンス識別文字列 job: ジョブ名 device:ネットワークデバイス名 |
|
windows_net_packets_sent_total |
net |
インターフェースによって送信されたパケット数(累積値)
|
instance: インスタンス識別文字列 job: ジョブ名 device:ネットワークデバイス名 |
|
windows_net_packets_received_total |
net |
インターフェースによって受信されたパケット数(累積値)
|
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 |
プロセスの現在の基本優先度(値が大きいほど基本優先度が高い) 値は次のとおりです。
|
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
|
■ コレクタ
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 |
最後の起動時刻
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_context_switches_total |
stat |
コンテキストスイッチが行われた回数(累積値) |
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_cpu_seconds_total |
cpu |
各モードで費やされたCPUの秒数(累積値) |
instance: インスタンス識別文字列 job: ジョブ名 cpu: cpuid mode: モード※
|
|
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 |
最近使用されたファイルキャッシュメモリーのバイト数
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_memory_Buffers_bytes |
meminfo |
ファイルバッファーのバイト数
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_memory_Cached_bytes |
meminfo |
ファイル読み込みキャッシュメモリーのバイト数
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_memory_Inactive_file_bytes |
meminfo |
最近使用されていないファイルキャッシュメモリーのバイト数
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_memory_MemAvailable_bytes |
meminfo |
スワップせずに新しいアプリケーションを起動するために使用できるメモリーのバイト数
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_memory_MemFree_bytes |
meminfo |
メモリーの空き領域のバイト数
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_memory_MemTotal_bytes |
meminfo |
メモリーの総容量のバイト数
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_memory_SReclaimable_bytes |
meminfo |
回収可能なSlabキャッシュのバイト数
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_memory_SwapFree_bytes |
meminfo |
スワップメモリーの空き領域のバイト数
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_memory_SwapTotal_bytes |
meminfo |
スワップメモリーの総容量のバイト数
|
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 |
インターフェースの状態を示す数値
|
instance: インスタンス識別文字列 job: ジョブ名 device:ネットワークデバイス名 |
|
node_network_iface_link |
netclass |
インターフェースの通し番号
|
instance: インスタンス識別文字列 job: ジョブ名 device:ネットワークデバイス名 |
|
node_network_mtu_bytes |
netclass |
インターフェースの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 |
ページスワップインの回数(累積値)
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_vmstat_pswpout |
vmstat |
ページスワップアウトの回数(累積値)
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
node_systemd_unit_state |
systemd |
Systemdユニットの状態 |
instance: インスタンス識別文字列 job: ジョブ名 name: ユニットファイル名 state: サービスの状態※1 type: プロセスの起動方法※2
|
■ コレクタ
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]/statのutime(14)とstime(15) |
instance: インスタンス識別文字列 job: ジョブ名 groupname: グループ名 mode: userまたはsystem |
|
namedprocess_namegroup_read_bytes_total |
読み込みI/Oのバイト数(累積値) 取得元:/proc/[pid]/ioのread_bytes process_exporterを,rootまたはそのプロセスを実行したユーザで実行しないと,値が0になります。 |
instance: インスタンス識別文字列 job: ジョブ名 groupname: グループ名 |
|
namedprocess_namegroup_write_bytes_total |
書き込みI/Oのバイト数(累積値) 取得元:/proc/[pid]/ioのwrite_bytes |
instance: インスタンス識別文字列 job: ジョブ名 groupname: グループ名 |
|
namedprocess_namegroup_major_page_faults_total |
メジャーページフォルトの回数(累積値) 取得元:/proc/[pid]/statのmajflt(12) |
instance: インスタンス識別文字列 job: ジョブ名 groupname: グループ名 |
|
namedprocess_namegroup_minor_page_faults_total |
マイナーページフォルトの回数(累積値) 取得元:/proc/[pid]/statのminflt(10) |
instance: インスタンス識別文字列 job: ジョブ名 groupname: グループ名 |
|
namedprocess_namegroup_context_switches_total |
コンテキストスイッチの回数(累積値) 取得元:/proc/[pid]/statusのvoluntary_ctxt_switchesとnonvoluntary_ctxt_switches |
instance: インスタンス識別文字列 job: ジョブ名 groupname: グループ名 ctxswitchtype: voluntaryまたはnonvoluntary |
|
namedprocess_namegroup_memory_bytes |
使用メモリ量 memtypeラベル(種別)の値は次のとおりです。
注※ smapsファイルが存在する場合だけ |
instance: インスタンス識別文字列 job: ジョブ名 groupname: グループ名 memtype: resident,virtual,swapped,proportionalResident,またはproportionalSwapped |
|
namedprocess_namegroup_open_filedesc |
プロセスが使用しているファイルディスクリプターの数
|
instance: インスタンス識別文字列 job: ジョブ名 groupname: グループ名 |
|
namedprocess_namegroup_worst_fd_ratio |
プロセスが使用しているファイルディスクリプターの上限値に対する割合のうち,グループ内で最も高い割合値
|
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]/statのfield num_threads(20) |
instance: インスタンス識別文字列 job: ジョブ名 groupname: グループ名 |
|
namedprocess_namegroup_states |
ステータス別のスレッド数 stateラベル(分類)の値は次のとおりです。
取得元:/proc/[pid]/statのstate(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設定ファイルに設定したメトリックを指定できます。
|
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:フェーズ※
|
|
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が使用されたかどうか
|
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チェーンの最後の証明書の有効期限のタイムスタンプ
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
probe_ssl_last_chain_info |
http |
SSLリーフ証明書情報
|
instance: インスタンス識別文字列 job: ジョブ名 fingerprint_sha256:証明書のsha256指紋 |
|
probe_tls_version_info |
http |
使用されるTLSバージョン
|
instance: インスタンス識別文字列 job: ジョブ名 version:TLSバージョン |
|
probe_http_version |
http |
プローブ応答のHTTPのバージョン |
instance: インスタンス識別文字列 job: ジョブ名 |
|
probe_failed_due_to_regex |
http |
応答本文やレスポンスヘッダーに対する正規表現チェックによりプローブが失敗したかどうか
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
probe_http_last_modified_timestamp_seconds |
http |
HTTP応答ヘッダーのLast-Modifiedを示すUNIX時間 |
instance: インスタンス識別文字列 job: ジョブ名 |
|
probe_icmp_duration_seconds |
icmp |
ICMPリクエストのフェーズごとにかかった秒数 |
instance: インスタンス識別文字列 job: ジョブ名 phase: フェーズ※
|
|
probe_icmp_reply_hop_limit |
icmp |
ホップリミット(IPv4の場合はTTL)の値
|
instance: インスタンス識別文字列 job: ジョブ名 |
|
probe_success |
− |
プローブが成功したかどうか
|
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 |
|
暗号スイート |
|
■ 稼働情報の収集に関するタイムアウト
(通常状態で)応答が遅いネットワーク環境では,タイムアウト時間を調整することにより,稼働情報を収集できます。
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[&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では「&」,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&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の同一ホストの構成と別ホストの構成についてのサポート可否を,次の表に示します。
|
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. 定義ファイル)を参照してください。
|
設定項目 |
説明 |
|---|---|
|
リモートライト先 (必須) |
統合エージェント制御基盤のエンドポイント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 |
回復状態。 アラートルールに該当しなくなった状態です。 |
|
アラートルールの定義方法を,次に示します。
-
アラートルール定義は,アラート設定ファイル(jpc_alerting_rules.yml)に記述します(任意のYAML形式の定義ファイルでも記述できます)。
-
作成した定義ファイルは,使用する環境に反映させる前に,promtoolコマンドで書式チェックとアラートルールのテストを行います。
-
統合オペレーション・ビューアーからアラート設定ファイルをダウンロードし,テキストエディターで編集を行って,アラートルールの定義を変更したあと,アップロードします。
JP1/IM - Agentがサポートするアラートルール定義に関する設定項目を,次に示します。各設定項目の詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「アラート設定ファイル(jpc_alerting_rules.yml)」(2. 定義ファイル)を参照してください。なお,デフォルトのアラートルール定義はありません。
|
設定項目 |
説明 |
|---|---|
|
アラート名(必須) |
アラート名を設定します。 |
|
条件式(必須) |
アラートの条件式(閾値)を設定します。 PromQLを使用して設定できます。 |
|
待ち時間(必須) |
「pending」の状態になってから「firing」の状態に変更するまでの待ち時間を設定します。 デフォルトの値で問題がある場合に変更します。 |
|
ラベル(必須) |
アラートや回復の通知に追加するラベルを設定します。 JP1/IM - Agentでは,特定のラベルを設定する必要があります。 |
|
注釈(必須) |
アラートの説明,URLリンクなどの追加情報を格納する場合に設定します。 JP1/IM - Agentでは,特定の注釈を設定する必要があります。 |
ラベルと注釈には,次に示す変数を使用できます。
|
変数※ |
説明 |
|---|---|
|
$labels |
アラートインスタンスのラベルキーと値のペアを保持する変数です。ラベルキーには,次に示すラベルを指定できます。
データが保持するラベルは,メトリックにより異なります。 ラベルについては,「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 |
次のどれかを設定します。
|
JP1イベントの重大度※に設定されます。
|
|
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. 定義ファイル)を参照してください。
|
設定項目 |
説明 |
|---|---|
|
通知先(必須) |
通知先のAlertmanagerを設定します。 Alertmanagerのコマンドラインオプションの--web.listen-addressに,ホスト名またはIPアドレスを指定した場合は,localhostを--web.listen-addressに指定したホスト名またはIPアドレスに修正します。
|
|
ラベル設定(任意) |
ラベルを追加できます。必要に応じて設定します。 |
JP1/IM - AgentがサポートするAlertmanagerの通知先に関する設定項目を,次に示します。各設定項目の詳細については,マニュアル「JP1/Integrated Management 3 - Manager コマンド・定義ファイル・APIリファレンス」の「Alertmanager設定ファイル(jpc_alertmanager.yml)」(2. 定義ファイル)を参照してください。
|
設定項目 |
説明 |
|---|---|
|
Webhookの設定(必須) |
統合エージェント制御基盤のエンドポイントURLを設定します。 |
(c) 通知抑止機能
「3.15.1(3)(b)アラート通知機能」で説明する通知を,抑止する機能です。次の機能があります。
-
サイレンス機能
一時的に特定のアラートを通知したくない場合に使用します。
■ サイレンス機能
一時的に特定の通知を抑止する機能です。一時的なメンテナンスを行う場合など,その間に発生するアラートを通知しない設定ができます。なお,通知抑止機能では,JP1/IM - Managerの共通除外条件を使用する場合と異なり,JP1/IM - Managerへの通知自体を行いません。
サイレンスが有効である間は,アラートの状態が変わっても通知を行いません。サイレンスが無効になったときに,サイレンスを有効化する前のアラートの状態と比較して,状態が変わっていれば,通知を行います。
通知を行うタイミングについて,次に2つの例を示します。
|
|
上記の図は,サイレンスを有効化するときのアラートの状態が「異常」で,サイレンスが有効である間に,アラートの状態が「正常」に変わり,そのあと,サイレンスを無効化した例です。
アラートが「正常」に変わったタイミングでは,サイレンスが有効であるため,通知は行われません。サイレンスを無効化したタイミングでは,アラートの状態が,サイレンスを有効化する前の「異常」から「正常」に変わっているため,「正常」の通知が行われます。
|
|
上記の図は,サイレンスが有効である間に,アラートの状態が一度「正常」に変わったあと,再び「異常」に変わり,そのあと,サイレンスを無効化した例です。
サイレンスを無効化したタイミングでは,アラートの状態は,サイレンスを有効化する前と同じ「異常」であるため,通知は行われません。
アラートの送信に失敗してリトライしているときに,そのアラートを抑止するサイレンスが有効になった場合,アラートの送信リトライは行われなくなります。
- ■サイレンスの設定方法
-
サイレンスの設定(有効化または無効化),および,現在のサイレンスの設定内容の取得は,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のデータ(メトリクス情報) |
|
|
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のテキストフォーマットに関する説明を参照してください。