Docs » Splunk Distribution of the OpenTelemetry Collector の利用開始 » Discover telemetry sources automatically » Automatic discovery and configuration for Linux » Automatic discovery and configuration for third-party applications in Linux

Automatic discovery and configuration for third-party applications in Linux 🔗

You can use automatic discovery and configuration to find third-party applications (such as databases and web servers) running in your Linux environment. Automatic discovery gathers telemetry data from these applications and sends it to Splunk Observability Cloud.

注釈

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

How automatic discovery works 🔗

When you run the Collector with automatic discovery, it tests built-in configurations for supported metric receivers against endpoints discovered on your platform by observer extensions. This happens before starting the Collector service.

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

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

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

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

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

bin/otelcol --discovery --dry-run

注釈

Automatic discovery requires that environment variables SPLUNK_REALM and SPLUNK_ACCESS_TOKEN reference your Splunk Observability realm (for example us1) and API token respectively. Alternatively, you can use the --config <path_to_config_yaml> option.

--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.

When automatic discovery can’t access a discovered service to extract metric data, it provides instructions and the original log error message. In the example, discovery mode can’t authenticate to the discovered PostgreSQL server due to missing or incorrect credentials, which you can provide through custom discovery properties. See ディスカバリー・プロパティの設定または修正.

注釈

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

For more details, including advanced customization settings, see Customize discovery settings for third-party applications.

使用例 🔗

次の例は、ディスカバリーモードを使用して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".
    

Automatic discovery for MongoDB 🔗

By default, MongoDB automatic discovery rules assume the server is SSL/TLS enabled.

If it isn’t, use the following command line flag to indicate so:

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

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

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

Splunk Observability Cloudをご利用のお客様

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

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

  • Splunk #observability ユーザーグループの Slack チャンネルに参加して、世界中の顧客、パートナー、Splunk 社員とのコミュニケーションを図る。参加するには、Get Started with Splunk Community マニュアルの チャットグループ を参照してください。

This page was last updated on 2024年09月18日.