Surveillance des processus de système d'exploitation

Le capteur « OS Process » est automatiquement déployé et installé une fois que vous avez installé l'agent « Instana ».

Configuration

Fin de processus anormale

L'agent Instana peut détecter automatiquement une fin anormale de processus (par exemple, les pannes) des processus surveillés et l'émission et le résultat d'événements de récupération de mémoire de type OOM Killer (Out of Memory Killer) dans les processus surveillés sur l'hôte.

Configuration requise

  • La détection d'arrêt anormal de processus et d'événements de type OOM Killer n'est prise en charge que sous Linux sur l'architecture AMD64. Un noyau Linux de version 4.8 ou ultérieure est requis ou, dans le cas de RHEL, un noyau Linux de version 3.10.0-957 ou ultérieure.
  • Montage du débogueur debugfs, notamment pour tous les systèmes d'exploitation Linux pris en charge par l'agent hôte Instana, à l'exception d'Amazon Linux 1.

Anomalies détectées

Fin anormale
  • Sortie avec des codes d'état d'erreur, par exemple, exit 1
  • Arrêt du processus via kill, a.k.a. SIGKILL
  • Erreurs de segmentation
  • Signaux non gérés

Arrêt anormal du processus affiché dans le tableau de bord du processus.

Evénement OOM Killer (Out of Memory Killer)

L'événement OOM killer est un événement envoyé par le système d'exploitation ou un environnement d'exécution de conteneur à un processus, appelé processus cible qui consomme (c'est-à-dire qui "a alloué") plus de mémoire que celle qui lui est octroyée. Le processus cible peut alors décider de s'arrêter ou d'indiquer ses processus enfants qui doivent être arrêtés.

Un exemple de cas d'utilisation pour la sélection d'un processus enfant à arrêter est le recours à des architectures de type leader-worker comme NGINX ou PHP-FPM, où le processus leader gère et délègue le travail aux processus de travail (worker), qui consomment généralement beaucoup plus de ressources que le leader.

Dans Instana, les événements OOM Killer sont documentés en fonction de deux événements dédiés :

  • L'événement Out of memory (mémoire insuffisante) d'un processus représente la réception par ce processus de l'événement OOM Killer ; cet événement indique le processus ayant été arrêté en conséquence, afin de comprendre plus facilement ce qui s'est passé lorsque le processus cible lui-même ne s'est pas arrêté.
  • L'événement Killed by out of memory killer indique le processus qui a été arrêté suite à un événement Out of memory. L'événement Killed by out of memory killer est accompagné d'un événement Abnormal Termination en raison d'un uncaught SIGKILL signal qui indique comment l'arrêt du processus s'est produit.

Selon que le processus cible a décidé de s'arrêter ou d'arrêter l'un de ses processus enfants, il existe deux scénarios possibles dans Instana :

  • Si le processus cible décide de s'arrêter, vous verrez apparaître trois événements pour ce processus : l'événement Out of memory (Mémoire insuffisante), l'événement Killed by out of memory killer (Supprimé par un processus OOM Killer) et, bien sûr, l'événement Abnormal Termination (Fin anormale).

    Processus cible qui a décidé de se terminer lui-même après avoir reçu un événement de tueur de mémoire.

  • Si le processus cible a sélectionné l'un de ses processus enfants à arrêter, vous verrez l'événement Out of memory sur le processus cible, et les événements Killed by out of memory killer et Abnormal Termination sur le processus enfant qui a été sélectionné.

Notons au passage que les événements Abnormal Termination et Killed by out of memory killer peuvent sembler redondants. Ce n'est pas le cas : ils décrivent deux aspects différents d'une fin de processus : l'événement Abnormal Termination en explique l'effet et l'événement Killed by out of memory killer en explique la cause. En outre, nous constatons une meilleure expérience utilisateur lorsqu'il est possible de retrouver tous les événements de fin anormale (Abnormal Termination) identiques, qu'ils soient ou non dus à un événement OOM Killer ou autre.

Désactivation

La détection de la fin anormale d'un processus peut être désactivée avec le paramètre suivant dans le fichier configuration.yaml :

com.instana.plugin.ebpf:
  enabled: false
 

Processus personnalisés

Instana surveille automatiquement les indicateurs de processus pour les capteurs de niveau supérieur, tels que Java ou MySQL. Pour surveiller un processus au niveau du système d'exploitation que Instana ne détecte pas par défaut, vous pouvez le configurer comme indiqué dans l'exemple suivant :

com.instana.plugin.process:
  poll_rate: 3 # values are in seconds. Default value is 3 seconds.
  processes:
    - 'sshd'
    - 'slapd'
  arguments:
    - 'config'
    - 'port'
  services:
    - 'upower.service'
    - 'polkit.service'
 

Processus

Pour surveiller un processus spécifique dans l' Instana, vous devez ajouter les noms des processus sous forme de liste dans la section « processes: » du fichier de configuration. Instana surveille automatiquement tout processus dont le nom correspond aux chaînes de caractères que vous indiquez. Par exemple, si vous indiquez sshd et slapd dans la section « processus : », Instana surveille tous les processus dont le nom contient sshdslapd ou.

Arguments

Pour surveiller des processus spécifiques en fonction de certains arguments dans ` Instana `, vous devez ajouter ces mots-clés sous forme de liste dans la section `arguments:` du fichier de configuration. Instana surveille automatiquement tout processus dont la clé ou la valeur d'un argument correspond aux chaînes de caractères que vous fournissez. Par exemple, si vous ajoutez config et port dans les arguments, « Instana » surveille tous les processus dont les arguments port contiennent config ou.

Service

Pour surveiller des services spécifiques sur Linux dans Instana, vous devez ajouter les noms de ces services sous forme de liste dans la section « services: » du fichier de configuration. Instana surveille automatiquement tout service dont le nom correspond aux chaînes de caractères que vous spécifiez. Par exemple, si vous indiquez upower.service et polkit.service dans services:, Instana surveille tous les services dont le nom correspond à ces noms.

Commutation de contexte volontaire et involontaire

Remarque : Cette fonctionnalité n'est prise en charge que sur les systèmes d'exploitation Linux.

Vous pouvez activer manuellement la surveillance de la commutation de contexte en éditant le fichier de configuration de l'agent de l'hôte (/opt/instana/agent/etc/instana/configuration.yaml) :

...
com.instana.plugin.process:
  ctx_switches_enabled: true
 

Variables d'environnement de processus de système d'exploitation

Le capteur de processus d'Instana capture automatiquement toutes les variables d'environnement des processus surveillés. Les environnements contiennant souvent des données sensibles ou secrètes, le capteur de processus prend en compte tous les secrets configurés lors du filtrage.

Pour en savoir plus sur la configuration des secrets, consultez la section « Secrets de configuration de l'agent ».

Vous pouvez également désactiver manuellement la surveillance des variables d'environnement de processus en éditant le fichier de configuration de l'agent hôte (/opt/instana/agent/etc/instana/configuration.yaml) comme suit:

...
com.instana.plugin.process:
  env_vars_enabled: false
 

configuration des secrets

Collecte des métriques

Pour consulter les métriques, sélectionnez « Infrastructure » dans la barre latérale de l'interface utilisateur d' Instana, cliquez sur un hôte surveillé spécifique, puis vous verrez s'afficher un tableau de bord de l'hôte contenant toutes les métriques collectées et les processus surveillés.

Données de configuration

  • PID
  • Exécutable
  • Démarrage
  • Utilisateur
  • Groupe
  • Nombre max de fichiers ouverts
  • Arguments

Métriques de performance

Utilisation de l'UC

Valeurs d'utilisation de l'UC en pourcentage pour l'utilisateur (user) et le système (system). Les valeurs sont affichées sur un graphique sur une période sélectionnée.

Point de données : Filesystem

Granularité : 3 secondes

Utilisation de l'unité centrale normalisée

Les valeurs normalisées d'utilisation du processeur indiquent le pourcentage d'utilisation du processeur consacré à l'exécution du code en mode utilisateur et en mode système d'un processus. Les valeurs sont affichées sur un graphique sur une période sélectionnée.

Point de données : Filesystem

Granularité : 3 secondes

Mémoire

Valeurs d'utilisation de la mémoire en octets pour la mémoire virtuelle (virtual), résidente (resident) et partagée (share). Les valeurs sont affichées sur un graphique sur une période sélectionnée.

Point de données : Filesystem

Granularité : 3 secondes

Fichiers ouverts

Les fichiers ouverts ont les valeurs used correspondant au nombre total et current représentant leur pourcentage. Les valeurs sont affichées sur un graphique sur une période sélectionnée.

Les fichiers ouverts avec les valeurs current et max sont visibles lorsqu'ils sont disponibles sur le système d'exploitation.

Point de données : Filesystem

Granularité : 3 secondes

Nombre de changements de contexte

Nombre de fois où le processus a été commué en contexte ; voluntary et nonvoluntary. Les valeurs sont affichées sur un graphique sur une période sélectionnée.

Point de données : Filesystem

Granularité : 3 secondes

Signatures d'intégrité

Pour chaque capteur, il existe une base de connaissances des signatures d'intégrité qui sont évaluées en permanence par rapport aux métriques entrantes et qui sont utilisées pour traiter les problèmes ou les incidents en fonction de l'impact sur l'utilisateur.

Les événements intégrés déclenchent des problèmes ou des incidents en fonction de signatures de santé défaillantes sur des entités, tandis que les événements personnalisés déclenchent des problèmes ou des incidents en fonction des seuils d'une métrique spécifique à une entité donnée.

Pour plus d'informations sur l'événement intégré pour le détecteur de processus de système d'exploitation, voir la référence des événements intégrés.