GenericJMX
GenericJMX モニターには、この Splunk Observability Cloud インテグレーションを使用してください。メリット、インストール、設定、メトリクスを参照してください
Splunk Distribution of OpenTelemetry Collector は、Smart Agent レシーバを genericjmx モニタータイプで使用して、管理情報を提供しクエリする汎用フレームワークである Java Management Extensions(JMX)上のメトリクスを公開します。このインターフェイスは、使用されるメモリとスレッドに関する情報を提供するために、Java 仮想マシン(JVM)によって使用されます。より柔軟な代替手段としては、「JMX モニター」を使用します。
このインテグレーションはKubernetesとLinuxでのみ利用可能です。
メリット
インテグレーションを設定すると、これらの機能にアクセスできるようになります:
-
メトリクスを表示します。独自のカスタムダッシュボードを作成することができ、ほとんどのモニターは組み込みのダッシュボードも提供しています。ダッシュボードの詳細については、「Splunk Observability Cloudでダッシュボードを表示する」を参照してください。
-
Infrastructure Monitoring に表示される環境内の物理サーバー、仮想マシン、AWS インスタンス、およびその他リソースのデータ駆動型の視覚化を表示します。ナビゲータの詳細については、「Splunk Infrastructure Monitoring でナビゲーターを使用する」を参照してください。
-
Metric Finder へアクセスし、モニターから送信されたメトリクスを検索します。詳細は、「メトリクス・ファインダーとメタデータ・カタログを検索する」を参照してください。
インストール
このインテグレーションを導入するには、以下の手順に従ってください:
-
Splunk Distribution of OpenTelemetry Collector をホストまたはコンテナプラットフォームにデプロイします:
-
設定のセクションで説明するように、モニターを設定します。
-
Splunk Distribution of OpenTelemetry Collector を再起動します。
設定
Smart Agent モニターとCollector のインテグレーションを使用するには、以下の手順に従います:
-
Smart Agent レシーバーを設定ファイルに含めます。
-
レシーバーセクションおよびパイプラインセクションの両方で、Collector 構成にモニタータイプを追加します。
-
「Collector でSmart Agent モニターを使用する」を参照してください。
-
Smart Agent レシーバーの設定方法を参照してください。
-
一般的な構成オプションのリストについては、「モニターの共通設定」を参照してください。
-
Collector の詳細については、「はじめに:Collector を理解して使用する」を参照してください。
-
例
このインテグレーションを有効にするには、Collector構成に以下を追加します:
receivers:
smartagent/genericjmx:
type: collectd/genericjmx
... # Additional config
次に、設定ファイルの service.pipelines.metrics.receivers セクションにモニターを追加します:
service:
pipelines:
metrics:
receivers: [smartagent/genericjmx]
高度な設定例
次の例を参照してください:
receivers:
smartagent/genericjmx:
type: collectd/genericjmx
host: my-java-app
port: 7099
mBeanDefinitions:
threading:
objectName: java.lang:type=Threading
values:
- type: gauge
table: false
instancePrefix: jvm.threads.count
attribute: ThreadCount
コンフィギュレーション設定
次の表に、このモニターの設定オプションを示します:
|
オプション |
必須 |
タイプ |
説明 |
|---|---|---|---|
|
|
yes |
| 接続先のホスト。JMX がリモートアクセス用に設定され エージェントからアクセスできる必要があります。 |
|
|
yes |
| アプリケーションの(RMI ポートではない)JMX 接続ポート。この は、アプリケーションの実行時にJVMに設定されるべき |
|
|
いいえ |
| |
|
|
いいえ |
| これは、Splunk Observability Cloud UIでサービスタイプを識別して、内蔵コンテンツを取得する方法です。 |
|
|
いいえ |
| JMX 接続文字列。これは Go テンプレートとしてレンダリングされ、 この設定の他の値にアクセスできます。この文字列を直接設定しないでください。上で指定したようにホストとポートを設定することをお勧めします。デフォルト値は |
|
|
いいえ |
| 生成されたプラグイン・インスタンスにプレフィックスをつけます。第 2 の
|
|
|
いいえ |
|
サーバーを認証するユーザー名 |
|
|
いいえ |
|
サーバーを認証するためのユーザーパスワード |
|
|
いいえ |
| 接続収集時にカスタムディメンションのキーと値のペアを取り込み します。 |
|
|
いいえ |
| 実際に収集するために mBeanDefinitions で定義されているMBeansのリスト。指定しない場合、定義されたすべての MBeans が収集されます。 |
|
|
いいえ |
| 省略する MBean のリスト。これは、ごく少数の MBeansのみをデフォルトのリストから省く必要がある場合に有用です。 |
|
|
いいえ |
| JMX MBean の値をメトリクスにマッピングする方法を指定します。特有 のサービスモニター(Cassandra、Kafka、CctiveMQ など)には、マッピングのセットがあらかじめロードされており、このオプションで追加したマッピングは、それらのマッピングにマージされます。詳細については、Collectd のドキュメントを参照してください。 |
ネストされた mBeanDefinitions コンフィギュレーションオブジェクトには以下のフィールドがあります。
|
オプション |
必須 |
タイプ |
説明 |
|---|---|---|---|
|
|
いいえ |
| MBeanServerからMBeansを取得するために使われるパターンを設定 MBeanServer。複数の MBean が返される場合、 |
|
|
いいえ |
|
生成されたプラグイン・インスタンスにプレフィックスをつけます。 |
|
|
いいえ |
| JMX が MBeans を識別するために使用するオブジェクト名には、 基本的にキーと値のペアである、いわゆる「プロパティ」が含まれます。指定されたオブジェクト名が一意でなく、複数の MBean が返される場合、通常はそれらのプロパティの値が異なっています。このオプションを使用して、適切なプロパティ値からプラグインインスタンスを構築できます。これはオプションであり、複数のプロパティ値からプラグインインスタンスを生成するために繰り返すことができます。 |
|
|
いいえ |
| value ブロックは、MBean の1つ以上の属性を値リストにマッピングします。各 MBean ブロック内に少なくとも 1 つの |
|
|
いいえ |
|
ネストされた values コンフィギュレーションオブジェクトには以下のフィールドがあります。
|
オプション |
必須 |
タイプ |
説明 |
|---|---|---|---|
|
|
いいえ |
| MBean 属性の値を扱うために使われるデータセットを設定 します。 |
|
|
いいえ |
| 返された属性が複合型の場合、true に設定します。
|
|
|
いいえ |
| MBeanブロックの直下にある同名のオプションと同様に機能 しますが、代わりに型インスタンスを設定します。 |
|
|
いいえ |
| MBeanブロックの直下にある同名のオプションと同様に機能 しますが、代わりに型インスタンスを設定します。 |
|
|
いいえ |
| 値を読み込む属性名を設定します。を ドットを使用してキー名を属性名に連結することで、複合タイプのキーにアクセスできます。たとえば、「attrib0.key42」です。 |
|
|
いいえ |
| 上記の attribute 設定の複数形。これは1つの MBean から複数のメトリクスを導出するために使用されます。 |
メトリクス
https://raw.githubusercontent.com/signalfx/splunk-otel-collector/main/internal/signalfx-agent/pkg/monitors/collectd/genericjmx/metadata.yaml
備考
-
Splunk Observability Cloud で利用可能なメトリクスタイプの詳細は、「メトリクスタイプ」を参照してください。
-
ホストベースのサブスクリプションプランでは、デフォルトのメトリクスは、ホスト、コンテナ、バンドルメトリクスなど、Splunk Observability Cloud のホストベースのサブスクリプションに含まれるメトリクスです。カスタムメトリクスはデフォルトでは提供されていないため、料金が発生する場合があります。詳細については、「メトリクスカテゴリ」を参照してください。
-
MTSベースのサブスクリプションプランでは、すべてのメトリクスがカスタムです。
-
メトリクスを追加するには、「その他のメトリクスの追加」で
extraMetricsの設定方法を参照してください。
トラブルシューティング
__ ___ ___ _ ______ _____________ _____ ________ ___ ___ ___ ____ __ ___ ____ ____ __ ______ _____________ ______ ___ ___ ___ ____ __ ___ _________ _____
_________ __ ______ _____________ _____ _________
-
______ _ ____ __ ___ ______ _______ _______
-
_______ ______ ________
_________ __ ___________ _________ ___ ____ _____ _____
-
___ _ ________ ___ ___ _______ _______ _________ _______ __ ______ ________
-
____ ___ ______ ______________ ____ _____ _____ _______ __ ___________ ____ __________ _________ ___ ______ _________ __________ __ _____ ___ ____ _______
公開されているポート
次の Java プロパティは、JMX ポートをインバウンド接続に公開する方法を示しています。詳細については、 Java ドキュメントの「JMX テクノロジーを使用したモニタリングと管理」を参照してください。
java \
-Dcom.sun.management.jmxremote.port=5000 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.rmi.port=5000 \
...
これは、エージェントが Java アプリケーションホストのポート 5000 へのアクセスを許可されている限り機能します。これによって認証や暗号化が有効になることはありませんが、これらは追加できることに注意してください。
次のエラーメッセージは、ホストの設定が 172.17.0.3 に設定され、ポートが 5000 に設定されていることを前提としています。ホスト設定とポート設定が異なる場合があります。次の項に、表示される可能性のあるエラーとその意味を示します。
接続拒否
java \
-Dcom.sun.management.jmxremote.port=5000 \
-Dcom.sun.management.jmxremote.authenticate=false \
-Dcom.sun.management.jmxremote.ssl=false \
-Dcom.sun.management.jmxremote.rmi.port=5000 \
...
このエラーは、指定されたホストで JMX 接続ポートが開いていないことを示します。netstat/ss または他のツールを使用して、このポートが設定されたホスト上で実際に開かれており、適切なアドレスでリスニングしていることを確認します。エージェントがリモートサーバーで実行されている場合、JMX がローカルホストのみをリスニングしていない可能性があります。
RMI接続の問題
Creating MBean server connection failed: java.rmi.ConnectException: Connection refused to host: 172.17.0.3; nested exception is:
java.net.ConnectException: Connection timed out (Connection timed out)
これは、JMX 接続ポートには正常に到達したものの、接続先の RMI ポートがファイアウォールなどによってブロックされていることを示します。Java アプリケーションの com.sun.management.jmxremote.rmi.port プロパティが JMX 接続ポートと同じポートに設定されていることを確認してください。同様の原因を示す、「接続リセット」または「接続拒否」というエラーメッセージの他のバリエーションが存在する可能性があります。