Linux でのサードパーティサービスのオートディスカバリー 🔗
オートディスカバリーを使用して、Linux 環境で実行されているサードパーティのアプリケーション (データベースや Web サーバーなど) を見つけることができます。オートディスカバリーは、これらのアプリケーションからテレメトリデータを収集し、Splunk Observability Cloud に送信します。
注釈
Collector をバージョン 0.94.0 以上に更新して、自動サービスディスカバリーを有効にします。
自動ディスカバリーの仕組み 🔗
Collectorを自動検出で実行すると、オブザーバーエクステンションによってプラットフォーム上で検出されたエンドポイントに対して、サポートされているメトリクスレシーバーの組み込み設定をテストします。これは、Collectorサービスを開始する前に行われます。
成功基準に一致するメトリクスを取得する、動的にインスタンス化されたすべてのレシーバーについて、Collector はディスカバリー構成を、必要なオブザーバー拡張と同様に、既知の作業ルールを持つレシーバークリエーターインスタンスに変換します。詳細については、レシーバークリエーターレシーバー を参照してください。同時に、Collector は実行時に構成を metrics
パイプラインに追加します。
サービスとの接続は確立できるが、期待されるメトリクスを受信できないレシーバーに対して、ディスカバリーモードは、どのプロパティを設定すべきか、またはどの拡張機能または設定をサービス上で構成して、正常にテレメトリを取得すべきかを提案します。ディスカバリー・プロセスを調整するために、ディスカバリー・プロパティを使用して、認証情報など、必要なターゲット固有の構成値を定義できます。
Kubernetesで実行する場合、ディスカバリーモードは k8s_observer
オブザーバーによって発見されたエンドポイントに対して、バンドルされたメトリクスレシーバーの設定をテストします。ー発見されたインスタンスはー成功したインスタンスはー既存のー既存サービス構成に組み込まれます。
アクティブなメトリクスソースを検出する 🔗
アクティブでサポートされているメトリクスソースを検出するには、目的のモニタリング・ホスト上で以下のコマンドを実行します:
bin/otelcol --discovery --dry-run
注釈
自動検出には、環境変数 SPLUNK_REALM
と SPLUNK_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データベースを検索してメトリクスを取得する方法を示しています。
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
以下のコマンドで 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\"}")
/etc/otel/collector/config.d ディレクトリに以下の内容で properties.discovery.yaml ファイルを作成し、必要な認証情報を提供します:
splunk.discovery.receivers.mysql.config.username: "<username>" splunk.discovery.receivers.mysql.config.password: "<password>"
以下のコマンドで Collector を再起動します:
sudo systemctl restart splunk-otel-collector
Collectorのログをもう一度調べて、MySQLデータベースが正常に検出されたことを確認します:
journalctl -u splunk-otel-collector -f
成功すると、ログには以下のような行が含まれます:
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 サポートポータル でケースを送信する
Splunkサポート に連絡する
見込み客および無料トライアルユーザー様
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.