エージェント設定ファイルを使用したホストエージェントの設定
エージェントがホストにインストールされている場合、エージェント設定ファイル(*instanaAgentDir*/etc/instana/configuration.yaml)を使用して、 Instana エージェントに以下の設定を適用できます。
Instana のすべての設定パラメータの詳細な一覧については、 Instana Helm chart を参照してください。
Kubernetes での Instana の展開については、 「設定ファイルを使用した Kubernetes エージェントの設定」 を参照してください。
トレーサー固有の設定オプションについては、 「エージェント設定ファイルを使用したトレーサーの設定」 を参照してください。
複数の設定ファイルの作成
構成のモジュール性を提供するために、複数の *instanaAgentDir*/etc/instana/configuration-<suffix>.yaml ファイルを作成できます。 <suffix> を英数字の組み合わせに置き換えます。
すべての *instanaAgentDir*/etc/instana/configuration-<suffix>.yaml ファイルは、ファイル・システムのアルファベット順に *instanaAgentDir*/etc/instana/configuration.yaml ファイルとマージされます。 たとえば、ファイル configuration-cde.yaml はファイル configuration-abc.yaml の後に続きます。 タグなど、異なる設定ファイルで指定されたネストされた構造は統合され、値は上書きされます。
エージェントの設定ファイルを使用してエージェントを設定する方法については、以下のセクションを参照してください:
ホストエージェントとシークレットマネージャーの統合
Instana エージェントの設定ファイル内で、パスワードなどの機密データを直接暗号化することはサポートされていません。
したがって、エージェントの設定ファイルに機密情報(認証情報など)を追加する場合、その内容は次の例のような形になる可能性があります:
com.instana.example:
user: 'instana'
password: <password>
ただし、エージェントの設定ファイルに機密情報をプレーンテキストで記載するのは避けたほうがよいでしょう。 このような状況では、 IBM Cloud Secrets Manager や HashiCorp Vault などのシークレットマネージャーを使用してシークレットを保存し、必要に応じてエージェントの設定ファイルに取り込むことができます。
HashiCorp Vault
1.2.9 以降が必要です。Instana エージェントは、 HashiCorp ボールト を使用して、エージェント構成ファイル内の機密設定の値を安全に取得します。
エージェント設定ファイルに以下の行を追加し、 Vault の統合設定パラメータをホストエージェントに指定する必要があります:
com.instana.configuration.integration.vault:
connection_url: <vault_server_base_url> # The address (URL) of the Vault server instance(e.g. http://127.0.0.1:8200 or https://exapmle.com:8200)
prefix: <optional_prefix> # Optional prefix path required if kv_version 2 is used and the /data/ must be injected further down. The /data/ segment is injected after the amount of elements between the / in this prefix.
token: <vault_access_token> # Vault access token with assigned, at least, `read` access policy to relevant Vault paths, optional if other auth providers are present
github: # Optional auth method if Vault access token is not provided, has higher priority than approle if present
github_token: <github_token> # Personal Access Token, must provide at least read:org scope, must be present if github is used as an auth provider
auth_mount: github # Optional mount path for GitHub Auth, defaults to github
approle: # Optional auth method if Vault access token or github auth is not provided
role_id: <roleId> # AppRole RoleId, must be present if approle is used as an auth provider
secret_id: <secretId> # AppRole SecretId, must be present if approle is used as an auth provider
auth_mount: approle # Optional mount path for AppRole Auth, defaults to approle
path_to_pem_file: <path_to_X.509_CA_certificate> # X.509 CA certificate (UTF8 encoded) in unencrypted PEM format, used by the Agent when communicating with Vault over HTTPS
secret_refresh_rate: 24 # This configuration option allows you to account for rotating credentials, refresh rate in hours, default 24
kv_version: 2 # The Key/Value secrets engine version, default is 2
# IMPORTANT: For KV version 2, the /data/ element is injected after the number of path elements in the prefix.
#
# Example configuration:
# prefix: foo/bar/blah # 3 path elements
# secret_key:
# path: my/secret/vault/password
# key: password
#
# The agent will inject /data/ after 3 path elements (based on prefix depth): my/secret/vault/password → my/secret/vault/data/password
Vault を MySQL で設定し、シークレットを追加する例については、 「 MySQL 用の Vault 設定例 」を参照してください。
Vault の初期設定が完了した後、エージェント設定ファイルで、各種センサーのシークレットの取得を指定できます。
エージェントの設定ファイルに直接記述するのではなく、 HashiCorp Vault から を取得 password する以下の例を参照してください:
com.instana.example:
user: 'instana'
password:
configuration_from:
type: vault
secret_key:
path: <vault_path>
key: <vault_secret_key>
機密データの文字列値を、 Vault の座標を指定する YAML 構造体に置き換えることで、ホストエージェントが自動的にシークレットを取得します。
また、パスワードフィールドについては、シークレットマネージャーとの連携に限定されるわけではありません。 エージェント設定ファイル内で値として文字列を使用する configuration.yamlあらゆる設定について、シークレットマネージャーを利用できます。
詳細については、 Instana エージェントの統合に関連する以下の Vault の概念を参照してください:
IBM Cloud Secrets Manager
IBM Cloud Secrets Manager は、オープンソースの HashiCorp Vault をベースとしており、 API と同様の機能と、 HashiCorp Vault と同様の設定を提供します。 統合の設定に関する詳細については、 HashiCorp Vault をご覧ください。
Vault コンポーネントのバージョン 1.0.11 以降では、IAMキーを使用した IBM Cloud Secrets Manager SDKを Vault で利用できるようになりました。
エージェント設定ファイルに以下の行を追加し、 IBM Cloud Secrets Manager の統合設定パラメータをホストエージェントに指定する必要があります:
com.instana.configuration.integration.vault:
connection_url: <secrets-manager-address> # The address (URL) of the IBM Cloud Secrets Manager server instance(e.g. https://f022446e-1024-4aa9-a00c-72bf15aa9e7b.us-south.secrets-manager.appdomain.cloud)
ibm_secrets_manager: <iam_key> # IAM Key that can be used to create access tokens
secret_refresh_rate: 24 # This configuration option allows you to account for rotating credentials, refresh rate in hours, default 24
エンドポイントの説明は、 IBM Cloud Docs( Secrets Manager ) または IBM ( Secrets Manager )のダッシュボードでご確認いただけます。
IAMキーを作成するには、 IBM Cloud - IAM Keys を参照してください。
IBM Cloud Secrets Manager をホストエージェントに統合した後、エージェントの設定ファイルで、さまざまなセンサーのシークレットの取得を指定できます。
エージェントの設定ファイルに直接記述するのではなく、 IBM Cloud Secrets Manager から を取得 password する以下の例を参照してください:
com.instana.example:
user: 'instana'
password:
configuration_from:
type: vault
secret_key:
path: <secret-id> # The id of the Secret within the IBM Secrets Manager, (e.g. cc32688d-89c0-6fa8-c0b4-6cc88c232e66)
key: <kv-key-entry> # The Key inside the Secret Object of type KV (e.g. login)
poll_rate: 300 # seconds
MySQL 用の Vault 設定例
HashiCorp Vault を MySQL データベースと統合するには、ファイル *instanaAgentDir*/etc/instana/configuration.yaml 内の以下の設定例を参照してください:
com.instana.configuration.integration.vault:
connection_url: http://127.0.0.1:8200
prefix: secret
token: secret-vault-token
prefix 属性は任意です。com.instana.plugin.mysql:
user: 'myuser'
password:
configuration_from:
type: vault
secret_key:
path: secret/my-secret
key: password
/data/ に関する記述はありません。 kv_version 2 を使用する場合は、パス内の /data/ をすべて省略してください。シークレットを表示するには、次のコマンドを実行します。
vault kv get secret/my-secret
秘密は次のように表示されます。
==== Secret Path ====
secret/data/my-secret
======= Metadata =======
Key Value
--- -----
created_time 2024-07-08T06:53:10.830770915Z
custom_metadata <nil>
deletion_time n/a
destroyed false
version 1
====== Data ======
Key Value
--- -----
password *****
username myuser
Kubernetes シークレット
Kubernetes のシークレットから機密情報を取得し、エージェントのセンサー設定に反映させるには、次の2つの概念を組み合わせます:
- Kubernetes を設定して、 シークレットを環境変数またはファイルとしてマウントします:
- このシークレットは、ワークロード固有の環境変数またはファイルであり、データベースへのアクセス認証情報やメトリクス・エンドポイントなど、監視対象のワークロードに関する情報のみを保持します。
- このシークレットは、エージェントの設定で使用される一般的なシークレットとしても利用でき、エージェントのPodに環境変数またはファイルとしてマウントされます。
- エージェントの
configuration.yamlファイルを修正し、マウントされた環境変数またはファイルから設定値を読み込むようにします:- または
configuration_from: {type: env}を使用してconfiguration_from: {type: file}、 ワークロード固有の環境変数またはファイルからシークレットを読み込みます。 - エージェント環境変数またはローカルファイルから秘密情報を読み込む または
configuration_from: {type: agent_env}configuration_from: {type: agent_file}を使用します。
- または
これら2つのプロセスを組み合わせることで、ワークロードは機密情報をポッド固有またはプロセス固有の環境変数やファイルに格納できるようになります。 さらに、エージェントは、これらの環境変数またはファイルを取得して機密情報を読み取り、その情報をワークロード固有の構成に適用することができます。
エージェントの一般的な設定に関連するシークレットについては、エージェント環境から機密情報を取得できます。
エージェントの環境またはエージェントのローカルファイルから設定を取得する
エージェントは、独自の環境変数やローカルファイルから設定値を読み込むように設定できます。 この方法は、エージェントの設定をファイル configuration.yaml 内にハードコーディングしたり、プレーンテキストで保存したりしたくない場合に役立ちます。
エージェントは、独自の環境変数セット(文字列、ブール値、数値などの YAML リテラルのみをサポート)から、あるいは特定のファイルの内容(リストやマップなどの複雑な YAML 構造をサポート)から、設定値を読み取ります。
ホストエージェントがローカル環境(変数やファイル)から機密情報を読み取る機能と、 Kubernetes でシークレットをマウントする方法との間には、意図的な対称性があります。 これらの機能は、サポートされているすべてのオペレーティングシステムおよびコンテナランタイムで利用可能です。
true と false はブール値に変換されます。エージェント環境からの設定情報の取得
エージェントの環境から取得する設定値については、ファイルを configuration.yaml 次のように変更してください:
com.instana.configuration.integration.vault:
connection_url: <vault_server_base_url>
token:
configuration_from:
type: agent_env
env_name: INSTANA_AGENT_VAULT_TOKEN
次の例では、エージェントは自身の環境から HashiCorp Vault の設定用アクセストークンを読み取るため、トークンを平文で公開する必要はありません configuration.yaml:
com.instana.configuration.integration.vault:
connection_url: <vault_server_base_url>
token:
configuration_from:
type: agent_env
env_name: INSTANA_AGENT_VAULT_TOKEN
デフォルト値を指定せず、かつエージェントの環境変数にその環境変数が存在しない場合、ファイル configuration.yaml は値が入力されていないものとみなします。
エージェントのファイルシステムから設定を取得する
ファイルから読み込まれる設定値については、その configuration.yaml ファイルを次のように変更してください:
com.instana.plugin.mysql:
user: 'instana'
password:
configuration_from:
type: agent_file
file_path: <absolute or relative path to a file containing the configuration value>
default_value: <set this when the file is not found>
このプロパティには、ファイルへの絶対パスを指定することも、エージェントの file_path インストールフォルダを基準とした相対パスを指定することもできます。 Linux ホストでは、この場所は通常 /opt/instana/agent、. です。 ファイルから読み込む /opt/instana/agent/etc/vault_token場合、ファイル configuration.yaml 内のエントリは絶対パス /opt/instana/agent/etc/vault_token でも相対パスでも構いません etc/vault_token。
プロセス環境およびファイルから設定を取得する
エージェントを設定して、監視対象のプロセスから設定値を読み取らせることができます。 このアプローチは、次のような状況で役立ちます:
- .
configuration.yamlファイルに情報をハードコーディングしたくない場合は、 - 同じノード上に MySQL, などの単一のテクノロジーのインスタンスが複数あり、各インスタンスに異なる設定が必要な場合。
エージェントは、特定の環境変数から値を参照して設定値を読み取ります(文字列、ブール値、数値などの YAML リテラルのみをサポート)。また、特定のファイルの内容から読み取ることも可能です(リストやマップなどの複雑な YAML 構造をサポート)。
ホスト・エージェントのこれらの機能と Kubernetes のシークレットのマウント方法の間には、意図的な対称性が存在します。 ただし、これらの機能は、サポートされているすべてのオペレーティングシステムおよびコンテナランタイムで利用可能です。
true と false はブール値に変換されます。プロセス環境からの設定情報の取得
ターゲットプロセスの環境から取得する設定値については、ファイルを configuration.yaml 次のように変更してください:
com.instana.plugin.mysql:
user: 'instana'
password:
configuration_from:
type: env
env_name: <environment variable name>
default_value: <set this when no env var is found on this process>
デフォルト値を指定せず、かつ監視対象のプロセスにその環境変数が存在しない場合、この configuration.yaml ファイルは値が入力されていないものとみなします。
プロセスファイルシステムから設定を取得する
ファイルから読み込まれる設定値については、その configuration.yaml ファイルを次のように変更してください:
com.instana.plugin.mysql:
user: 'instana'
password:
configuration_from:
type: file
file_path: <absolute path to a file containing the configuration value>
default_value: <set this when the file is not found>
common_value: <set this in addition to the configuration value from file>
以下の例では、エージェントは、プロパティー type: fileを持つプロセス・ファイル・システムから /jmx-config-map.yaml ファイルを読み取ります。 この default_value プロパティは、複雑な YAML 構造を受け入れます。 common_value プロパティーは、後ですべてのプロセス固有の構成とマージされ、すべてのモニター対象プロセスに共通です。
com.instana.plugin.java:
jmx:
configuration_from:
type: file
file_path: /jmx-config-map.yaml
default_value:
- object_name: 'java.lang:type=OperatingSystem'
metrics:
- attributes: 'CommittedVirtualMemorySize'
type: 'absolute'
common_value:
- object_name: 'java.lang:type=OperatingSystem'
metrics:
- attributes: 'ProcessCpuLoad'
type: 'delta'
次の例では、 Kubernetes ConfigMap からファイル /jmx-config-map.yaml がマウントされ、以下のコンテンツを提供するアプリケーションコンテナに読み込まれます:
- object_name: 'java.lang:type=Compilation'
metrics:
- attributes: 'TotalCompilationTime'
type: 'delta'
- object_name: 'java.lang:type=ClassLoading'
metrics:
- attributes: 'LoadedClassCount'
type: 'absolute'
このプロセスにより、以下の最終構成が行われます。 ProcessCpuLoad の common_value が追加されていることに注意してください。
com.instana.plugin.java:
jmx:
- object_name: 'java.lang:type=Compilation'
metrics:
- attributes: 'TotalCompilationTime'
type: 'delta'
- object_name: 'java.lang:type=ClassLoading'
metrics:
- attributes: 'LoadedClassCount'
type: 'absolute'
- object_name: 'java.lang:type=OperatingSystem'
metrics:
- attributes: 'ProcessCpuLoad'
type: 'delta'
監視対象のプロセスがコンテナ内で実行されている場合、ファイルの絶対パスはそのコンテナのファイルシステムに基づいて解決されます。
追加のファイルシステムの監視
デフォルトでは、エージェントはローカル・ファイル・システムのみをモニターします。 ファイルシステムを追加するには、そのファイルシステムの名前( mtab または df の最初の列)を追加してください。
たとえば、ファイル server:/usr/local/pub /pub nfs rsize=8192,wsize=8192,timeo=14,intr システムを監視するには、エージェント設定ファイルの「host」セクションにある、コメント解除済みのファイルシステム一覧に次の行を追加します
com.instana.plugin.host:
filesystems:
- 'server:/usr/local/pub'
ホストタグの指定
com.instana.plugin.host 構成ファイルでエージェントのタグを指定するには、以下の形式でセクションを追加します。
com.instana.plugin.host:
tags:
- 'production'
- 'app1'
あるいは、 INSTANA_TAGS=production,app1 環境変数を使用して、エージェントのタグを指定することもできます (環境変数および構成ファイルのタグは追加されます)。
production タグと app1 タグが特定のエージェントに追加されます。これにより、UI でのタグの検索とフィルタリングが可能になります。

インストール済みパッケージの一覧を取得する
ホストエージェントは、基盤となる Linux オペレーティングシステムにインストールされているパッケージに関する情報を Instana に報告することができます。
以下の Linux ディストリビューションがサポートされています。
- パッケージ・マネージャーとして
dpkgを使用する Debian とその派生物。 - Red Hat OpenShift と、パッケージ・マネージャーとして
rpmとyumを使用するその派生物。
この機能を有効にするには、プロパティ collectInstalledSoftware を に設定してください true。
com.instana.plugin.host:
collectInstalledSoftware: false # Valid values: true, false
この機能を有効にすると、オペレーティングシステムにインストールされているパッケージは1日1回抽出されます。

カスタムゾーンの設定
デフォルトでは、 Instana は、 Amazon Web Services、 Google Compute Engine、または OpenStack Nova の可用性ゾーン情報を使用してホストをグループ化します。 Instana のデフォルトのホストグループをカスタマイズするには、以下の形式を使用して、 com.instana.plugin.generic.hardware セクション内で特定のホスト用の新しいグループを定義できます:
com.instana.plugin.generic.hardware:
enabled: true
availability-zone: 'Demozone'
INSTANA_ZONE 環境変数を使用してこの構成を指定することもできます。この環境変数は、構成ファイルで指定されたゾーンをオーバーライドします。 設定が完了すると、ホストはインフラストラクチャマップ上でゾーンごとにグループ化されます。

カスタムプロセスの監視
デフォルトでは、 Instana は、 Java® や MySQL などの上位センサーのプロセスメトリクスを自動的に監視します。 Instana で自動的に監視対象とならない OS プロセスを監視するには、プロセス名とその引数の両方を指定して設定します
com.instana.plugin.process:
processes:
- 'sshd'
- 'slapd'
arguments:
- '/opt/script.sh'
シークレットの設定
トレース・データには機密データが含まれる場合があります。 したがって、 Instana エージェントは、シークレット(トレースデータからエージェント側でマスキングされるデータ)のパターン指定をサポートしています。 機密扱いされているデータは、 Instana ( SaaS )での処理対象とならないため、UIでの分析や API を使用した取得には利用できません。
シークレットを次のように指定してください:
com.instana.secrets:
# One of: 'equals-ignore-case', 'equals', 'contains-ignore-case', 'contains', 'regex'
matcher: 'contains-ignore-case'
list:
- 'key'
- 'password'
- 'secret'
カスタムシークレットの設定を指定しない場合、 Instana はデフォルトでこのシークレット設定を使用します。 キーがリストのエントリーと一致する場合、値は編集され、Instana バックエンドには送信されません。
Instana 以下の設定要素を通じて、インフラストラクチャおよびプラットフォームレベルでのシークレットをサポートします:
- プロセス環境変数
- Docker コンテナー情報
- Kubernetes 注釈とコンテナ環境変数 このオプションでシークレットをサポートするには、追加の設定が必要です。 詳細については、 Kubernetes secrets を参照してください。
Instana 以下のランタイム要素でシークレットをサポートしています:
- データベース接続ストリング
https://my.domain/accounts/status?account=*secret_1*&user=*secret_2*などの HTTP 照会パラメーター (実質的には、サポートされるすべてのランタイムを対象とします。以下のサポート・マトリックスを参照してください)。- HTTP 行列パスパラメータなど
https://my.domain/accounts/account=*secret_1*;user=*secret_1*/status。
以下のランタイムがサポートされています。
| 言語 | HTTP 照会パラメーターのシークレット | HTTP マトリックス・パラメーターのシークレット |
|---|---|---|
| Go | ✅ | ❌ |
| Java® | ✅ | ✅ |
| NGINX | ✅ | ❌ |
| Node.js | ✅ | ❌ |
| .NET Core | ✅ | ✅ |
| .NET Framework | ✅ | ✅ |
| PHP | ✅ | ✅ |
| Python | ✅ | ❌ |
| Ruby | ✅ | ❌ |
| HTTPd | ✅ | ❌ |
プロセスを無視する
特定のプロセスをトレース対象から除外することができます。
特定のプロセスの監視を無効にするには、エージェントの設定ファイル内のセクション com.instana.ignore のコメントを外し、監視を必要としないプロセスの名前をすべて列挙してください。
プロセスまたは引数のいずれかを定義できます。 たとえば、という nginx プロセスとという引数を定義した場合 /opt/server/server.js、 NGINX プロセスと、 /opt/server/server.jsファイルを呼び出す nodeJS プロセスの両方が無視されます。 以下の例を参照してください。
com.instana.ignore:
processes:
- 'java'
- 'httpd'
arguments:
- '-batch-file=/tmp/batch.def'
Windows では、リスト内のプロセス名は大文字と小文字が区別されます。
場合によっては、スクリプトまたは他のジョブが同じコマンドによって開始されますが、無視する必要があるのは 1 つのコマンドの実行だけです。 このシナリオでは、引数を使用して、プロセスを無視する対象となる引数を指定します。
引数を指定する際は、 Instana のUIにある 「プロセス 」>「 引数」 で定義されている引数と環境変数を必ず取得するようにしてください。
Instana 引数の間の空白に基づいて引数を受け取ります。 たとえば、コマンドを次のように実行した場合、と -p の間のスペース 4654 によって /usr/bin/java -p 4654 -Djava.locale.providers=CLDR,JRE,SPI、 Instana はこれらを2つの異なる引数として認識してしまいます。
Instana のUIで有効になっているエージェント機能を無効にする
Instana のUIで有効になっているすべてのエージェント機能を無効にするには、設定 *instanaAgentDir*/etc/instana/com.instana.agent.main.config.Agent.cfg ファイルに次の行を追加してください:
backchannel.enabled = false
Instana へのソースコードファイルのアップロード
Instana エージェントは、モニター対象のプロセスのオンデマンド・ソース・コードを取得して、収集したトレース・データに関連付けることができます。
Instana へのソースファイルのオンデマンドアップロードを無効にするには、以下の手順を実行してください:
*instanaAgentDir*/etc/instana/com.instana.agent.main.config.Agent.cfg構成ファイルで以下の構成を設定します。source.download.enabled = false- この設定を適用するには、 Instana エージェントを再起動してください。
エラー報告イベントの設定( AIX オペレーティングシステムのみ)
AIX システムからエラー・イベントをポーリングする時間間隔を指定するには、 aixEventsPollRate イベントを秒単位 (最小は 900 秒) で設定します。
com.instana.plugin.host:
aixEventsPollRate: 900 # (Optional) Only for AIX systems. Setting a value to 900 seconds or larger will enable error report event collection and removing it will stop it.
この機能を無効にするには、エージェント構成ファイルから aixEventsPollRate イベントを削除します。
特定のプロセスの監視
Instana コマンドラインに, uwsgi, または python という gunicorn名前が含まれるプロセスを自動的に監視します。 エージェントの設定ファイルに特定のプロセス名を指定することで、コマンドライン上では異なる名前で実行されている Python アプリケーションを監視することができます。
検出対象のプロセ configuration.yaml スをファイルに追加するには、以下の設定を使用してください:
com.instana.plugin.python:
include_processes:
- ./process_name
この設定により、プロセス名が監視対象プロセスのリストに追加され、 Instana のUIで確認できるようになります。