Docs » Splunk Distribution of the OpenTelemetry Collector の利用開始 » App とサービスのオートディスカバリー » Linux用のオートディスカバリーとゼロコードインストルメンテーション » Linux でのサードパーティサービスのオートディスカバリー

Linux でのサードパーティサービスのオートディスカバリー 🔗

オートディスカバリーを使用して、Linux 環境で実行されているサードパーティのアプリケーション (データベースや Web サーバーなど) を見つけることができます。オートディスカバリーは、これらのアプリケーションからテレメトリデータを収集し、Splunk Observability Cloud に送信します。

注釈

Collector をバージョン 0.94.0 以上に更新して、自動サービスディスカバリーを有効にします。

自動ディスカバリーの仕組み 🔗

Collectorを自動検出で実行すると、オブザーバーエクステンションによってプラットフォーム上で検出されたエンドポイントに対して、サポートされているメトリクスレシーバーの組み込み設定をテストします。これは、Collectorサービスを開始する前に行われます。

成功基準に一致するメトリクスを取得する、動的にインスタンス化されたすべてのレシーバーについて、Collector はディスカバリー構成を、必要なオブザーバー拡張と同様に、既知の作業ルールを持つレシーバークリエーターインスタンスに変換します。詳細については、レシーバークリエーターレシーバー を参照してください。同時に、Collector は実行時に構成を metrics パイプラインに追加します。

サービスとの接続は確立できるが、期待されるメトリクスを受信できないレシーバーに対して、ディスカバリーモードは、どのプロパティを設定すべきか、またはどの拡張機能または設定をサービス上で構成して、正常にテレメトリを取得すべきかを提案します。ディスカバリー・プロセスを調整するために、ディスカバリー・プロパティを使用して、認証情報など、必要なターゲット固有の構成値を定義できます。

Kubernetesで実行する場合、ディスカバリーモードは k8s_observer オブザーバーによって発見されたエンドポイントに対して、バンドルされたメトリクスレシーバーの設定をテストします。ー発見されたインスタンスはー成功したインスタンスはー既存のー既存サービス構成に組み込まれます。

アクティブなメトリクスソースを検出する 🔗

アクティブでサポートされているメトリクスソースを検出するには、目的のモニタリング・ホスト上で以下のコマンドを実行します:

bin/otelcol --discovery --dry-run

注釈

自動検出には、環境変数 SPLUNK_REALMSPLUNK_ACCESS_TOKEN がそれぞれSplunk Observabilityレルム (例えば us1 ) とAPIトークンを参照する必要があります。あるいは、--config <path_to_config_yaml> オプションを使用することもできます。

--dry-run オプションを指定すると、結果の設定が実行時に Collector に適用されないようになります。サンプルの設定は代わりに YAML としてコンソールに表示されます。例:

$ Discovering for next 10s...
Partially discovered "smartagent/postgresql" using "docker_observer"
endpoint "5c9c80ba4319395c26255b6374f048ca973d3618fdd4b92a9ed601c7dddbff6a:5432":
Please ensure your user credentials are correctly specified with
`--set splunk.discovery.receivers.smartagent/postgresql.config.params::username="<username>"`
and `--set splunk.discovery.receivers.smartagent/postgresql.config.params::password="<password>"`
or `SPLUNK_DISCOVERY_RECEIVERS_smartagent_x2f_postgresql_CONFIG_params_x3a__x3a_username="<username>"`
and `SPLUNK_DISCOVERY_RECEIVERS_smartagent_x2f_postgresql_CONFIG_params_x3a__x3a_password="<password>"`
environment variables.

自動ディスカバリーがメトリクスデータを抽出するために検出されたサービスにアクセスできない場合、指示と元のログエラーメッセージを提供します。この例では、ディスカバリーモードが、発見された PostgreSQLサーバーに認証情報がないか、不正確であるために認証できません。ディスカバリー・プロパティの設定または修正 を参照してください。

注釈

Collector のLinuxインストールスクリプトは、--discovery オプションをサポートしています。インストールスクリプトでディスカバリーモードをオンにすると、結果の構成が metrics パイプラインに直接適用されます。例:

curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
sudo sh /tmp/splunk-otel-collector.sh --realm <realm>  <token> --mode agent --discovery

ディスカバリー・プロパティの設定または修正 🔗

ディスカバリーモードで特定された問題のほとんどを修正するには、ステータス・メッセージで提案された構成設定を追加または編集します。必要な設定は、以下の方法で定義できます:

  • 実行時にディスカバリーモードが使用する設定を指定するには、--set オプションを使用します。例:

    --set splunk.discovery.receivers.smartagent/postgresql.config.params::username='${PG_USERNAME_ENVVAR}'
    
  • 設定の環境変数を設定します。各ディスカバリー・プロパティは、非単語文字に _x<hex pair>_ エンコードされた区切り文字 [^a-zA-Z0-9_] を使用して、同等の環境変数フォームを持ちます:

    例:

    export SPLUNK_DISCOVERY_RECEIVERS_smartagent_x2f_postgresql_CONFIG_params_x3a__x3a_username='${PG_USERNAME_ENVVAR}'
    
  • config.d/properties.discovery.yaml ファイルでプロパティを定義します。プロパティ・ファイルによりプロパティを定義する を参照してください。

問題が検出されると、ディスカバリーモードは、不足しているコンフィギュレーション設定を完了するために使用しなければならないパラメータや環境変数を提案します。

注釈

デフォルトでは、ディスカバリー・プロセスの時間は10秒です。これは、環境変数 SPLUNK_DISCOVERY_DURATION を設定することで増やすことができます。例: export SPLUNK_DISCOVERY_DURATION = 20s

高度なカスタマイズ設定を含む詳細については、サードパーティアプリケーションのディスカバリー設定をカスタマイズする を参照してください。

使用例 🔗

次の例は、ディスカバリーモードを使用してLinuxにCollectorをインストールし、MySQLデータベースを検索してメトリクスを取得する方法を示しています。

  1. MySQLが稼働しているホストにCollectorをインストールします。--discovery フラグを含めます:

    curl -sSL https://dl.signalfx.com/splunk-otel-collector.sh > /tmp/splunk-otel-collector.sh && \
    sudo sh /tmp/splunk-otel-collector.sh --realm <realm> - <token> --mode agent --discovery
    
  2. 以下のコマンドで Collector ログを取得し、検出プロセスの出力を確認します:

    journalctl -u splunk-otel-collector -f
    

    以下のサンプルログでは、MySQLデータベースが部分的に検出されています。エラーメッセージは問題を示しており、この場合は認証情報が間違っています:

    Partially discovered "mysql" using "docker_observer" endpoint "acb7cf9f5d674b8bb83487e043857d98c42b93f2214f114b2228e86932b2cde2:3306": Make sure your user credentials are correctly specified using the `--set splunk.discovery.receivers.mysql.config.username="<username>"` and `--set splunk.discovery.receivers.mysql.config.password="<password>"` command or the `SPLUNK_DISCOVERY_RECEIVERS_mysql_CONFIG_username="<username>"` and `SPLUNK_DISCOVERY_RECEIVERS_mysql_CONFIG_password="<password>"` environment variables. (evaluated "{\"error\":\"Error 1045 (28000): Access denied for user 'splunk.discovery.default'@'172.17.0.1' (using password: YES)\",\"kind\":\"receiver\",\"message\":\"Failed to fetch InnoDB stats\"}")
    
  3. /etc/otel/collector/config.d ディレクトリに以下の内容で properties.discovery.yaml ファイルを作成し、必要な認証情報を提供します:

    splunk.discovery.receivers.mysql.config.username: "<username>"
    splunk.discovery.receivers.mysql.config.password: "<password>"
    
  4. 以下のコマンドで Collector を再起動します:

    sudo systemctl restart splunk-otel-collector
    
  5. Collectorのログをもう一度調べて、MySQLデータベースが正常に検出されたことを確認します:

    journalctl -u splunk-otel-collector -f
    
  6. 成功すると、ログには以下のような行が含まれます:

    Successfully discovered "mysql" using "docker_observer" endpoint "abcdef1234:3306".
    

MongoDBの自動ディスカバリー 🔗

デフォルトでは、MongoDB の自動ディスカバリールールはサーバーが SSL/TLS を有効にしていると仮定しています。

そうでない場合は、以下のコマンドラインフラグでその旨を示します:

--set splunk.discovery.receivers.mongodb.config.tls::insecure=true

トラブルシューティング 🔗

Splunk Observability Cloudをご利用のお客様で、Splunk Observability Cloudでデータを確認できない場合は、以下の方法でサポートを受けることができます。

Splunk Observability Cloudをご利用のお客様

見込み客および無料トライアルユーザー様

  • Splunk Answers のコミュニティサポートで質問し、回答を得る

  • Join the Splunk #observability user group Slack channel to communicate with customers, partners, and Splunk employees worldwide. To join, see Chat groups in the Get Started with Splunk Community manual.

このページは 2025年02月11日 に最終更新されました。