JMX インターフェイスを使用したライブ モニタリング

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

JMX (Java Management Extensions API) を使用すると、リアルタイムで Confluence インスタンスのステータスを監視できます。JMX は、MBeans (Managed Beans) と呼ばれるオブジェクトを使用して、アプリからデータやリソースを表示し、インスタンスのデータベース使用量やデータベース レイテンシなどの有益なデータを提供します。これにより、問題やパフォーマンスの課題を診断することができます。

このページでは、JConsole を使用して、Confluence をローカルおよびリモートで監視する方法について説明します。JConsole は Java Development Kit (JDK) に含まれていますが、どの JMX クライアントでも使用することができます。

このページには、JMX から利用できる製品内診断に関する情報も含まれています。

このガイドでは、JMX インターフェイスの基本的な概要を紹介します。内容は現状のまま提供されるものとします。アトラシアンのサポート チームは、Confluence で発生する特定の問題のトラブルシューティングをサポートできますが、監視システムのセットアップや、結果の解釈についてはサポート対象外です。

JMX によって Confluence を監視する

APM によって Confluence をリモート監視する

アプリケーション パフォーマンス監視 (APM) ツールで Confluence を監視するには、JMX エクスポーターをインストールして JMX MBeans をご利用のツールに適した形式に変換する必要があります。その方法については「アプリのパフォーマンスを監視する」をご参照ください。 

アプリケーション パフォーマンス監視 (APM) システムをお持ちでないユーザー向けに、Prometheus と Grafana を開始するためのガイドを作成しました。このガイドには、出発点にできるテンプレート ダッシュボードも含まれています。「Prometheus と Grafana で Confluence を監視する」をご参照ください。

JConsole を使用してた Confluence のリモート監視

リモート監視は、Confluence サーバーのリソースを消費しないため、本番環境システムにお勧めです。

リモートで監視するには:

  1. 以下のプロパティを setenv.sh / setenv.bat ファイルに追加します。ポートは未使用の任意のポートに設定できます。

    set CATALINA_OPTS=-Dcom.sun.management.jmxremote %CATALINA_OPTS%
    set CATALINA_OPTS=-Dcom.sun.management.jmxremote.port=8099 %CATALINA_OPTS%
  2. リモート接続の保護方法を決定します。詳細は、リモート監視と管理 を参照してください。
    認証を無効化することは可能ですが、本番環境システムではお勧めしません。

  3. JConsole を起動します (JDK インストール ディレクトリの bin ディレクトリにあります)。
  4. リモート プロセス を選択します。
  5. ホスト名とポートを (Confluence ポートではなく、以前に指定したポート) を入力します。
  6. 接続 をクリックします。

リモート監視の詳細については、JConsole の使用を参照してください。

JConsole を使用して Confluence をローカルで監視する

特定の課題のトラブルシューティングや、Confluence を短期間のみ監視する必要がある場合は、ローカル監視を使用できます。ローカル監視はサーバーのパフォーマンスに影響を与える可能性があるため、本番システムの長期的な監視にはお勧めしません。

ローカルに監視するには:

  1. JConsole を起動します (JDK インストール ディレクトリの bin ディレクトリにあります)。

  2. ローカル プロセス を選択します。
  3. Confluence プロセスを選択します。org.apache.catalina.startup.Bootstrap start のようになります。

ローカル監視の詳細については、JConsole の使用を参照してください。

JMX メトリックをログ ファイルに書き込む

次の JMX メトリクスをログ ファイルに書き込むことも選択できます。これは、問題をトラブルシューティングする際に便利です。

  • キャッシュ統計
  • IndexingStatistics
  • MailTaskQueue
  • RequestMetrics
  • システム情報
  • スレッド プール
  • OS
  • GC
  • Threading
  • TomcatManager
  • RequestProcessor

JMX メトリクスをログ ファイルに書き込むには、次の手順に従います。

  1. [管理] > [一般設定] > [スケジュール済みのジョブ] に移動します。
  2. JMX メトリックをログ ジョブを有効にします。 

このジョブは初期設定で 1 分に 1 回実行され、メトリックを <local-home/logs/atlassian-confluence-jmx.log ファイルに書き込みます。「Confluence ログを使用する」をご覧ください。

JMX 監視を無効にする

JMX 監視を無効にするには、次の手順に従います。

  1. [管理] > [一般設定] > [監視] に移動します。
  2. [JMX 監視] を選択解除します。

これによって、JMX を有効にする必要があるためアプリ監視も無効になります。 

Confluence MBeans

以下の Confluence MBeans を使用して、Confluence インスタンスに関するライブ情報を確認できます。

キャッシュ統計

この MBean は、Confluence バージョンや稼働時間などの情報を示します。この情報は、キャッシュ統計ページにも表示されます。

IndexingStatistics

この MBean は検索インデックス作成に関連する情報を表示します。便利な属性をいくつか示します。

プロパティ名

機能

Flushing

キャッシュが現在フラッシュ中かどうかを示す

True/False

LastElapsedMilliseconds

最後のインデックス作成の所要時間

ミリ秒

TaskQueueLength

キューにあるタスクの数を表示

整数

ReIndexing Confluence が現在再インデックス中かどうかを示すTrue/False

システム情報

この MBean は、Confluence バージョンや稼働時間などの情報を示します。この情報は、システム情報ページにも表示されます。  

プロパティ名

機能

DatabaseExampleLatency

データベース対して実行されたクエリ例の待ち時間を表示。

ミリ秒

RequestMetrics

この MBean はシステム負荷と表示されたエラーページに関連する情報を表示します。

プロパティ名

機能

AverageExecutionTimeForLastTenRequests

最新 10 件の要求の平均実行時間。

ミリ秒

CurrentNumberOfRequestsBeingServed

この時点で提供されている要求の数。

整数

ErrorCount

Confluence エラーページが提供された回数。

整数

NumberOfRequestsInLastTenSeconds

最近 10 秒間の要求数。

整数

MailServer-SMTPServer

この MBean は、メールディスパッチの試行と失敗に関連する情報を表示します。Confluence インスタンスで設定された SMTP メールサーバーごとに MBean があります。

プロパティ名

機能

EmailsAttempted

Confluence が送信しようとしたメールメッセージの数。

整数

EmailsSent

正常に送信されたメールメッセージの数。

整数

MailTaskQueue

この MBean は、メールワークロードに関連する情報を示します。

プロパティ名

機能

ErrorQueueSize

キュー内のエラー数。

整数

Flushing

状態 (フラッシュの有無) を表示。

True/False

FlushStarted

稼働を開始した時間。

時間

RetryCount

実行された再試行の回数。

整数

TaskSize

ディスパッチのためにキューに入れられたメールメッセージの数。

整数

SchedulingStatistics

この MBean は現在のジョブ、スケジュール済みタスク、およびそれらが最後に実行された時間に関連する情報を表示します。

プロパティ名機能
AllJobNames現在のジョブ、スケジュール済みタスク、およびそれらが最後に実行された時間に関連する情報を表示する文字列
CurrentlyRunningJobNames現在実行中のスケジュール済みジョブを一覧表示する一覧

アプリ固有の指標

アプリ監視を有効にして、Marketplace やカスタムビルド アプリに関する問題のトラブルシューティングに役立つ追加の指標を表示します。 

アプリ固有の指標に関する全リストは「アプリ指標の参照」をご参照ください。

追加の MBeans

Hibernate および Hazelcast を監視する (Confluence Data Center のみ) には、まず、setenv.sh / setenv.bat ファイルに次のプロパティを追加する必要があります。 

set CATALINA_OPTS=-Dconfluence.hazelcast.jmx.enable=true %CATALINA_OPTS%
set CATALINA_OPTS=-Dconfluence.hibernate.jmx.enable=true %CATALINA_OPTS%

これにより、お使いの JMX クライアントでハイバーネイトおよび Hazelcast MBeans を使用できるようになります。 

CPU 消費量が多いスレッドを監視する

JConsole の上位スレッド プラグインは、CPU のスパイクが発生しているかどうかを監視するのに便利です。以下のコマンドを使用して、このコマンドで JConsole を起動します。

JConsole -pluginpath /pathto/topthreads.jar

JMX から利用できる製品内診断

製品内診断用のデータベース接続と HTTP 接続の一連のメトリックを JMX から利用できるようになりました。

製品内診断 (IPD) では、ユーザーとアトラシアン サポートが、実行中の Confluence インスタンスの動作についてより深いインサイトを得られます。

IPD では、Confluence とそのデータベースの間のやりとりを処理する追加のメトリックを使用します。たとえば、データベース接続メトリックを使用すると、自分の環境やインフラストラクチャでパフォーマンス問題の原因になる可能性のある要素を効率的に特定できます。 

この機能は既定で有効になっています。実際のメトリックは次の形式で利用できます。

  • 新しい JMX MBeans として

  • 新しい IPD ログ ファイル (atlassian-confluence-ipd-monitoring.log) 内の JMX 値のスナップショットの履歴。「Confluence ログを使用する」をご覧ください。

    • ログ ファイルは、Atlassian Troubleshooting and Support アプリで作成されたサポート Zip ファイルにも含まれています。必要に応じて、Zip ファイルをアトラシアン サポートにご送付ください。アトラシアン サポートには、その内容を解釈するための社内ツールがあります。

製品内診断メトリック

次のセクションを展開して、製品内診断で利用できるメトリックの詳細を学習してください。

メトリックを使用するには、最初に必ず JMX を有効にしてください。

データベース接続メトリック

MBean オブジェクト名

メトリックの説明

com.atlassian.confluence:type=metrics,
category00=db,category01=connection,
category02=latency,name=value

  • db.connection.latency.value

データベースに対するクエリ送信時の最新のレイテンシ測定値

データベース接続が失われた場合は -1 に設定します。

com.atlassian.confluence:type=metrics,
category00=db,category01=connection,
category02=latency,name=statistics

  • db.connection.latency.statistics

前回の再起動以降のレイテンシの集計統計

com.atlassian.confluence:type=metrics,
category00=db,category01=connection,
category02=pool,category02=numActive,
name=statistics

  • db.connection.pool.numActive.statistics

前回の再起動以降のデータベース接続プール内のアクティブ接続数の集計統計

com.atlassian.confluence:type=metrics,
category00=db,category01=connection,
category02=pool,category02=numActive,
name=value

  • db.connection.pool.numActive.value

データベース接続プール内のアクティブ接続数の最新の測定値。

データベース接続が失われた場合は -1 に設定します。

com.atlassian.confluence:type=metrics,
category00=db,category01=connection,
category02=pool,category02=numIdle,
name=statistics

  • db.connection.pool.numIdle.statistics

前回の再起動以降のデータベース接続プール内のアイドル接続数の集計統計

com.atlassian.confluence:type=metrics,
category00=db,category01=connection,
category02=pool,category02=numIdle,
name=value

  • db.connection.pool.numIdle.value

データベース接続プール内のアイドル接続数の最新の測定値。

データベース接続が失われた場合は -1 に設定します。

com.atlassian.confluence:type=metrics,
category00=db,category01=connection,
category02=state,name=value

  • db.connection.state.value

データベースへの接続状態を示す最新のインジケーター (0 は接続に失敗した、1 は正常に動作している)

com.atlassian.confluence:type=metrics,
category00=db,category01=connection,
category02=failures,name=counter

  • db.connection.failures.counter

前回の再起動以降のデータベース接続障害の回数

HTTP 接続メトリック

Bean オブジェクト名

メトリックの説明

com.atlassian.confluence:type=metrics,
category00=http,category01=connection,
category02=pool,category03=numActive,
name=value

  • http.connection.pool.numActive.value

HTTP 接続プール内のアクティブ接続数の最新の測定値。複数のプールが定義されている場合、すべてのプールからアクティブな接続の合計が返されます。

com.atlassian.confluence:type=metrics,
category00=http,category01=connection,
category02=pool,category03=numIdle,
name=value

  • http.connection.pool.numIdle.value

HTTP 接続プール内のアイドル接続数の最新の測定値。複数のプールが定義されている場合、すべてのプールからアイドル接続の合計が返されます。

com.atlassian.confluence:type=metrics,
category00=http,category01=connection,
category02=pool,category03=numMax,
name=value

  • http.connection.pool.numMax.value

HTTP コネクタによって作成され、リクエストに使用できるスレッドの最大数。

com.atlassian.confluence:type=metrics,
category00=http,category01=connection,
category02=sessions,category03=active,
name=value

  • http.connection.sessions.active.value

アクティブなユーザー セッション数の最新の指標

com.atlassian.confluence:type=metrics,
category00=http,category01=connection,
category02=sessions,category03=active,
name=statistics

  • http.connection.sessions.active.statistics

アクティブなユーザー セッション数の集計統計

com.atlassian.confluence:type=metrics,
category00=http,category01=connection,
category02=sessions,category03=recent,
name=value

  • http.connection.sessions.recent.value

最近のユーザー セッション数の最新の指標。最近のセッションとは、直近 1 時間にアクティブだったセッションのことです

com.atlassian.confluence:type=metrics
category00=http,category01=requests,
name=value

  • http.requests.value

1 分あたりの HTTP リクエストの総数の最新の測定値

com.atlassian.confluence:type=metrics,
category00=http,category01=requests,
name=statistics

  • http.requests.statistics

1 分あたりの HTTP リクエストの総数の集計統計

製品間のメトリックの詳細は製品内診断のために製品間指標を解釈する」という記事をご参照ください。

製品内診断モニタリングを有効にする

IPD モニタリングは初期設定で有効になっています。管理する方法は次のとおりです。

  1. [管理] > [一般設定] に移動します。

  2. 左側のパネルで [モニタリング] を選択します。

  3. [製品内診断を有効化] トグルを使用して、IPD モニタリングを有効または無効にします。

スクリーンショット: 製品内診断が無効になっている JMX モニタリング設定

ログ形式

atlassian-confluence-ipd-monitoring.log への書き込みは log4j を使用して行われます。その設定は log4j.properties で管理します。

#####################################################
# In-product diagnostics monitoring logging
#####################################################

log4j.appender.ipdLogAppender=com.atlassian.confluence.logging.ConfluenceHomeLogAppender
log4j.appender.ipdLogAppender.LogFileName=atlassian-confluence-ipd-monitoring.log
log4j.appender.ipdLogAppender.MaxFileSize=20480KB
log4j.appender.ipdLogAppender.MaxBackupIndex=5
log4j.appender.ipdLogAppender.layout=com.atlassian.logging.log4j.NewLineIndentingFilteringPatternLayout
log4j.appender.ipdLogAppender.layout.ConversionPattern=%d %m%n

log4j.logger.ipd-monitoring = INFO, consolelog
log4j.additivity.ipd-monitoring = false
log4j.logger.ipd-monitoring-data-logger = INFO, ipdLogAppender
log4j.additivity.ipd-monitoring-data-logger = false

ログの内容

初期設定では、各ログ エントリに簡潔データ セットが含まれています。拡張データ セットをログに記録するには、confluence.in.product.diagnostics.extended.logging 機能フラグを有効にします。

拡張データを有効にするには、次の手順に従います。

  1. <CONFLUENCE_URL>/admin/darkfeatures.action に移動します。ここで、<CONFLUENCE_URL> は Confluence インスタンスのベース URL です。

  2. [Enable dark feature (ダーク機能を有効)] フィールドに confluence.in.product.diagnostics.extended.logging と入力します。

  3. [送信] を選択します。ダーク機能の管理方法をご確認ください。

    1. 拡張データを無効にするには、[サイトのダーク機能] セクションで、confluence.in.product.diagnostics.extended.logging を探して [削除] を選択します。

次の各表で、簡潔ログ形式と拡張ログ形式の構造をご確認ください。

JMX のメトリックは常に拡張形式です。

メトリック属性の詳細


簡潔データ

MBean タイプ

Properties

属性

カウンター

timestamp

ラベル

属性

_count

_value

統計

_99thPercentile

_max

_min

_mean

簡潔ログの行形式の例を表示
2023-01-13 11:51:13,106 IPDMONITORING {"timestamp":"1673610673","label":"DB.CONNECTION.POOL.NUMACTIVE.STATISTICS","attributes":{"_max":"2.0","_mean":"1.2436699769063984","_99thPercentile":"2.0","_count":"5","_min":"1.0"}}

拡張データ

MBean タイプ

Properties

属性

カウンター

timestamp

ラベル

属性

オブジェクト名

_count

_fifteenMinuteRate

_fiveMinuteRate

_meanRate

_oneMinuteRate

_rateUnit

_value

_number

統計

_50thPercentile

_75thPercentile

_95thPercentile

_98thPercentile

_99thPercentile

_999thPercentile

_count

_min

_max

_mean

_stdDev

_durationUnit

_fifteenMinuteRate

_fiveMinuteRate

_meanRate

_oneMinuteRate

_rateUnit

拡張ログの行形式の例を表示
2022-09-06 18:38:48,015 IPDMONITORING {"timestamp":"1662453528","label":
"DB.CONNECTION.LATENCY.STATISTICS","objectName":
"com.atlassian.confluence:category00\u003ddb,category01\u003dconnection,category02\
u003dlatency,name\u003dstatistics,type\u003dmetrics",
"attributes":{"_oneMinuteRate":"0.02012497818617073","_50thPercentile":"0.0",
"_mean":"1.9379304604014412E-25","_max":"1.0","_stdDev":"4.40219315841711E-13",
"_98thPercentile":"0.0","_meanRate":"0.003612560785169162","_rateUnit":
"events/second","_99thPercentile":"0.0","_count":"16","_durationUnit":
"milliseconds","_75thPercentile":"0.0","_fiveMinuteRate":
"0.005912972095043379","_fifteenMinuteRate":"0.0037696657500141968",
"_999thPercentile":"0.0","_95thPercentile":"0.0","_min":"0.0"}}

指標属性の定義

指標属性の詳細は、次のセクションを展開してご確認ください。

回数の指標属性

属性

定義

_count

現在の時間枠で指標が出現した回数

_fifteenMinuteRate

直近 15 分間で指標が出現した回数

_fiveMinuteRate

直近 5 分間で指標が出現した回数

_meanRate

メーターの作成後にイベントが発生した平均レート

_oneMinuteRate

直近 1 分間で指標が出現した回数

_rateUnit

レートに使用される測定単位

次の属性にご注意ください: _oneMinuteRate_fiveMinuteRate_fifteenMinuteRate

_count は、測定値が時間の経過とともにどのように変化したかを示すものではありません。最新性は分単位のレートで提供されます。

値の指標属性

属性

定義

_value

指標の直近のサンプル値

_number

_value 属性と同じ値が含まれています

統計の指標属性

MBean タイプの統計の指標は、集計値とも呼ばれます。この指標は、一定期間で変更が行われた項目の統計を提供します。たとえば、メール キューで処理された項目や、エラー メール キューに追加された項目などです。

時間枠

特に明記されていない限り、集計値はスライディング時間枠で算出されます。これは、直近の 5 分間を概ねカバーします。

パーセンタイル値は、蓄積サンプリング技法で算出されます。この技法では、データ ストリーム全体を統計的に表す、小さくて管理しやすい値のセットを使用するため、メモリに保存する必要のあるデータの量が軽減します。

リセット

スライディング時間枠の外では、集計値が次のタイミングですべてリセットされます。

  • システムが再起動するたび。

  • JMX モニタリングまたは製品内診断指標が有効化されるたび。

その他の Data Center 製品の JMX モニタリングと製品内診断に関する詳細をご確認ください。

次の表に、統計の指標属性の定義を示します。

属性

定義

_50thPercentile

現在の時間枠における、すべての測定値の 50 % を下回る測定値。中央とも呼ばれます。

この属性は、中間の測定値を表す手段として、平均値の代わりになります。中央値は、平均値よりも外れ値によって歪む可能性が低くなります。

_75thPercentile

現在の時間枠内における、すべての測定値の 75 % を下回る測定値。第 3 四分位数

_95thPercentile

現在の時間枠内における、すべての測定値の 95 % を下回る測定値

_98thPercentile

現在の時間枠内における、すべての測定値の 98 % を下回る測定値

_99thPercentile

現在の時間枠内における、すべての測定値の 99 % を下回る測定値

_999thPercentile

現在の時間枠内における、すべての測定値の 999 % を下回る測定値

_count

現在の時間枠で指標が出現した回数

_min

現在の時間枠内における最小測定値

_max

現在の時間枠内における最大測定値_max_min の間の統計的範囲で値の変動性を測定する尺度

_mean

現在の時間枠における平均値。

この属性は、大きな外れ値の測定値によって歪む可能性があります。このような場合は、_50thPercentile が中間値としてより適切な指標を提供します。

_stdDev

データのばらつきを示す指標。

標準偏差が低い場合は、値がセットの平均値に近い傾向があることを示します。一方、標準偏差が高い場合は、値がより広い範囲に分散していることを示します。

_durationUnit

期間に使用される測定単位

_fifteenMinuteRate

直近 15 分間で指標が出現した回数

_fiveMinuteRate

直近 5 分間で指標が出現した回数

_meanRate

メーターの作成後にイベントが発生した平均レート

_oneMinuteRate

直近 1 分間で指標が出現した回数

_rateUnit

レートに使用される測定単位

次の属性にご注意ください: _oneMinuteRate_fiveMinuteRate_fifteenMinuteRate

_count は、測定値が時間の経過とともにどのように変化したかを示すものではありません。最新性は分単位のレートで提供されます。

最終更新日 2023 年 6 月 28 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.