Configuration de la surveillance des utilisateurs finaux
Contrairement à d'autres types de données de surveillance, telles que les données d'infrastructure ou d'application, la surveillance des utilisateurs finaux est toujours collectée à partir d'appareils non fiables qui fonctionnent sur l'Internet mondial ou un intranet local. Pour cette raison, des étapes de configuration supplémentaires doivent être effectuées afin de garantir que les navigateurs Web et les appareils mobiles des utilisateurs finaux puissent établir une connexion sécurisée à l'aide d'un nom de domaine public contrôlé par votre organisation. De plus, veillez à ce que les utilisateurs finaux aient uniquement accès au point de terminaison spécifique de surveillance des utilisateurs finaux, et non à d'autres parties de l'infrastructure de surveillance.
Les sections suivantes expliquent le nœud final de surveillance approprié, les API exposées, les considérations de sécurité et la manière de mettre le nœud final de surveillance à la disposition de vos utilisateurs finaux.
Nœud final de surveillance
Le backend Instana auto-hébergé (sur site) d' Instana expose les points de terminaison de surveillance des utilisateurs finaux HTTP sous les ports 86 ( HTTP ) et 446 ( HTTPS ). Ces ports peuvent être rendus disponibles sur Internet ou sur l'intranet, directement ou via un proxy inverse, afin de permettre le téléchargement de l'agent d' JavaScript s et l'acceptation des données. Le nombre de ces ports est délibérément réduit au minimum afin de limiter les vecteurs d'attaque potentiels et de faciliter le déploiement du point de terminaison de surveillance.
Les ports ne sont délibérément pas 80 et 443 car ces ports sont réservés à l'accès à l'interface utilisateur d' Instana. En séparant l'entrée des données et l'interface utilisateur, il devient plus facile de déployer en toute sécurité la solution de surveillance des utilisateurs finaux d' Instana.
Les requêtes HTTP sont acceptées sur 86 et 446 (proxy vers le port interne 2999) pour les chemins suivants :
- Acceptation des données de surveillance du site
GET /eum/POST /eum/
- Téléchargement de l'agent JavaScript
GET /eum/eum.min.jsGET /eum/eum.min.js.mapGET /eum/eum.jsGET /eum/eum.js.mapGET /eum/eum.debug.min.jsGET /eum/eum.debug.min.js.mapGET /eum/eum.debug.jsGET /eum/eum.debug.js.map
- Acceptation des données de surveillance de l'application mobile
POST /eum/mobile
Dans l'interface utilisateur d' Instana, il est recommandé d'utiliser l' URL e du point de terminaison de surveillance comme trackingBaseUrl. Une valeur valide pour trackingBaseUrl pourrait être https://*instanaServer*:446/eum/.
Exposer le nœud final de surveillance aux utilisateurs finaux
Il est recommandé d'exposer le point de terminaison de surveillance aux utilisateurs finaux à l'aide d'un proxy inverse, tel que NGINX ou Apache HTTPd. Ce faisant, vous pouvez vous assurer que le trafic est correctement acheminé depuis Internet ou l'intranet vers le point terminal de surveillance via vos réseaux. De plus, cela vous permet d'exposer le point de terminaison de surveillance sous votre nom de domaine, avec le port 443 qui utilise le protocole Transport-Layer Security ( TLS ), vos propres certificats et des équilibreurs de charge (le cas échéant)! Cependant, vous pouvez décider d'autoriser l'accès aux ports 86 et 446 directement depuis Internet.
Des exemples exécutables sont fournis pour montrer comment configurer des proxys inversés pour le point de terminaison de surveillance. Ces exemples montrent également quels en-têtes doivent être ajoutés ou proxysés, comme la nécessité d'un X-Forwarded-For en-tête.
Veillez à configurer le point de terminaison de surveillance dans Instana comme décrit dans les paramètres de surveillance des utilisateurs finaux (EUM) afin que l'interface utilisateur d' Instana puisse fournir des instructions d'installation correctes pour l'agent d' JavaScript s et l'agent d'application mobile.
Configuration d'une connexion sécurisée entre les navigateurs et le proxy inverse
Il est recommandé d'exposer le point de terminaison de surveillance avec le port HTTPS. Vous pouvez configurer la sécurité de la couche transport ( TLS ) pour votre réseau sous le même nom de domaine avec des certificats signés valides.
Si vous ne disposez pas d'une autorité de certification mais utilisez des certificats auto-signés, vous devez configurer un proxy inverse ou un équilibreur de charge pour proxyfier les requêtes vers les sites Web surveillés et le point de terminaison de surveillance, puis configurer le proxy avec vos certificats auto-signés.
Par exemple, vous configurez le proxy avec deux emplacements : https://proxy-server/website et https://proxy-server/eum/. Ensuite, si l'utilisateur final accepte le certificat auto-signé entrant pour https://proxy-server, ce certificat fonctionne à la fois pour les sites Web et le point de terminaison de surveillance.
Pour plus d'informations sur la manière de générer vos propres certificats auto-signés, consultez la documentation d'installation.
Base de données GeoLite2
Instana utilise les bases de données GeoLite2 d' Maxmind pour prendre en charge la géolocalisation IP pour les données de surveillance des utilisateurs finaux. Le backend Instana télécharge automatiquement les dernières bases de données GeoLite2 et les met à jour régulièrement.
Pour en ligne :
Instana Le backend est préconfiguré avec toutes les URL et informations d'identification nécessaires pour extraire la base de données, et fonctionne sans aucune configuration supplémentaire.
Pour configurer la base de données GeoLite2 URL dans Standard Edition, procédez comme suit. Les étapes suivantes ne sont nécessaires que si le client choisit de remplacer l' URL et les informations d'identification par défaut.
- Modifiez le fichier des valeurs personnalisées principales. Par exemple,
$HOME/.stanctl/values/instana-core/custom-values.yaml. - Configurez les informations d'identification de la base de données GeoLite2 comme indiqué dans l'exemple suivant :
#-- URL for downloading the GeoLite2 geolocation data file. geoDbUrl: "" # -- Basic authorization user for downloading the GeoLite2 geolocation data file. geoDbUser: "" # -- Basic authorization password for downloading the GeoLite2 geolocation data file. geoDbPassword: "" - Appliquez les valeurs personnalisées en exécutant la commande suivante :
stanctl backend apply - Veillez à respecter le contrat de licence utilisateur final (CLUF) d' GeoLite2.
Pour les systèmes isolés :
L' URL, et les informations d'identification par défaut ne fonctionnent pas dans un environnement isolé. Par conséquent, pour configurer la base de données GeoLite2 dans un environnement isolé, procédez comme suit :
- Créez et configurez l' URL e de l'une des manières suivantes :
- Mettez en miroir le fichier de base de données GeoLite2 et configurez l' URL suivante comme source de base de données GeoLite2 : https://artifact-public.instana.io/artifactory/rel-generic-instana-virtual/geodb/geolite2-city.tar.gz. Pour plus d'informations, consultez la section Mise en miroir des référentiels.
- Téléchargez le fichier et hébergez-le en interne, de manière accessible, puis configurez Instana pour utiliser votre hébergement interne URL : <complete-internal url>.
- Modifiez le fichier des valeurs personnalisées principales. Par exemple,
$HOME/.stanctl/values/instana-core/custom-values.yaml. - Configurez les informations d'identification de la base de données GeoLite2 comme indiqué dans l'exemple suivant :
#-- URL for downloading the GeoLite2 geolocation data file. geoDbUrl: "" # -- Basic authorization user for downloading the GeoLite2 geolocation data file. geoDbUser: "" # -- Basic authorization password for downloading the GeoLite2 geolocation data file. geoDbPassword: "" - Appliquez les valeurs personnalisées en exécutant la commande suivante :
stanctl backend apply - Veillez à respecter le contrat de licence utilisateur final (CLUF) d' GeoLite2.
Analyse des problèmes
Pour analyser le problème, procédez comme suit :
Ouvrez l'URL à l'agent JavaScript manuellement dans le navigateur. Est-ce que vous obtenez JavaScript comme réponse du serveur ?
- Si cela échoue et que vous utilisez un proxy, gardez à l'esprit que le chemin d'accès au fichier JavaScript a probablement été modifié. Avec les exemples de configurations de proxy ci-dessus, le chemin d'accès est
/eum.min.js. Si vous utilisez un proxyeum-acceptorsous un sous-chemin, vérifiez si vous prenez en compte les barres obliques finales, c'est-à-dire si votre proxy supprime le/eumchemin - Si cela échoue et que vous n'utilisez pas de proxy, gardez à l'esprit que le point de terminaison de surveillance Instana se lie uniquement aux ports
86et446. - Si cela ne fonctionne toujours pas, contactez le service d'assistance et expliquez la configuration, envoyez la configuration du proxy et expliquez comment vous essayez d'accéder au script.
- Si cela échoue et que vous utilisez un proxy, gardez à l'esprit que le chemin d'accès au fichier JavaScript a probablement été modifié. Avec les exemples de configurations de proxy ci-dessus, le chemin d'accès est
Ajoutez le fragment de surveillance du site Web à votre application.
- Si vous ne voyez aucune donnée relative au site Web, utilisez le script de débogage du site Web. Au lieu d'accéder à
eum.min.js, utilisezeum.debug.js. Cela enregistre un ensemble d'informations sur la configuration et la transmission dans la console du navigateur. Inspecter la console et résoudre d'autres problèmes. - Ouvrez l'explorateur de réseau dans votre navigateur (il figure dans les outils de développement). Vous pouvez voir les appels HTTP GET et HTTP POST sortants vers l' URL de rapport configurée. Assurez-vous que ces appels renvoient un code d'état
200ou204. Veillez tout particulièrement à ce qu'aucune redirection HTTP (code d'état302) ne soit renvoyée par le proxy à la suite de cet appel. - Si cela ne fonctionne toujours pas, contactez le support technique et expliquez la configuration, envoyez la configuration du proxy, expliquez comment vous essayez d'accéder au script et envoyez la sortie du script de débogage.
- Si vous ne voyez aucune donnée relative au site Web, utilisez le script de débogage du site Web. Au lieu d'accéder à