Administration de l'agent hôte sous Linux

Après avoir installé l'agent hôte, configurez et gérez l'agent selon vos besoins. Voir la liste suivante pour toutes les options de configuration de l'agent disponibles sous Linux.

Personnaliser la configuration de l'agent

Après l'installation de l'agent hôte, les fichiers de configuration suivants sont créés :

/opt/instana/agent/etc/mvn-settings.xml
/opt/instana/agent/etc/org.ops4j.pax.url.mvn.cfg
/opt/instana/agent/etc/instana/com.instana.agent.bootstrap.AgentBootstrap.cfg
/opt/instana/agent/etc/instana/com.instana.agent.main.config.Agent.cfg
/opt/instana/agent/etc/instana/com.instana.agent.main.config.UpdateManager.cfg
/opt/instana/agent/etc/instana/com.instana.agent.main.sender.Backend.cfg
/opt/instana/agent/etc/instana/configuration.yaml
 

Vous pouvez personnaliser la configuration de l'agent selon vos besoins. Par exemple, vous pouvez modifier le port et le nom d'hôte d' TCP du backend Instana et des services auxquels votre agent hôte se connecte, configurer l'agent pour qu'il envoie des rapports à plusieurs backends, ou configurer un proxy pour permettre une communication indirecte entre l'agent hôte et le backend Instana.

Pour plus d'informations sur la personnalisation de la configuration de l'agent, voir les rubriques suivantes :

Démarrage, arrêt et mise à jour de l'agent

Les sections suivantes expliquent comment démarrer, arrêter et mettre à jour l'agent hôte sous Linux:

Démarrage de l'agent

Lorsque vous installez l'agent hôte, il est activé pour démarrer automatiquement au démarrage du système. Vous pouvez désactiver ce comportement en définissant la variable d'environnement " INSTANA_AGENT_AUTOSTART=false lors de l'installation de l'agent.

  • Pour démarrer l'agent hôte, exécutez la commande suivante :

    /opt/instana/agent/bin/start
     
  • Si votre système d'exploitation utilise " systemd comme système d'initialisation, exécutez la commande suivante :

    systemctl start instana-agent.service
     
  • Si votre système d'exploitation utilise " SysVinit comme système d'initialisation, exécutez la commande suivante :

    service instana-agent start
     

Arrêt de l'agent

Pour arrêter l'agent, exécutez la commande suivante :

 /opt/instana/agent/bin/stop
 
  • Si votre système d'exploitation utilise " systemd comme système d'initialisation, exécutez la commande suivante :

    systemctl stop instana-agent.service
     
  • Si votre système d'exploitation utilise " SysVinit comme système d'initialisation, exécutez la commande suivante :

    service instana-agent stop
     

Mise à jour de l'agent

Vous pouvez utiliser le gestionnaire de paquets de votre système d'exploitation pour mettre à niveau un paquet d'agents sur votre machine. Pour mettre à jour et gérer les paquets et les correctifs de votre système, exécutez la commande suivante :

yum update // apt-get upgrade
 

Les paquets 'instana-agent-static ou 'instana-agent-dynamic sont mis à jour.

Gérer les agents à l'aide du tableau de bord de gestion des agents

Vous pouvez effectuer les opérations suivantes à l'aide du tableau de bord de gestion des agents dans l'interface utilisateur d' Instana :

Pour ouvrir le tableau de bord de la gestion des agents, procédez comme suit :

  1. Dans la barre latérale de l'interface utilisateur d' Instana, sélectionnez « Infrastructure ». Vous pouvez également, dans la vue d'ensemble de l'hôte, sous « Agent d' Instana », cliquer sur l'agent.
  2. Cliquez sur un hôte surveillé spécifique.
  3. Sur le tableau de bord de l'hôte, cliquez sur Ouvrir la gestion des agents.

Définition et remplacement des variables d'environnement

Lorsque l'agent hôte est installé sous forme de paquet et lancé via SystemV init ou systemd, vous devez définir certaines variables d'environnement d' Instana. En outre, il se peut que vous deviez remplacer certaines variables d'environnement. Par exemple, pour la prise en charge des conteneurs d' LXC, l'agent hôte doit avoir les utilitaires de ligne de commande LXC dans son chemin d'accès.

  • Si votre système d'exploitation utilise 'SysVinit comme système d'initialisation, pour définir et remplacer les variables d'environnement, consultez la section SystemV Init.

  • Si votre système d'exploitation utilise " Systemd comme système d'initialisation, pour définir et remplacer les variables d'environnement, consultez la section Systemd.

SystemV Init

Si votre système d'exploitation utilise 'SysVinit comme système d'initialisation, l'agent hôte recherche les scripts shell correspondants dans le répertoire '/etc/default/Debian et dérivés) ou '/etc/sysconfig/Red Hat et dérivés).

Si le nom du service n'est pas modifié, le script SysVinit extrait le fichier '/etc/default/instana-agent ou le fichier '/etc/sysconfig/instana-agent

Par exemple, dans le fichier « Debian », vous pouvez mettre à jour les variables « Instana » et « PATH » en utilisant /etc/default/instana-agent (lorsque ce fichier est accessible en lecture) :

INSTANA_AGENT_KEY=$agentkey
INSTANA_AGENT_ENDPOINT=$endpoint
INSTANA_AGENT_ENDPOINT_PORT=$endpoint_port
PATH=/usr/local/bin:${PATH}
 
Remarque : l'utilisation des variables d'environnement INSTANA_AGENT_HOST et INSTANA_AGENT_PORT pour la configuration de l'agent est obsolète. Ces variables d'environnement sont réservées à la configuration des traceurs d' Instana s pour la connexion à l'agent. Si ces paramètres sont définis au niveau global, les traceurs « Instana » ne peuvent pas se connecter à l'agent. La prise en charge de l'utilisation de ces variables d'environnement pour configurer l'agent sera supprimée dans les prochaines versions d' Instana.

Pour trouver les valeurs du point de terminaison, du port et de la clé d'agent, accédez à la page d'accueil de l'interface utilisateur d' Instana, puis cliquez sur « Déploiement d'agent ». Sur la page du catalogue de déploiement des agents, cliquez sur la vignette « Linux » - Installation automatique (commande en une ligne). Vous pouvez alors voir les valeurs des clés de point d'extrémité, de port et d'agent dans le script de déploiement.

Systemd

Si votre système d'exploitation utilise " Systemd comme système d'initialisation, vous pouvez définir et remplacer les variables d'environnement à l'aide des options suivantes. La méthode des unités d'insertion est l'approche recommandée parce qu'il n'est pas nécessaire de modifier le fichier des unités de service, alors que les autres méthodes nécessitent des modifications du fichier. Ces modifications peuvent également être supprimées lors des mises à jour. La méthode des unités d'insertion garantit que les modifications et les variables d'environnement définies sont conservées même après les mises à jour.

Remarque : après avoir modifié les variables d'environnement, veillez à exécuter la sudo systemctl daemon-reload commande, puis la sudo systemctl restart instana-agent.service commande afin de recharger l'agent avec les modifications apportées aux variables.

Unités de dépôt

En utilisant des unités de remplacement, vous pouvez remplacer les paramètres spécifiques sans modifier le fichier d'unité systemd d'origine. Vous devez placer le fichier drop-in dans '/etc/systemd/system/<unit>.d/ avec un nom '<name>.conf.

Par exemple, pour définir les variables d'environnement ` Instana ` et `PATH`, créez un /etc/systemd/system/instana-agent.service.d/10-environment.conf fichier contenant les informations suivantes :

[Service]
Environment=INSTANA_AGENT_KEY=$agentkey
Environment=INSTANA_AGENT_ENDPOINT=$endpoint
Environment=INSTANA_AGENT_ENDPOINT_PORT=$endpoint_port
Environment=PATH=/usr/local/bin:${PATH}
 
Remarque : l'utilisation des variables d'environnement INSTANA_AGENT_HOST et INSTANA_AGENT_PORT pour la configuration de l'agent est obsolète. Ces variables d'environnement sont réservées à la configuration des traceurs d' Instana s pour la connexion à l'agent. Si ces paramètres sont définis au niveau global, les traceurs « Instana » ne peuvent pas se connecter à l'agent. La prise en charge de l'utilisation de ces variables d'environnement pour configurer l'agent sera supprimée dans les prochaines versions d' Instana.

Directives EnvironmentFile

Cette méthode utilise les unités d'insertion à l'exception des directives d'environnement qui sont lues à partir d'un fichier séparé. Par exemple, créez un fichier " /etc/instana/environment.conf avec le contenu suivant :

INSTANA_AGENT_KEY=$agentkey
INSTANA_AGENT_ENDPOINT=$endpoint
INSTANA_AGENT_ENDPOINT_PORT=$endpoint_port
PATH=/usr/local/bin:${PATH}
 

Ensuite, dans le fichier de l'unité d'insertion de systemd, utilisez la configuration suivante :

[Service]
EnvironmentFile=/etc/instana/environment.conf
 
Remarque : l'utilisation des variables d'environnement INSTANA_AGENT_HOST et INSTANA_AGENT_PORT pour la configuration de l'agent est obsolète. Ces variables d'environnement sont réservées à la configuration des traceurs d' Instana s pour la connexion à l'agent. Si ces paramètres sont définis au niveau global, les traceurs « Instana » ne peuvent pas se connecter à l'agent. La prise en charge de l'utilisation de ces variables d'environnement pour configurer l'agent sera supprimée dans les prochaines versions d' Instana.

Paramètres d'environnement globaux

Par défaut, systemd lit la configuration globale à partir de différents chemins tels que '/etc/systemd/system.conf ou '/etc/systemd/system.conf.d/10-default-env.conf. En plaçant la configuration " DefaultEnvironment dans ces fichiers, ils deviennent disponibles pour toutes les unités systemd. Pour plus d'informations, consultez la configuration de systemd.

Par exemple, la configuration suivante crée trois variables d'environnement « Instana » lorsque vous la définissez dans le/etc/systemd/system.conf.d/10-default-env.conf fichier :

[Manager]
DefaultEnvironment="INSTANA_AGENT_KEY=<key>" "INSTANA_AGENT_ENDPOINT=<endpoint>" "INSTANA_AGENT_ENDPOINT_PORT=<endpoint-port>"
 
Remarque : l'utilisation des variables d'environnement INSTANA_AGENT_HOST et INSTANA_AGENT_PORT pour la configuration de l'agent est obsolète. Ces variables d'environnement sont réservées à la configuration des traceurs d' Instana s pour la connexion à l'agent. Si ces paramètres sont définis au niveau global, les traceurs « Instana » ne peuvent pas se connecter à l'agent. La prise en charge de l'utilisation de ces variables d'environnement pour configurer l'agent sera supprimée dans les prochaines versions d' Instana.

Suppression des fichiers temporaires

L'agent hôte d' Instana installe certains fichiers dont il a besoin dans le /tmp/.instana/ répertoire. Si ces fichiers sont supprimés pendant la durée de fonctionnement de l'hôte, des problèmes peuvent survenir lors des mises à jour.

Tmpfiles.d

Sur les systèmes basés sur " system.d, le démon " systemd-tmpfiles peut supprimer des fichiers nécessaires à l'agent hôte dans le répertoire " /tmp/.instana, ce qui entraîne des échecs de mise à jour difficiles à résoudre.

Depuis la version 181, les paquets d'agents DEB et RPM installent automatiquement le script de configuration suivant, /usr/lib/tmpfiles.d qui modifie le comportement de l'agent hôte Instana afin de ne pas supprimer les fichiers requis et de ne pas nuire à son fonctionnement.

# Instana files in /tmp cannot be deleted when the agent is running,
# or it may lead to issues on agent update
R! /tmp/.java_pid*
R! /tmp/.instana/*
 

Cette configuration permet tmpdfiles.d de supprimer les fichiers utilisés par l'agent Instana uniquement après le redémarrage de l'hôte. L'agent hôte d' Instana, qui vient d'être lancé, recrée les fichiers au démarrage.

Red Hat Enterprise Linux et CentOS, dans les versions 6 et 7, incluent des règles par défaut " tmpdfiles.d qui suppriment l'ensemble du répertoire " /tmp tous les 10 jours, indépendamment des règles qu'un paquet peut spécifier. Cela signifie qu'un paquet tel que Instana peut définir des règles personnalisées pour contrôler le comportement du système ou du paquet lui-même.

#  This file is part of systemd.
#
#  systemd is free software; you can redistribute it and/or modify it
#  under the terms of the GNU Lesser General Public License as published by
#  the Free Software Foundation; either version 2.1 of the License, or
#  (at your option) any later version.

# See tmpfiles.d(5) for details
# Clear tmp directories separately, to make them easier to override
v /tmp 1777 root root 10d
v /var/tmp 1777 root root 30d

...
 

À moins de modifier les règles par défaut " tmpfiles.d, il n'existe pas de solution connue. La stratégie tmpfiles.d incriminée se trouve dans /usr/lib/tmpfiles.d/tmp.conf.

De nombreux dérivés d' Debian, notamment Ubuntu, intègrent des tmpdfiles.d règles par défaut qui suppriment l'intégralité /tmp du répertoire, quelles que soient les règles qu'un paquet tel que celui de Instana puisse définir. Lors de l'installation, les paquets DEB et RPM exécutent un test pour vérifier le comportement des fichiers temporaires 'tmpfiles.d, en exécutant la commande 'systemd-tmpfiles --remove.

Vous pourriez voir s'afficher l'avertissement suivant sur les systèmes dont les stratégies remplacent le comportement requis spécifié par les paquets de l'agent « Instana » :

WARNING: The tmpfiles.d policies of this system may cause the Instana agent to malfunction by deleting the /tmp/.instana directory; refer https://www.instana.com/docs/setup_and_manage/host_agent/on/linux#tmpfiles.d for more information.
 

Vous pouvez résoudre ce problème en modifiant les politiques par défaut " tmpfiles.d La stratégie tmpfiles.d incriminée se trouve dans /usr/lib/tmpfiles.d/tmp.conf.

Tmpwatch

Red Hat Enterprise Linux 6 et CentOS 6 incluent l'outil tmpwatch, qui est connu pour supprimer les fichiers inutiles dans le répertoire '/tmp/.instana. Cependant, l'utilisation de tmpwatch dans ces distributions peut occasionnellement causer des problèmes de mise à jour avec l'agent hôte. Pour plus d'informations, voir Suppression des fichiers temporaires.

# Deal with tmpwatch, found in RHEL 6 and CentOS 6.
# It is a cronjob, installed in /etc/cron.d/daily, with pretty much hardcoded
# configurations to wipe data the Instana agent needs.
readonly TMPWATCH_CRONJOB='/etc/cron.d/daily/tmpwatch'
if [ -f "${TMPWATCH_CRONJOB}" ]; then
  # Let's check if we already touched the file and, if not, add our excludes
  if ! grep "${TMPWATCH_CRONJOB}" Instana 2&>1 > /dev/null; then
    echo "tmpwatch discovered in '${TMPWATCH_CRONJOB}': adding the exclude flags for Instana"
    # Edit in place with `sed`
    sed -i '/^flags=/a flags="${flags} -x /tmp/instana -x /tmp/.javapid* # Added by Instana"' "${TMPWATCH_CRONJOB}"
  fi
fi
 

Répertoire des données sur les produits d'entretien

Vous pouvez utiliser la variable d'environnement AGENT_CLEAN_DATA_DIR pour vider le répertoire de données de l'agent.

Lorsque vous définissez AGENT_CLEAN_DATA_DIR sur true avant le démarrage de l'agent, le contenu des répertoires tmp, cache et logs est effacé. Pour les agents dynamiques, ce processus supprime également les artefacts obsolètes et récupère les derniers artefacts et fichiers JAR. Que ce soit pour les agents dynamiques ou statiques, le processus se poursuit par la reconstruction du cache et la génération d'un nouveau journal d'agent.

Pour activer la variable d'environnement, utilisez la configuration suivante :

export AGENT_CLEAN_DATA_DIR=true
 

Une fois la variable d'environnement activée, lancez l'agent pour exécuter le processus de nettoyage.

Si vous utilisez des agents dynamiques, il est recommandé de supprimer la variable AGENT_CLEAN_DATA_DIR d'environnement lorsqu'elle n'est plus nécessaire. Si cette option reste activée, l'agent nettoie son répertoire de données et télécharge les artefacts, y compris les journaux, à chaque démarrage, ce qui allonge le temps de démarrage de l'agent.