Instana 選択的監視
「選択的監視」機能を使用することで、組織や技術的な要件に応じて、 Instana エージェントによるアプリケーションの検出および監視方法をカスタマイズできます。 エージェントがすべてのアプリケーションやプロセスを自動的に検出するのではなく、 Instana の「選択的監視」機能を使用すれば、プロセスごとに監視の対象から除外したり、監視対象に追加したりすることができます。 プロセスごとの設定に加え、「選択的モニタリング」では、 Kubernetes ラベルを使用したネームスペースレベルの制御もサポートしており、 Kubernetes ネームスペース内で実行されているすべてのワークロードに対して、モニタリングの対象外または対象内とする設定が可能です。
選択的モニタリングは、 Instana エージェントの機能であり、エージェントバージョン 1.2.28 以降で利用可能です。 ネームスペースラベルは、 エージェントオペレーター( 2.1.25 以降)および Helm チャート( 2.0.21 以降)でサポートされています。
オプトアウト手続きの監視
Instana Agent のデフォルト設定では、インストールされているホスト上のすべてのプロセスを検出・監視します。 これは、環境 INSTANA_SELECTIVE_MONITORING 変数が設定されていないか、明示的に に設定されている場合の OPT_OUTデフォルトの動作です。 特定のプロセスを検出時に無視し、監視時にも無視する必要がある場合は、環境 INSTANA_MONITORING 変数を に設定することで false、そのプロセスの監視を無効にすることができます。 Instana エージェントは、プロセス環境に INSTANA_MONITORING=false が含まれるすべてのプロセスを無視します。
オプトインプロセスの監視
Instana エージェントのデフォルトの検出動作を変更するには、環境変数を INSTANA_SELECTIVE_MONITORING に設定してエージェントを起動 OPT_INする必要があります。 このモードでは、エージェントは、監視を明示的に許可したプロセスのみを検出します。 モード OPT_IN で監視が必要な各プロセスでは、環境変数を INSTANA_MONITORING に設定する必要があります true。 Instana エージェントは、プロセス環境に INSTANA_MONITORING=true が含まれるプロセスのみを監視します。
オプトインとオプトアウトのマトリックス
| モニター・モード | 説明 | エージェント環境 | プロセス環境 | 結果 |
|---|---|---|---|---|
| オプトアウト | すべてのプロセスはデフォルトで監視されます | 未設定、または INSTANA_SELECTIVE_MONITORING=OPT_OUT |
設定なし | そのプロセスは監視されています |
| オプトアウト | すべてのプロセスはデフォルトで監視されます | 未設定、または INSTANA_SELECTIVE_MONITORING=OPT_OUT |
INSTANA_MONITORING=false |
この処理は無視されます |
| オプトイン | デフォルトでは監視対象のプロセスはありません | INSTANA_SELECTIVE_MONITORING=OPT_IN |
設定なし | この処理は無視されます |
| オプトイン | デフォルトでは監視対象のプロセスはありません | INSTANA_SELECTIVE_MONITORING=OPT_IN |
INSTANA_MONITORING=true |
そのプロセスは監視されています |
Kubernetes への選択的監視の適用
Kubernetes ベースのワークロードについては、コンテナレベルまたはネームスペースレベルでオプトインおよびオプトアウトモードを設定してください。 以下の例は、「example-workload」の監視を無効にするための Kubernetes のデプロイ設定を示しています。 「 出力プロセスの監視 」で説明されている環境変数は、ワークロードのコンテナ上で環境変数として設定されます:
apiVersion: apps/v1
kind: Deployment
metadata:
name: example-workload
spec:
...
template:
spec:
containers:
- name: example-workload
image: example-workload-image
env:
- name: INSTANA_MONITORING
value: false
オプトインモードでは、エージェントに対して適切な環境変数を設定する必要があります。 Operator を使用してエージェントをデプロイする場合、次の例に示すように、エージェントの ` CustomResource ` を設定できます
apiVersion: instana.io/v1
kind: InstanaAgent
metadata:
name: instana-agent
namespace: instana-agent
spec:
cluster:
name: example-cluster
agent:
key: <agent-key>
endpointHost: ingress-red-saas.instana.io
endpointPort: "443"
env:
INSTANA_SELECTIVE_MONITORING: "OPT_IN"
Helm のチャートベースのデプロイを行う場合は、環境変数を設定 values.yaml するか、 Helm を実行する際に Helm コマンドオプションを指定して適用してください:
--set agent.env.INSTANA_SELECTIVE_MONITORING='OPT_IN'
名前空間レベルでの選択的監視の適用
Kubernetes のネームスペースにデプロイされているすべてのワークロードのオプトアウトまたはオプトインを行うには、そのネームスペースのラベルにラベル instana-workload-monitoring=false または instana-workload-monitoring=true を適用します。 Instana エージェントオペレーターは、ネームスペースのラベルをすべてのホストエージェントと同期し、ワークロードを無視するか、またはそれに応じてワークロードの監視を開始します。
次の例では、名前空間「demo」を作成し、ラベルを設定した後、最後のステップでそれを削除します。 この例では、エージェントが 「 Kubernetes への選択的モニタリングの適用」 のセクションで説明されているように、オプトインモードで展開されていることを前提としています。
# create a new namespace
$ kubectl create ns demo
namespace/demo created
# monitor workloads in the demo namespace
$ kubectl label ns demo instana-workload-monitoring=true
namespace/demo labeled
# remove label
$ kubectl label ns demo instana-workload-monitoring-
namespace/demo unlabeled
Kubernetes における選択的モニタリングの制限事項
z/OS プラットフォーム
z/OS では、 WebSphere またはLiberty、および CICS Libertyアプリケーションに対して、選択的モニタリングがサポートされています。 z/OS で選択的モニタリングを有効にするには、 「オプトインおよびオプトアウトのマトリックス 」のセクションに記載されているのと同じオプトインおよびオプトアウトの手順に従ってください:
- エージェントの環境変数を設定して、オプトインモードを有効にします:
export INSTANA_SELECTIVE_MONITORING=OPT_IN - 監視対象のアプリケーションの JVM 引数として、プロセス環境変数を設定します:
-DINSTANA_MONITORING=true
- オプトアウトモード :デフォルトでは、 JVM
-DINSTANA_MONITORING=false引数としてが設定されていない限り、エージェントはすべてのプロセスを監視します。 - オプトインモード :エージェントに対してこの
INSTANA_SELECTIVE_MONITORING=OPT_IN設定を行うと、エージェントは JVM 引数として-DINSTANA_MONITORING=true指定されたプロセスだけを監視します。
「 WebSphere 」や「Liberty」、および「 CICS Liberty」以外の z/OS アプリケーションでは、選択的監視はサポートされていません。
監視対象のワークロードのリアルタイム更新
ワークロードがすでに Instana によって監視されている場合、実行中にネームスペースのラベルが更新され、そのネームスペース内のすべてのプロセスが無視されるようになったとしても、そのワークロードは引き続き監視対象となります。
Kubernetes リソース
Kubernetes コントロールプレーンからのリソースは、すべてのリソースタイプについて常に収集されます。 Instana の Kubernetes センサーは、Deployment、 DaemonSets,、Namespace、Podなどのコントロールプレーンからこのデータを取得できます。 このレベルの指標は、特定のアプリケーションに依存するものではありません。
エージェントは、コンテナ内で無視されるプロセスに関係なく、ホスト上で実行されているすべてのコンテナのメトリクスを収集します。 コンテナレベルのメトリクスのみが収集されます。 たとえば、エージェントは OpenShift Container Platform ノード上で実行されている複数のシステムCRIOコンテナのメトリクスを収集しますが、プロセス自体は監視されません。 プロセスレベルでは、そのプロセスが監視対象から除外されている場合、エージェントはセンサーやトレーサーを起動しません。 無視されたプロセスは、そのホストの子エンティティとして表示されませんが、対応するコンテナは子エンティティとして表示されます。 あるプロセスが無視されているかどうかを確認するには、対応するコンテナを見つけ、そのプロセスエンティティが子エンティティとして関連付けられているかどうかを確認してください。
Webhook の自動トレース
AutoTrace のWebhookは、プロセスレベルでのオプトアウトまたはオプトインの設定を反映しません。 クラスターに AutoTrace ウェブフックがデプロイされており、関連するワークロードがモニタリング対象外として設定されている場合、対応するラベルも instana-autotrace: "false" 必要です。 AutoTrace Webhook のオプトアウトおよびオプトインに関する詳細については、 「リソースの無視」 を参照してください。