IDOT および OpenTelemetry プロジェクト
「 Instana 」ディストリビューションの OpenTelemetry コレクター( IDOT )は、アップストリームの OpenTelemetry コレクターというオープンソースプロジェクトを基盤として構築されています。 中核となる機能は上流プロジェクトから引き継がれていますが、 IDOT では、 Instana 向けにいくつかの機能強化が施されています:
- Instana のバックエンドへテレメトリデータを送信するために最適化された、あらかじめ設定済みのコンポーネント
- インストールと設定のプロセスを簡素化
さらに、 IDOT は、コミュニティ版から厳選されたコンポーネントを収録しており、エンタープライズ環境における安定性とセキュリティに重点を置いています。
- IBM IDOT のセキュリティ修正プログラムおよびパッチを提供しています
- IBM のサポートチャネルを通じたエンタープライズレベルのサポート
- 定期的なセキュリティ監査と脆弱性管理
- Instana のバックエンドサービスとの互換性テスト
IDOT OpenTelemetry Protocol ( OTLP )規格との互換性を維持し、 Instana ユーザーにスムーズな操作環境を提供します。 このディストリビューションは、アップストリーム・プロジェクトからの改善点を反映させるため定期的に更新されており、 Instana のオブザーバビリティ・プラットフォームとの確実な統合を支援します。
インストールを開始する前に、 システム要件を確認し、スムーズなインストールができるようにしてください。
Instana OpenTelemetry Collector( IDOT )の配布
Instana が、ベンダー非依存の OpenTelemetry コレクターから送信されるテレメトリデータを受信するには、 または gRPC および OTLP または HTTPOTLP のエンドポイントを正しく設定する必要があります。 IDOT は、コレクターの設定プロセスを自動化し、デフォルトで Instana がテレメトリデータを受信できるようにします。
IDOT は、以下のオペレーティングシステム、プラットフォーム、およびアーキテクチャに対応しています:
| オペレーティングシステムまたはプラットフォーム | アーキテクチャー | エアギャップ環境でのみ有効 |
|---|---|---|
| Linux | x86-64 (amd64), s390x (IBM Z) | はい |
| AIX | ppc64 | はい |
| Windows | amd64 | はい |
| Kubernetes | amd64 | はい |
| OpenShift | amd64 | はい |
IDOT のインストール
ターゲット環境に IDOT をインストールするには、以下の手順を実行してください:
お使いのアーキテクチャに適したインストーラーをダウンロードしてください:
x86-64 または amd64 システムの場合:
curl -Lo instana_otelcol_setup.sh https://github.com/instana/instana-otel-collector/releases/latest/download/instana-otel-collector-installer-latest-linux-amd64.sh chmod +x instana_otelcol_setup.shs390x または zLinux システムの場合:
curl -Lo instana_otelcol_setup.sh https://github.com/instana/instana-otel-collector/releases/latest/download/instana-otel-collector-installer-latest-linux-s390x.sh chmod +x instana_otelcol_setup.shAIX システムの場合:
curl -Lo instana_otelcol_setup.sh https://github.com/instana/instana-otel-collector/releases/latest/download/instana-otel-collector-installer-latest-aix-ppc64.sh chmod +x instana_otelcol_setup.sh注:Instana のUIには、システムのアーキテクチャを自動的に検出する簡易インストールスクリプト(instana-collector-installer-latest.sh)が用意されています。 UIスクリプトもアーキテクチャ固有のスクリプトも、同じコレクターをインストールします。Windows 用(ワンライナーによるダウンロードとインストール)
powershell -Command "Invoke-WebRequest -Uri 'https://github.com/instana/instana-otel-collector/releases/download/<latest-version>/instana-otel-collector-installer-latest-windows-amd64.zip' -OutFile '$env:TEMP\instana-collector.zip'; Expand-Archive -Path '$env:TEMP\instana-collector.zip' -DestinationPath 'C:\Program Files\Instana\' -Force; Set-Location 'C:\Program Files\Instana\instana-collector\bin'; .\setenv.bat -a <INSTANA_KEY> -e <INSTANA_OTEL_ENDPOINT_GRPC> -H <INSTANA_OTEL_ENDPOINT_HTTP>; .\start.bat"Windows 用(MSIインストーラー)
Windows 環境では、MSIインストーラーを推奨のインストール方法として使用してください。 MSIインストーラーは、対話型のGUIインストールをサポートし、 Windows サービスを自動的に登録するとともに、グループポリシーやSCCMなどのエンタープライズ展開ツールと連携します。
詳細については、 「MSIインストーラーを使用した Windows への IDOT のインストール」 を参照してください。
Kubernetes の「 Helm 」チャート
helm install instana-otel-collector \ --repo https://instana.github.io/instana-otel-collector instana-otel-collector-chart \ --namespace instana-otel-collector \ --create-namespace \ --set clusterName=<CLUSTER_NAME> \ --set instanaEndpoint=<INSTANA_OTEL_ENDPOINT> \ --set instanaKey=<INSTANA_KEY>Kubernetes のインストールガイドライン(オペレーターおよび OpenShift OSのサポート情報を含む)の詳細については、 Kubernetes の「 Instana ディストリビューション版 OpenTelemetry Collectorのインストール」 を参照してください。
以下のコマンドを使用して、インストール・スクリプトを実行する:
sudo ./instana_otelcol_setup.sh -e <INSTANA_OTEL_ENDPOINT_GRPC> -a <INSTANA_KEY> [-H <INSTANA_OTEL_ENDPOINT_HTTP>] [-u USE_SUPERVISOR_SERVICE] [<install_path>]インストールスクリプトを実行する際は、以下のパラメータを指定してください:<INSTANA_OTEL_ENDPOINT_GRPC>: Instana に必要な gRPC エンドポイントを指定します。 この<ip_address>:<port>形式を使用してください。<INSTANA_KEY>: 認証に必要な Instana エージェントキーを指定します。<INSTANA_OTEL_ENDPOINT_HTTP>: Instana のオプションの HTTP エンドポイントを指定します。 この<ip_address>:<port>形式を使用してください。<USE_SUPERVISOR_SERVICE>: 「 Instana 」スーパーバイザー・サービスが有効になっているかどうかを指定します。 デフォルト値はtrueです。 このパラメータを に設定falseすると、スーパーバイザー・サービスが無効になります。
重要: インストーラーを実行するには、およびINSTANA_KEYINSTANA_OTEL_ENDPOINT_GRPCパラメータが必須です。 これらのパラメータは、. install_path/collector/config/config.envディレクトリにあるファイルconfig.envで後から変更できます。 デフォルトのパスは. です /opt/instana/collector/config/config.env。 また、コレクターは通常、システムディレクトリへの書き込みやシステムレベルのサービスの設定を行う必要があるため、インストールにはルート権限が必要です。
- スーパーバイザー・サービス :コレクター・プロセスのライフサイクルを管理し、リモート管理や自動再起動を可能にします。 インストール時には、スーパーバイザー・サービスがデフォルトで有効になっています。
- コレクターサービス :テレメトリデータを受信、処理、およびエクスポートする、 OpenTelemetry のメインのコレクタープロセス。
「Supervisor Service」や「Collector Service」など、 OpenTelemetry の用語に関する詳細については、『 OpenTelemetry Collector Management 』のドキュメントを参照してください。
Instana コレクターサービスの管理
IDOT Collectorのインストールスクリプトは、デフォルトでサービスをインストールし、起動します。 Instana コレクターサービスは、 bin ディレクトリ内で以下のコマンドを実行することで、さらに管理することができます:
サービスをインストールします:
./instana_collector_service.sh installサービスをアンインストールする:
./instana_collector_service.sh uninstall以下の方法でサービスを開始します。
./instana_collector_service.sh startそれとも
service instana-collector startサービスを停止します。
./instana_collector_service.sh stopそれとも
service instana-collector stopサービスを再起動する:
./instana_collector_service.sh restartそれとも
service instana-collector restartサービスのステータスを表示します:
./instana_collector_service.sh statusそれとも
service instana-collector status
Instana スーパーバイザー・サービスの管理
Instana コレクター・サービスと同様に、 Instana スーパーバイザー・サービスも、 IDOT のインストールプロセス中にインストールおよび初期化されます。 Supervisor サービスの管理は、コレクターのサービス管理と同様(前のセクションで説明した通り)、`` の代わりに ./instana_collector_service.sh` ./instana_supervisor_service.sh ` を使用することで行います。
OpenTelemetry コレクターの設定
/opt/instana/collector/config/config.yaml ファイルを変更することで、業務要件に従ってコレクタを設定できます。 必要に応じて、遠隔測定データのパイプラインを定義し、変更することもできます。 すべてのタイプの遠隔測定データのデータフローをサポートするために、以下の構成例を参照してください:
receivers:
# Configure OTLP/gRPC endpoint
otlp:
protocols:
grpc:
endpoint: 0.0.0.0:24317
# Specifies a file log receiver to include logs from a given path
filelog:
include: ["path/to/logs/*.log"]
processors:
# Set a limit for batch size
batch:
send_batch_size: 5000
send_batch_max_size: 10000
timeout: 180s
# Specify a transform processor to add a processed attribute for logs
transform:
log_statements:
- set(log.body, log.attributes["processed"])
exporters:
# Configure OTLP exporter for telemetry data to be sent to
otlp:
endpoint: INSTANA_OTEL_ENDPOINT_GRPC
headers:
x-instana-key: INSTANA_KEY
x-instana-host: INSTANA_HOST
tls:
insecure: true
# Assemble the data pipeline from the configured components
service:
pipelines:
traces:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
metrics:
receivers: [otlp]
processors: [batch]
exporters: [otlp]
logs:
receivers: [filelog]
processors: [transform]
exporters: [otlp]
オプション:OTELシェルレシーバーの設定
Shellレシーバーは、シェルコマンドを実行し、その出力をメトリクスまたはログとして収集する OpenTelemetry のCollectorコンポーネントです。 このレシーバーは、コマンドラインツールやスクリプトをオブザーバビリティ・パイプラインに組み込む際に役立ちます。
セキュリティー警告
構成オプション
シェルレシーバーは、以下の設定オプションをサポートしています:
receivers:
shell:
collection_interval: 60s # How often to execute commands (default: 60s)
commands:
- name: disk_usage # Required: Unique identifier for this command
command: df -h / # Required: Shell command to execute
shell: /bin/sh # Optional: Shell to use (default: /bin/sh)
args: [] # Optional: Additional arguments to pass to the shell
timeout: 5s # Optional: Maximum time the command can run
metric_name: disk.usage # Required for metrics: Name for the metric
log_name: disk_check # Optional: Name for log records (defaults to metric_name)
description: "Check disk usage" # Optional: Human-readable description
labels: # Optional: Additional key-value pairs as attributes
filesystem: "root"
output_type: both # Optional: How to process output (metric, log, or both; default: metric)
コマンド設定パラメータ
リスト内の各コマンド commands は、以下のオプションに対応しています:
| フィールド | タイプ | 必須 | Default | 説明 |
|---|---|---|---|---|
name |
string |
はい | このコマンドの一意の識別子 | |
command |
string |
はい | 実行するシェルコマンド | |
shell |
string |
いいえ | /bin/sh |
実行に使用するシェル |
args |
[]string |
いいえ | [] | シェルに渡す追加の引数 |
timeout |
duration |
いいえ | コマンドの実行可能時間の上限 | |
metric_name |
string |
「ismetric 」または「is」の場合output_type に必要both |
メトリクスの名前。 単純な出力の場合、完全なメトリック名となります。 表形式の出力では、列名と組み合わせて単位接頭辞として機能します(例:prefix.column_name)。 |
|
log_name |
string |
「islog 」が設定されている場合output_type とmetric_name 設定されていない場合 |
metric_name |
ログ記録の名称 |
description |
string |
いいえ | コマンドの機能に関する、人間が理解しやすい説明 | |
labels |
map[string]string |
いいえ | {} |
属性として追加するその他のキーと値のペア |
output_type |
ストリング | いいえ | metric |
コマンドの出力をどのように処理するかを指定します:metric,log, またはboth |
row_regex |
string |
いいえ | 各出力行に一致して解析を行う正規表現(カスタマイズされた解析を可能にします) | |
metric_names |
[]string |
いいえ(「is」が設定されている場合はrow_regex 必須) |
各キャプチャフィールドの名称はrow_regex |
|
descriptions |
[]string |
「is」が設定されている場合はrow_regex 必須 |
各フィールドの読みやすい説明(任意、文字数は一致させるmetric_names 必要があります) |
|
field_types |
[]string |
いいえ | 各フィールドの処理方法:Attribute またはGauge |
出力処理モード
このレシーバーは、以下の解析モードに対応しています:
自動解析(デフォルト)
が指定されていない row_regex 場合、受信側は出力形式を自動的に検出します:
メトリクスについて (が metric または output_type の場合 both):
- 出力が数値として解析できる場合、その値を使用してゲージメトリクスが作成されます。
- 出力が表形式(複数列)の場合、数値列ごとに個別のゲージメトリクスが作成されます。
- 出力が数値として解析できない場合、値が 1 の合計メトリクスが作成され、その出力は属性として含まれます。
対数関数 (が log または output_type の場合 both):
- コマンドの出力を本文としてログレコードを作成します。
- デフォルトで深刻度
INFOを設定します。 - コマンド名、説明、およびラベルを属性として含みます。
- 出力が数値として解析できる場合、それを 属性
valueとして追加します。
正規表現を用いた解析(カスタマイズ版)
row_regex 場合、レシーバーは正規表現を使用して出力を解析し、フィールドの型を完全に制御します:row_regex: 各フィールドに対するキャプチャグループを含む正規表現metric_names: 各キャプチャフィールドの名前field_types: 各フィールドが (文字列Attribute識別子) であるか、Gauge(数値メトリクス) であるかを指定しますdescriptions: 各フィールドの任意の説明
構成例
以下の例は、さまざまな設定オプションを示しています:
基本使用
receivers:
shell:
collection_interval: 30s
commands:
- name: cpu_temperature
command: cat /sys/class/thermal/thermal_zone0/temp
metric_name: system.cpu.temperature
description: "CPU temperature in millidegrees Celsius"
出力形式が異なる複数のコマンド
receivers:
shell:
collection_interval: 60s
commands:
- name: memory_free
command: free -m | grep Mem | awk '{print $4}'
metric_name: system.memory.free
description: "Free memory in MB"
labels:
unit: "MB"
output_type: metric
- name: disk_usage
command: df -h / | grep / | awk '{print $5}' | sed 's/%//'
metric_name: system.disk.usage
description: "Root filesystem usage percentage"
labels:
filesystem: "root"
unit: "percent"
output_type: both
- name: last_logins
command: last -n 5
log_name: system.logins
description: "Last 5 system logins"
output_type: log
自動解析と複数表形式の出力
receivers:
shell:
collection_interval: 60s
commands:
- name: system_metrics_auto
command: hyptop -b -n 1 | awk 'BEGIN {printf "%-12s %-10s %-8s %-12s\n","system","cpucount","cpu%","memoryinGB"}$2 ~ /^[0-9]+$/ {printf "%-12s %-10s %-8s %-12s\n",$1,$2,$3,$5}'
metric_name: system.metrics.shell.hypervisor
description: "System CPU and Memory metrics"
output_type: metric
カスタムコントロールのための正規表現ベースの解析
receivers:
shell:
collection_interval: 60s
commands:
- name: system_metrics_regex
command: hyptop -b -n 1 | awk 'BEGIN {printf "%-12s %-10s %-8s %-12s\n","system","cpucount","cpu%","memoryinGB"}$2 ~ /^[0-9]+$/ {printf "%-12s %-10s %-8s %-12s\n",$1,$2,$3,$5}'
metric_name: system.metrics.shell.hypervisor
description: "System CPU and Memory metrics"
output_type: metric
row_regex: '^\s*(\S+)\s+(\d+)\s+([\d.]+)\s+([\d.]+)\s*$'
metric_names:
- system
- cpucount
- cpu
- memoryinGB
descriptions:
- System Name
- CPU Count
- CPU Usage Percentage
- Memory Usage in GB
field_types:
- Attribute # system is an identifier, not a metric
- Gauge # cpucount is a numeric metric
- Gauge # cpu is a numeric metric
- Gauge # memoryinGB is a numeric metric
labels:
source: "hyptop"
- name: process_stats
command: ps aux | grep myapp | awk '{print $2, $3, $4}'
metric_name: process.metrics
description: "Process CPU and Memory usage"
output_type: metric
row_regex: '^\s*(\d+)\s+([\d.]+)\s+([\d.]+)\s*$'
metric_names:
- pid
- cpu_percent
- mem_percent
descriptions:
- Process ID
- CPU Usage Percentage
- Memory Usage Percentage
field_types:
- Attribute # PID is an identifier, not a gauge
- Gauge # CPU percentage is a metric
- Gauge # Memory percentage is a metric
labels:
app: "myapp"
解析モードの選択
以下の場合には、自動解析を使用してください:
- 単純な数値データや標準的な表形式のデータがあります。
- 正規表現の設定をせずに、すぐにセットアップしたい。
- すべての数値フィールドは指標として扱う必要があります。
以下の場合には、正規表現を用いた構文解析を使用してください:
- 識別子(PIDやシステム名など)と実際のメトリクスを区別する必要があります
- 出力形式が不規則または一定ではありません。
- フィールドの型や名前を明確に制御したい。
- カスタムフィールドの説明が必要です。
IDOT をさまざまな Instana 環境に接続する
自社管理環境
IDOT を使用する場合、 OTLP エクスポーターを設定して、デフォルトのオプションである Instana バックエンドにデータを送信するようにする必要があります。
otlp-grpc.<base_domain>→ OTLP/gRPCotlp-http.<base_domain>→ OTLP/HTTP
デフォルトでは、 Instana バックエンドは自己署名証明書を使用します。 CAファイルを使用してコレクターを設定しない場合は、検証を無効にする必要があります。 そうしないと、 TLS のハンドシェイクが失敗します。
証明書検証を行わない設定例:
exporters:
otlp:
endpoint: https://otlp-grpc.<base_domain>:443
tls:
insecure: false
insecure_skip_verify: true
headers:
x-instana-key: <your_instana_key>
x-instana-host: <your_instana_host>
スーパーバイザーの設定を確認してください。 正しいエンドポイントを指定し、自己署名証明書が正しく処理されるようにしてください。
IDOT をローカルエージェントに接続する
あるいは、同じホスト上のローカル Instana エージェントを通じてデータを報告することもできます。 このオプションを使用するには、インストール時および設定ファイル内で特定の設定を行う必要があります。
ローカルエージェントのインストールコマンド
127.0.0.1 してください:sudo ./instana_otelcol_setup.sh -e 127.0.0.1:4317 -a <INSTANA_KEY> -H http://127.0.0.1:4318 -o <INSTANA_OPAMP_ENDPOINT> -u true
127.0.0.1 してください。 Instana エージェントは、ローカルホスト上のポート 4317 および 4318 でのみリスニングを行います。-u true)を有効にする際は、コマンドラインで を設定 INSTANA_OPAMP_ENDPOINT-o する必要があります。インストール後の構成
/opt/instana/collector/config/config.env ファイルを確認および更新してください:INSTANA_OTEL_ENDPOINT_GRPC=http://127.0.0.1:4317
INSTANA_OTEL_ENDPOINT_HTTP=http://127.0.0.1:4318
https:// 代わりにを使用 http:// してください。 ローカルの Instana エージェントは、localhostへの接続において TLS 暗号化を使用しません。 HTTPS を使用すると、 SSL のハンドシェイクエラーが発生します。INSTANA_OPAMP_ENDPOINT=wss://<opamp-endpoint-url>:443/v1/opamp
INSTANA_OPAMP_ENDPOINT 。YAML ローカルエージェントの設定
config.yaml ターゲットをlocalhostに設定してください:exporters:
otlphttp:
endpoint: http://127.0.0.1:4318
tls:
insecure: true
Kubernetes への OpenTelemetry Collector の「 Instana 」ディストリビューションのインストール
Kubernetes 環境では、 Helm のチャートまたは YAML のマニフェストを使用して、 IDOT を集中型コレクターとしてデプロイできます。 この展開モデルでは、以下のタスクを実行できます:
- クラスタ内の複数のアプリケーションからテレメトリデータを収集する
- 複数のコレクターインスタンスを使用して高可用性を設定する
- Kubernetes のネイティブツールを使用してコレクターの設定を管理する
Kubernetes への「 IDOT 」のインストールおよび設定に関する詳細な手順については、 Kubernetes の「 Instana 」ディストリビューション版「 OpenTelemetry Collector」のインストール方法をご覧ください。
Kubernetes での ` IDOT ` のオペレーターベースの導入および管理については、 「オペレーターを使用した ` IDOT ` のインストール」 を参照してください。
OpenTelemetry コレクターのアンインストール
デフォルトでは、インストールスクリプトは install_path の collector/bin の下にアンインストールスクリプトも追加します。
./uninstall.sh
このスクリプトを実行すると、 Instana コレクターサービスが停止し、システムからすべてのコレクターファイルが削除されます。
トラブルシューティング
一般的な問題と解決策については、 『 OpenTelemetry Collectorの Instana ディストリビューションのトラブルシューティング』 を参照してください。 このトピックでは、インストールに関する問題、接続に関する問題、およびプラットフォームごとのトラブルシューティング手順について説明します。
リリース・ノート
最新の更新情報、新機能、およびバグ修正については、『 IDOT 』 のリリースノートをご覧ください。
サポート
サポートに関するお問い合わせは、 『 IDOT サポート戦略』 をご覧ください。
OpenTelemetry に関するその他のリソース
- 実際の設定例。
- トラブルシューティングガイド。
- さまざまなテクノロジーの統合パターン。
- コミュニティから寄せられた解決策。