バックエンド
SaaS環境
- ヨーロッパ:
- DNS名:ingress-blue-saas.instana.io
- 宛先ポート:tcp/443
- アメリカ:
- DNS名:ingress-red-saas.instana.io
- 宛先ポート:tcp/443
- 世界のその他の地域:
- DNS名:ingress-red-saas.instana.io
- 宛先ポート:tcp/443
オンプレミスへのインストール
ネットワーク要件
センサー | ポート範囲 | 構成可能 |
---|---|---|
エージェントAPI | 42699 | |
Javaトレーシング | すべての一時ポート | |
Crystalセンサー | 42699 | 環境変数 |
Envoy、NGINX、およびその他のプロキシトレース | 42699 | 環境変数 |
Goセンサー | 42699 | 環境変数 |
.NETセンサー | 42657 | |
Node.jsセンサー | 42699 | 環境変数 |
PHPセンサー | 16816 | PHP設定 |
Node.jsセンサー | 42699 | 環境変数 |
Pythonセンサー | 42699 | 環境変数 |
Rubyセンサー | 42699 | 環境変数 |
コンフィギュレーション
追加のファイルシステム
デフォルトでは、エージェントはローカルファイルシステムのみを監視します。 ファイルシステムを追加するには、ファイルシステムの名前(mtabまたはdfの最初の列)を追加します。
たとえば、次のファイルシステムを監視するには:
server:/usr/local/pub /pub nfs rsize=8192,wsize=8192,timeo=14,intr
ホストセクションのコメントされていないファイルシステムリストに次の行を追加してください:
com.instana.plugin.host:
filesystems:
- 'server:/usr/local/pub'
タグ
com.instana.plugin.host:
tags:
- 'production'
- 'app1'
あるいは、環境変数 INSTANA_TAGS=production,app1 を使用することもできます(環境変数と構成ファイルのタグは追加可能です)。 これにより、特定のエージェントに2つのタグが追加されるため、UIでタグの検索とフィルタリングが可能になりました。インストール済みパッケージリスト(デフォルトでは無効)
configuration.yaml ファイルで collectInstalledSoftware
を true に設定すると、オペレーティングシステムにインストールされているパッケージを1日に!回抽出できます。
現在、次のLinuxディストリビューションがサポートされています。
- Debianベース(dpkg)
- RedHatベース(rpmおよびyum)
com.instana.plugin.host:
collectInstalledSoftware: false # valid values: true, false
カスタムゾーン
com.instana.plugin.generic.hardware:
enabled: true
availability-zone: 'Demozone'
または、代わりに環境変数 INSTANA_ZONE=Demozone を代わりに使用できます(環境変数のゾーンが構成ファイルのゾーンをオーバーライドします)。 その結果、ホストはマップ上のゾーンにグループ化されます。カスタムプロセス
Instanaは、デフォルトでJavaやMySQLなどの高レベルセンサーのプロセスメトリックを自動的に監視します。 Instanaによって自動的にカバーされないOSプロセスを監視する場合は、プロセス名または引数、あるいはその両方を使用して設定できます。
com.instana.plugin.process:
processes:
- 'sshd'
- 'slapd'
arguments:
- '/opt/script.sh'
シークレット
トレースデータには機密データが含まれる場合があります。 したがって、Instanaエージェントは、「シークレット」のパターンの仕様、つまり、トレースデータからエージェント側で編集されるデータの仕様をサポートしています。 シークレットとして扱われるデータは、処理のためにInstana SaaSに到達しないため、UIでの分析やAPIを介した取得には使用できません。
Instanaは、一致するシークレットの仕様をサポートしています。
- 環境変数
- JDBC接続文字列
- Dockerコンテナ情報
- HTTPクエリパラメータ(実質的にサポートされるすべてのランタイムについては、以下のサポートマトリックスを参照)、例:https://my.domain/accounts/status?account=&user=
- HTTPマトリックスパスパラメーター。たとえば、https://my.domain/accounts/account=;user=/status (一部のランタイムでサポートを利用できます。以下のサポートマトリックスを参照してください)
Language | HTTPクエリパラメータのシークレット | HTTPマトリックスパラメーターのシークレット |
---|---|---|
Java | ✓ | ✓ |
Go | ||
.NET Framework | ✓ | |
.NET Core | ||
.NET Framework | ✓ | |
Node.js | ✓ | |
PHP | ✓ | ✓ |
Python | ✓ | |
Ruby | ||
Crystal |
注:GoインスツルメンテーションはOpenTracing APIに基づいているため、シークレットの処理はインストルメント側が行います。
注:Instanaは、URLがhttps://my.domain/accounts//status として構成されている場合など、URLパス内の任意のセグメントをシークレットとして扱うことをサポートしていません。 たとえば、URLパスで正規表現を実行してセグメントを破棄するオーバーヘッドは、非常に高くなります。
(さらに、実際にはシークレットに関連する問題ではありませんが、InstanaエージェントはストアドプロシージャからSQLパラメーターをキャプチャしません。任意のパスセグメントの場合と同様に、SQLクエリからリテラルを削除せず、パラメータ化されたクエリの仕様を強くお勧めします。)
シークレットは、サポートされているすべての言語に対して次の方法で指定されます。
com.instana.secrets:
# One of: 'equals-ignore-case', 'equals', 'contains-ignore-case', 'contains', 'regex'
matcher: 'contains-ignore-case'
list:
- 'key'
- 'password'
- 'secret'
センサーによって収集されたキーがリストのエントリと一致する場合、値は編集され、Instanaバックエンドに送信されません。 カスタムシークレット構成を指定しない場合、エージェントはデフォルトで前述のシークレット構成を使用します。
注:一般に、シークレットは静的データからフィルタリングされます。 フィルタリングは最適化されており、プロセスの実行中は変更が適用されません。 シークレット構成を有効にするには、エージェントまたは実行中の監視対象コンポーネントを再起動します。これらは新しい構成を尊重する必要があります。
注:選択したKubernetesリソースでの追加のシークレットリダクションについては、Kubernetesシークレットで詳細をご覧ください。
カスタムHTTPヘッダーのキャプチャ
デフォルトでは、InstanaはHTTP呼び出しをトレースするときにHTTPヘッダーを収集しませんが、この機能はオンデマンドで有効にできます。 そのためには、キャプチャするヘッダーを指定する必要があります。
com.instana.tracing:
extra-http-headers:
- 'x-request-id'
- 'x-loadtest-id'
- ...
値は大文字と小文字を区別しません。 このようにして収集されたヘッダーは、コールの詳細(「呼び出し先の詳細」セクション)に表示されます。 それらを使用して、呼び出しとトレースを検索することもできます(UI内およびAPI経由)。 最後に、サービス構成に使用できます。
制限:
- InstanaはHTTPエントリーのリクエストヘッダーのみをキャプチャします (HTTPは、インストルメントされたプロセスが受け取ると呼び出します)。
- InstanaはJavaおよびNode.jsでHTTPのエントリーのレスポンスヘッダーをキャプチャします。
- InstanaはHTTP終了時にヘッダーをキャプチャしません(インストルメントされたプロセスがクライアントであり、HTTPサーバーがインストルメントされていない場合にHTTPが呼び出します)。
- この機能は現在、Java、.NET、NodeJ、PHP、Python、およびRubyでサポートされています。