Traitement des incidents
Une fois l'agent hôte Instana installé, le capteur hôte est automatiquement installé et déployé. Vous pouvez afficher les métriques liées au capteur hôte dans l'interface utilisateur d' Instana.
eBPF non pris en charge
Type de problème surveillé : ebpf_not_supported
La fonctionnalité Process Abnormal Termination détecte lorsque des processus s'exécutant sur un système d'exploitation basé sur Linux se terminent de manière inattendue en raison de plantages ou d'interruptions par des signaux externes.
Cette fonctionnalité repose sur le filtre de paquets Berkley étendu, qui peut ne pas être disponible sur cet hôte.
Pour profiter des fonctionnalités d' eBPF-based d' Instana, vous avez besoin d'un noyau 4.7 + Linux avec debugfs monté.
Pour plus d'informations sur les systèmes d'exploitation pris en charge, consultez la section Processus de terminaison anormale.
eBPF bloqué par une stratégie SELinux
Si SELinux est installé sur votre hôte, vous devez créer une politique pour autoriser l'agent à utiliser eBPF. SELinux peut empêcher unconfined services similaire à l'agent hôte d'émettre l'appel bpf_* système syscall que le capteur eBPF utilise pour instrumenter le noyau Linux. Pour vérifier, vous devez consulter les entrées du journal du système d'audit, qui est stocké par défaut dans le répertoire /var/log/audit/audit.log.
L'exemple suivant montre les étapes à suivre pour créer une stratégie pour une machine Red Hat Linux :
- Exécutez la commande suivante :
$ cat /var/log/audit/audit.log | grep ebpf type=AVC msg=audit(1598891569.452:193): avc: denied { map_create } for pid=1612 comm="ebpf-preflight-" scontext=system_u:system_r:unconfined_service_t:s0 tcontext=system_u:system_r:unconfined_service_t:s0 tclass=bpf permissive=0 type=SYSCALL msg=audit(1598891569.452:193): arch=c000003e syscall=321 success=no exit=-13 a0=0 a1=7ffc0e1f5020 a2=78 a3=fefefefefefefeff items=0 ppid=1502 pid=1612 auid=4294967295 uid=0 gid=0 euid=0 suid=0 fsuid=0 egid=0 sgid=0 fsgid=0 tty=(none) ses=4294967295 comm="ebpf-preflight-" exe="/opt/instana/agent/data/repo/com/instana/ebpf-preflight/0.1.6/ebpf-preflight-0.1.6.bin" subj=system_u:system_r:unconfined_service_t:s0 key=(null) type=PROCTITLE msg=audit(1598891569.452:193): proctitle="/opt/instana/agent/data/repo/com/instana/ebpf-preflight/0.1.6/ebpf-preflight-0.1.6.bin"Remarque : les fichiers journaux d'audit sont généralement rotatifs. Par conséquent, vous devez exécuter cette commande peu après avoir démarré l'agent hôte.Dans le fichier journal, vous pouvez voir que
map_createl'appel système est refusé. Pour permettre au capteur d' eBPF s d'effectuer l'appel système, vous devez créer la politique SELinux et le programmeaudit2allow. - Sur les systèmes Red Hat, installez la stratégie comme suit :
yum install policycoreutils-python - Avec
audit2allow, créez des fichiers de stratégie bruts basés sur les entrées du journal, comme indiqué dans l'exemple suivant :
grep ebpf /var/log/audit/audit.log | audit2allow -M instana_ebpf
La commande de traitement crée les fichiers suivants :
ls -Al | grep instana_ebpf
-rw-r--r--. 1 root root 886 31. Aug 18:31 instana_ebpf.pp
-rw-r--r--. 1 root root 239 31. Aug 18:31 instana_ebpf.te
Le fichier de instana_ebpf.te stratégie brut contient une instruction permettant d'autoriser l'appel système refusé, comme illustré dans l'exemple suivant :
$ cat instana_ebpf.temodule instana_ebpf 1.0;require {
type unconfined_service_t;
class bpf map_create;
}#============= unconfined_service_t ==============#!!!! This avc is allowed in the current policy
allow unconfined_service_t self:bpf map_create;
Cette politique permet à toute application de type non confiné (très générique) d'effectuer l'appel map_create système.
- De plus, le capteur eBPF nécessite quelques appels système supplémentaires. Vous devez modifier le
instana_ebpf.tefichier comme indiqué dans l'exemple suivant :$ cat instana_ebpf.te module instana_ebpf 1.0;require { type unconfined_service_t; class bpf { map_create map_read map_write prog_load prog_run }; }#============= unconfined_service_t ==============#!!!! This avc is allowed in the current policy allow unconfined_service_t self:bpf { map_create map_read map_write prog_load prog_run }; - Réécrivez le fichier au format binaire sous le nom
instana_ebpf.modfile :$ checkmodule -M -m -o instana_ebpf.mod instana_ebpf.te checkmodule: loading policy configuration from instana_ebpf.te checkmodule: policy configuration loaded checkmodule: writing binary representation (version 19) to instana_ebpf.mod - Reconditionnez le
instana_ebpf.modfichier sous forme de module chargeable :semodule_package -o instana_ebpf.pp -m instana_ebpf.mod - Appliquer l'ensemble de mesures :
semodule -i instana_ebpf.pp
Tout processus non confiné, tel que l'agent hôte, peut désormais effectuer des appels système.