Instana Surveillance sélective
Vous pouvez personnaliser la manière dont l'agent d' Instana s détecte et surveille les applications en fonction des besoins de votre organisation ou de vos contraintes techniques, grâce à la surveillance sélective. Au lieu que l'agent détecte automatiquement toutes les applications ou tous les processus, Instana La surveillance sélective vous permet d'activer ou de désactiver la surveillance au cas par cas, pour chaque processus. Outre la configuration par processus, la surveillance sélective prend également en charge le contrôle au niveau de l'espace de noms à l'aide d'étiquettes d' Kubernetes, permettant d'exclure ou d'inclure toutes les charges de travail exécutées dans un espace de noms d' Kubernetes.
La surveillance sélective est une fonctionnalité de l'agent Instana; elle est disponible à partir de la version 1.2.28 de l'agent. Les étiquettes d'espace de noms sont prises en charge par l' 2.1.25, version 2.0 ou ultérieure, de l'Agent Operator, ainsi que par l' 2.0.21, version 2.0 ou ultérieure, de l' Helm.
Suivi de la procédure de désinscription
Par défaut, l'agent d' Instana est configuré pour détecter et surveiller tous les processus sur l'hôte sur lequel il est installé. Il s'agit du comportement par défaut lorsque la variable INSTANA_SELECTIVE_MONITORING d'environnement n'est pas définie ou est explicitement définie sur OPT_OUT. Si certains processus doivent être ignorés lors de la détection et également lors de la surveillance, le processus concerné peut se désinscrire de la surveillance en définissant la variable INSTANA_MONITORING d'environnement sur false. Instana L'agent ignore tous les processus dont l'environnement INSTANA_MONITORING=false de processus contient
Suivi du processus d'adhésion
Pour modifier le comportement de découverte par défaut de l'agent Instana, il faut le lancer avec la variable d'environnement INSTANA_SELECTIVE_MONITORING définie sur OPT_IN. Dans ce mode, l'Agent détecte uniquement les processus qui ont expressément accepté d'être surveillés. Chaque processus devant être surveillé en OPT_IN mode nécessite que la variable d'environnement INSTANA_MONITORING soit définie sur true. Instana L'agent surveille uniquement les processus dont l'environnement INSTANA_MONITORING=true de processus contient.
Tableau des options d'adhésion et de désinscription
| Mode de surveillance | Description | Environnement de l'agent | Environnement de traitement | Résultat |
|---|---|---|---|---|
| Refuser | Tous les processus sont surveillés par défaut | Non défini ou INSTANA_SELECTIVE_MONITORING=OPT_OUT |
Non défini | Le processus fait l'objet d'un suivi |
| Refuser | Tous les processus sont surveillés par défaut | Non défini ou INSTANA_SELECTIVE_MONITORING=OPT_OUT |
INSTANA_MONITORING=false |
Le processus est ignoré |
| Accepter | Aucun processus n'est surveillé par défaut | INSTANA_SELECTIVE_MONITORING=OPT_IN |
Non défini | Le processus est ignoré |
| Accepter | Aucun processus n'est surveillé par défaut | INSTANA_SELECTIVE_MONITORING=OPT_IN |
INSTANA_MONITORING=true |
Le processus fait l'objet d'un suivi |
Application de la surveillance sélective à l' Kubernetes
Pour les charges de travail basées sur l' Kubernetes, configurez les modes d'activation et de désactivation soit au niveau du conteneur, soit au niveau de l'espace de noms. L'exemple suivant présente la configuration à utiliser lors d'un déploiement d' Kubernetes pour exclure la « charge de travail exemple » de la surveillance. La variable d'environnement décrite dans la section « Surveillance des processus de sortie » est définie en tant que variable d'environnement sur le conteneur de la charge de travail :
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
Pour le mode « opt-in », vous devez définir la variable d'environnement appropriée pour l'agent. Si vous déployez vos agents à l'aide de l'opérateur, vous pouvez configurer l' CustomResource s de l'agent comme indiqué dans l'exemple suivant :
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"
Pour un déploiement basé sur les graphiques d' Helm, définissez la variable d'environnement soit dans le fichier values.yaml , soit lors de l'exécution de la commande ` Helm ` en spécifiant l'option de commande ` Helm ` :
--set agent.env.INSTANA_SELECTIVE_MONITORING='OPT_IN'
Application de la surveillance sélective au niveau de l'espace de noms
Pour désactiver ou activer toutes les charges de travail déployées dans un espace de noms d' Kubernetes, vous pouvez ajouter le libellé instana-workload-monitoring=false ou instana-workload-monitoring=true aux libellés de l'espace de noms. L'opérateur de l'agent « Instana » synchronise les étiquettes d'espace de noms avec tous les agents hôtes et ignore les charges de travail, ou commence à surveiller ces dernières en conséquence.
L'exemple suivant crée un espace de noms « demo », définit l'étiquette, puis la supprime à la dernière étape. Cet exemple part du principe que l'agent est déployé en mode « opt-in », comme décrit dans la section « Application de la surveillance sélective à 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
Limites de la surveillance sélective sur Kubernetes
Plateforme z/OS
La surveillance sélective est prise en charge sur z/OS pour les applications WebSphere ou Liberty, ainsi que sur CICS pour les applications Liberty. Pour activer le suivi sélectif sur z/OS, suivez les mêmes procédures d 'activation et de désactivation que celles décrites dans la section « Matrice d'activation et de désactivation » :
- Définissez la variable d'environnement agent pour activer le mode « opt-in » :
export INSTANA_SELECTIVE_MONITORING=OPT_IN - Définissez la variable d'environnement du processus en tant qu'argument de l' JVM e pour l'application que vous souhaitez surveiller :
-DINSTANA_MONITORING=true
- Mode « opt-out » : par défaut, l'agent surveille tous les processus, sauf si
-DINSTANA_MONITORING=falseest défini comme argument de l' JVM. - Mode « opt-in » : lorsque cette option
INSTANA_SELECTIVE_MONITORING=OPT_INest activée pour l'agent, celui-ci surveille uniquement les processus pour-DINSTANA_MONITORING=truelesquels figure parmi les arguments de l' JVM.
La surveillance sélective n'est pas prise en charge pour les autres applications d' z/OS, à l'exception d' WebSphere, de Liberty et d' CICS Liberty.
Mise à jour en temps réel des charges de travail surveillées
Si une charge de travail est déjà surveillée par Instana, elle continue d'être surveillée, même si les étiquettes d'espace de noms sont mises à jour pendant l'exécution afin d'ignorer tous les processus d'un espace de noms.
Ressources Kubernetes
Kubernetes Les ressources du plan de contrôle sont toujours collectées pour tous les types de ressources. Le capteur Instana Kubernetes peut extraire ces données du plan de contrôle, notamment les déploiements, les DaemonSets, les espaces de noms et les pods. Les indicateurs à ce niveau ne sont pas spécifiques à une application.
L'agent recueille des métriques pour tous les conteneurs qui s'exécutent sur l'hôte, quel que soit le processus ignoré dans le conteneur. Seules les métriques au niveau des conteneurs sont collectées. Par exemple, l'agent recueille des métriques pour plusieurs conteneurs CRIO du système qui s'exécutent sur un nœud d' OpenShift Container Platform, mais les processus ne sont pas surveillés. Au niveau du processus, l'agent ne lance pas les capteurs ni les traceurs si le processus a été exclu de la surveillance. Le processus ignoré n'apparaît pas comme entité enfant de l'hôte, mais le conteneur correspondant figure bien comme entité enfant. Pour savoir si un processus est ignoré, recherchez le conteneur correspondant et vérifiez si l'entité du processus y est associée en tant qu'entité enfant.
AutoTrace webhook
Le webhook « AutoTrace » ne tient pas compte des paramètres d'exclusion ou d'acceptation au niveau des processus. Si le webhook « AutoTrace » est déployé dans le cluster et que les charges de travail associées sont configurées pour être ignorées lors de la surveillance, le label correspondant instana-autotrace: "false" est également requis. Pour plus d'informations sur la désactivation et l'activation du webhook « AutoTrace », consultez la section « Ignorer les ressources ».