パート3:Collectorの設定に関する一般的な問題のトラブルシューティング 🔗
当チュートリアルのパート1およびパート2では、Collectorをインストールし、コードエディターを使用してCollectorの設定を編集および適用する方法を学びました。チュートリアルの概要については、チュートリアル:Linuxホスト上でのSplunk Distribution of OpenTelemetry Collectorの設定 を参照してください。
Collectorの設定は、間違ったフォーマットや無効な設定値など、さまざまな理由で適用に失敗することがあります。
このチュートリアルの最後となる3つ目のパートでは、sample.yamlの初期設定ファイルを編集して、自分で問題を生成および修正し、診断テクニックを使用します。
インデントの問題を修正する 🔗
インデントの問題は、Collectorの設定に関する問題の最も一般的な原因の1つです。パート1で作成したsample.yamlファイルを開き、「receivers」の下に次のスニペットを追加して試してみてください:
receivers:
syslog:
# Rest of the configuration
ファイルを保存して、otelcol validate --config=sample.yaml
を実行します。結果として生じるCollector出力を見てください:
Error: failed to get config: cannot unmarshal the configuration: 1 error(s) decoding:
* '' has invalid keys: syslog
2024/02/19 18:17:36 main.go:89: application run finished with error: failed to get config: cannot unmarshal the configuration: 1 error(s) decoding
これを修正するには、syslog
のレシーバーの行をスペース2つでインデントし、セクション全体が以下のように読めるようにします:
receivers:
syslog:
otlp:
protocols:
grpc:
endpoint: "${SPLUNK_LISTEN_INTERFACE}:4317"
http:
endpoint: "${SPLUNK_LISTEN_INTERFACE}:4318"
ファイルを保存し、otelcol validate --config=sample.yaml
を再度実行します。設定がエラーをスローしないことを確認してください。
設定のパイプラインをチェックする 🔗
Collectorは、レシーバーが定義済みであっても、設定内の他の場所でそのレシーバーを使用していない場合にはエラーをスローしません。これは、多くの場合、バックエンドにデータが表示されない場合の混乱の原因です。
現状では、Collectorを実行しても、パイプラインに新しいレシーバーがないため、データが表示されません。これを修正するには、sample.yaml設定ファイルの「pipelines」セクションに syslog
レシーバーを追加します。
この編集の完了後のファイルは、以下のようになります:
extensions:
health_check:
endpoint: "${SPLUNK_LISTEN_INTERFACE}:13133"
receivers:
syslog:
otlp:
protocols:
grpc:
endpoint: "${SPLUNK_LISTEN_INTERFACE}:4317"
http:
endpoint: "${SPLUNK_LISTEN_INTERFACE}:4318"
processors:
batch:
exporters:
otlp:
endpoint: "${SPLUNK_GATEWAY_URL}:4317"
tls:
insecure: true
service:
pipelines:
traces:
receivers:
- otlp
processors:
- batch
exporters:
- otlp
logs:
receivers:
- syslog
exporters:
- otlp
extensions: [health_check]
コンポーネントを最初に定義せずにパイプラインに追加した場合にも、Collectorはエラーをスローします。 receivers
セクションの下にある syslog:
を削除して、設定を再度検証してみてください。次の例のようなエラーが表示されます:
Error: service::pipelines::logs: references receiver "syslog" which is not configured
2024/02/19 18:37:42 main.go:89: application run finished with error: service::pipelines::logs: references receiver "syslog" which is not configured
健全性チェック拡張機能を使用してCollectorのステータスを確認する 🔗
では、Collectorがオンラインであることを確認してみましょう。健全性チェック拡張機能は、Collectorのステータスを確認するために開くことができるローカルURLを提供します。Splunk Distribution of OpenTelemetry Collectorでは、デフォルトでこの拡張機能が有効になっています。
ご利用のLinuxマシンで、次のURLをブラウザで開いて、Collectorサービスのステータスを確認します: http://localhost:13133
。すべてが期待どおりに実行されている場合は、次のようなメッセージが表示されます:
{
"status": "Server available",
"upSince": "2020-11-11T04:12:31.6847174Z",
"uptime": "49.0132518s"
}
内蔵ダッシュボードを使用してコレクターを監視する 🔗
Collectorのステータスを確認したら、Splunk Observability Cloudの内蔵ダッシュボードを使用して、デプロイ済みのすべてのコレクターのステータスを監視できます。このダッシュボードは、metrics/internal
パイプラインのPrometheusレシーバーから送信されるテレメトリを使用します。
内蔵のCollectorダッシュボードにアクセスするには、以下の手順に従います:
Splunk Observability Cloud にログインします。
左のナビゲーションメニューで Dashboards を選択します。
検索バーを使用するか、ページを参照して、OpenTelementry Collectorタイルを見つけます。
内蔵ダッシュボードにアクセスするには、タイル内のリンクを選択します。
Collectorダッシュボードの詳細については、Splunk Observability Cloud の組み込みダッシュボードでCollectorを監視する を参照してください。
カスタマーサポートを受けるためのレポートを作成する 🔗
すべてのトラブルシューティングが失敗した場合でも、カスタマーサポート用に情報を収集することができます。
The Splunk Distribution of OpenTelemetry Collectorには、システム情報を収集してファイルにバンドルするスクリプトが含まれており、お客様はこのファイルをカスタマーサポートあてに送ることができます。
etc/otel/collectorディレクトリから、コマンドラインインターフェイスでsplunk-support-bundle.shスクリプトを実行します。ターミナルで以下の例のような出力が得られるでしょう:
INFO: Creating temporary directory...
INFO: Checking for commands...
INFO: Getting configuration...
INFO: Getting status...
INFO: Getting logs...
WARN: Permission denied to directory (/var/log/td-agent).
INFO: Getting metric information...
INFO: Getting zpages information...
INFO: Getting host information...
INFO: Creating tarball...
INFO: Support bundle available at: /tmp/splunk-support-bundle-1708263625.tar.gz
Please attach this to your support case
問題の説明を添えて、カスタマーサポート宛てにtarファイルを送付してください。このファイル内の情報は、サポートエンジニアがテスト環境で問題を再現する際に役立ちます。
さらに詳しく 🔗
これで、当チュートリアルは終了です。Collectorのインストールおよび設定後の、Collector設定に関する問題の基本的なトラブルシューティング方法をすべて練習しました。
このチュートリアルのコンセプトの詳細については、以下のトピックを参照してください: