Documentation
Découvrez le mode zéro configuration

Les Agents ServicePilot

Qu'est-ce qu'un Agent ServicePilot ?

Les Agents ServicePilot sont conçus pour collecter des données de supervision de différentes sources et les envoyer à ServicePilot. Les Agents ServicePilot ne nécessitent qu'une configuration succinte. Tout ce dont ils ont besoin, c'est d'un accès web à ServicePilot et d'une Clé API pour sécuriser la communication. Toute autre configuration se fait via l'interface web de ServicePilot.

Agents ServicePilot SaaS

ServicePilot Agent On Premise

Lorsqu'un Agent ServicePilot est déployé pour l'utiliser avec le SaaS ServicePilot, une connexion HTTPS est établie entre l'Agent ServicePilot et ServicePilot dans le Cloud. Un proxy Web peut être défini dans l'Agent Windows ServicePilot si nécessaire pour accéder à Internet.

Agents ServicePilot On Premise

ServicePilot Agent for SaaS ServicePilot

Lorsqu'un Agent ServicePilot est déployé pour l'utiliser avec une installation de ServicePilot On Premise, le FQDN du Manager ServicePilot devra être configuré dans l'Agent. L'Agent communiquera avec le Manager ServicePilot par HTTP ou HTTPS.

Combien d'Agents ServicePilot doivent être installés ?

ServicePilot Agents collecting local data

Il est toujours nécessaire d'avoir au moins un Agent ServicePilot, car la quasi-totalité de la collecte de données est effectuée par des agents. Le nombre d'agents requis dépend du type de supervision que l'on demande aux agents d'effectuer et si les agents peuvent accéder aux données requises. Les agents peuvent collecter des données à partir du serveur sur lequel ils sont installés. Certaines collectes de données ne peuvent être effectuées que sur le même hôte qu'un Agent ServicePilot.

ServicePilot Agent collection remote data

Les agents peuvent également obtenir des données d'autres équipements et écouter les événements qui leur sont transmis, à condition que l'accès au réseau des autres équipements ne soit pas bloqué.

Pour savoir si un Agent ServicePilot doit être installé sur le même serveur que les données qu'il va collecter, consultez la colonne Collecte locale dans le tableau Licenses - Agent details, disponible dans l'interface web de ServicePilot.

1. En utilisant un compte avec des privilèges administrateurs, accédez à ServicePilot
2. Cliquez sur Agents > Installer un agent
3. Cliquez sur Agent Details

Proxy d'Agent ServicePilot pour accéder à ServicePilot

Agents communicating with ServicePilot via ServicePilot Agent proxy

Si les Agents ServicePilot ne sont pas autorisés à communiquer avec ServicePilot en raison de restrictions de pare-feu, un Proxy pour l'Agent ServicePilot peut être déployé. Ce proxy d'Agent ServicePilot servira de passerelle et de concentrateur entre les Agents ServicePilot et le Manager ServicePilot. Seul le proxy d'Agents ServicePilot doit avoir accès au Manager ServicePilot, tandis que les Agents ServicePilot seront configurés pour envoyer du trafic au proxy. Du point de vue de la sécurité, cette configuration peut être préférable, mais il faut noter qu'elle introduit un nouveau point de défaillance possible.

Veuillez contacter notre support ServicePilot si vous souhaitez configurer un proxy pour l'Agent ServicePilot.

Capacités de collectes de l'Agent ServicePilot

Chaque Agent ServicePilot possède des capacités de collectes différentes. Pour voir ce que ces Agents Enterprise peuvent faire, consultez la page Agent Details :

1. En utilisant un compte avec des privilèges administrateurs, accédez à ServicePilot
2. Cliquez sur Agents > Installer un agent
3. Cliquez sur le bouton Agent Details

Agents Enterprise ServicePilot

Les Agents Enterprise collectent des données directement sur les serveurs où ils sont installés, ou sur d'autres équipements. Ces agents peuvent aussi recevoir des données d'événements non sollicités s'ils sont configurés pour le faire.

L'Agent Windows ServicePilot utilise le framework .NET de Microsoft.

L'Agent Linux ServicePilot a été compilé pour les distributions x86 et x64 basées sur RedHat et Debian actuellement supportées, ainsi que pour l'OS Raspberry Pi 32-bit sur ARM.

Agent Endpoint ServicePilot

L'Agent Endpoint ServicePilot est conçu pour collecter l'inventaire matériel et logiciel des postes de travail Windows.

Agent Developer ServicePilot

Des données statistiques sur le nombre et le type d'appels Web effectués dans les applications Puppeteer, JavaScript dans les navigateurs Web et Node.js peuvent être collectées. Ces intégrations nécessitent d'instrumenter le code en question pour envoyer les détails des appels à ServicePilot.

Intégration de l'Agent Open Source

L'Agent Windows ServicePilot peut agir comme une passerelle vers un certain nombre d'Agents Open Source, fournissant ainsi à ServicePilot les données collectées par ces agents.

Status Monitor de ServicePilot

Le Status Monitor de ServicePilot n'est pas un agent utilisé pour collecter des données. Il s'agit d'une extension de l'interface web de ServicePilot permettant aux utilisateurs de ServicePilot de voir le nombre actuel d'éléments avec des alertes sur le bureau de Windows.

Le Status Monitor de ServicePilot peut être téléchargé depuis le menu Utilisateur.

Télécharger les Agents ServicePilot

1. En utilisant un compte avec des privilèges administrateurs, accédez à ServicePilot
2. Cliquez sur Agents > Installer un agent
3. Sélectionnez l'Agent à installer et suivez les instructions sous Commencer

Obtenir une clé API ServicePilot

Les Agents ServicePilot communiquent avec ServicePilot à l'aide d'une Clé API. Plusieurs clés API peuvent être créées et utilisées, mais chaque Agent doit être configuré avec une clé API valide avec droit d'écriture. Pour voir les clés API qui peuvent être utilisées, accédez à la page Clés :

1. En utilisant un compte avec des privilèges administrateurs, accédez à ServicePilot
2. Ouvrez PARAMETRES > Configuration
3. Cliquez sur Clés API
4. Récupérez une clé API avec autorisation Écrire

Installer un Agent Windows ServicePilot

Après avoir téléchargé l'Agent ServicePilot, double-cliquez sur le fichier pour exécuter le programme d'installation. Définissez les paramètres pour que l'Agent ServicePilot puisse communiquer avec ServicePilot.

Paramètre Description
Clé API Une clé API autorisée en écriture telle qu'elle se trouve dans la liste des clés API listées ci-dessus
Remote Command Ne pas activer ce paramètre à moins qu'une ressource supervisée ne le nécessite. Les descriptions des packages indiqueront quand ceci est nécessaire

Windows Agent parameters 1

Paramètre Description
Use proxy Si l'accès à ServicePilot nécessite un proxy Web, activez cette option et remplissez les champs Address et Port
Address Spécifiez l'adresse IP du proxy
Port Spécifiez le port du proxy
Username Spécifiez un nom d'utilisateur pour autoriser l'accès par proxy, si nécessaire
Password Spécifiez un mot de passe pour permettre l'accès par proxy, si nécessaire
Use SP proxy Si l'accès à ServicePilot nécessite un proxy ServicePilot, activez cette option et remplissez le champ URL du proxy
URL Spécifiez l'URL d'un proxy ServicePilot accessible

Windows Agent parameters 2

Installer un Agent Linux ServicePilot

Après avoir téléchargé l'Agent ServicePilot, vérifiez que le fichier est exécutable puis lancez-le en tant que root. A la fin de l'installation, le script demandera une clé API. Définissez les paramètres pour que l'Agent ServicePilot puisse communiquer avec ServicePilot. Vous pouvez arrêter et démarrer le service spagent en utilisant les commandes standards de votre distribution Linux.

Pour x86, le fichier s'appelle servicepilotlinuxagent.run
Pour ARM, le fichier s'appelle servicepilotlinuxarmagent.run

# chmod +x servicepilotlinuxagent.run
# ./servicepilotlinuxagent.run

Creating directory _agent_files
Verifying archive integrity...  100%   All good.
Uncompressing ServicePilot Linux Agent Package  100%
spagent install script running
No configuration found, awaiting input
Enter API KEY

10000000-0000-0000-0000-000000000000

Use web proxy? [default: n]

n

Use ServicePilot proxy? [default: n]

n

Run in debug mode? [default: n]

n

Enter ServicePilot Agent Log Path [default: '/var/log/servicepilot/']

/var/log/servicepilot/

This is debian based distro
Removing spagent files
Removing dotnetcoreagent files
Reset spagent
Created symlink /etc/systemd/system/multi-user.target.wants/spagent.service → /etc/systemd/system/spagent.service.
spagent started

#

Pour obtenir la liste complète des paramètres de la ligne de commande, exécutez le programme d'installation avec l'option -- --help.

1. Aide de l'Agent Linux ServicePilot ./servicepilotlinuxagent.run -- --help

Installer un Agent Linux ServicePilot dans Docker

L'Agent Linux de ServicePilot peut être exécuté dans un conteneur Docker.

Le hostname du conteneur Docker doit être unique afin qu'il puisse être configuré correctement.

La connexion d'un conteneur Docker pour l'Agent ServicePilot à l'offre ServicePilot SaaS nécessitera la définition d'un SERVICEPILOT_API_KEY. Des variables d'environnement de proxy peuvent également être ajoutées :

docker run --detach --hostname spagent1 -e SERVICEPILOT_API_KEY=10000000-0000-0000-0000-000000000000 servicepilot/agent:latest

Pour les déploiements On Premise, les variables SERVICEPILOT_API_KEY, SERVICEPILOT_IP, SERVICEPILOT_PORT et HTTPS sont requis. Des variables d'environnement de proxy peuvent également être ajoutées :

docker run --detach --hostname spagent1 -e SERVICEPILOT_API_KEY=00000000-0000-0000-0000-000000000000 -e SERVICEPILOT_IP=servicepilot.company.com -e SERVICEPILOT_PORT=443 -e HTTPS=1 servicepilot/agent:latest

Installer un Agent Linux ServicePilot dans Kubernetes

L'Agent Linux ServicePilot peut être exécuté dans un Pod Kubernetes.

Le nom d'hôte du Pod Kubernetes devra être unique afin qu'il puisse être configuré correctement.

Remarque : l'exécution d'un Agent ServicePilot dans un Pod Kubernetes limitera ses capacités à l'interrogation à distance et à l'obtention d'informations Kubernetes.

Déployez un Agent ServicePilot DaemonSet sur le cluster Kubernetes. Notez les variables d'environnement SERVICEPILOT_* qui doivent correspondre à votre déploiement ServicePilot. Pour ServicePilot SaaS, SERVICEPILOT_IP doit être data.servicepilot.com. Pour les déploiements On Premise, les variables d'environnement SERVICEPILOT_API_KEY, SERVICEPILOT_IP, SERVICEPILOT_PORT et HTTPS sont nécessaires.

# Create a namespace for ServicePilot components
apiVersion: v1
kind: Namespace
metadata:
  name: monitoring
  labels:
    app: servicepilot-agent
---
# To have ServicePilot retrieve metrics from Kubelets with authentication and
# authorization enabled (which is highly recommended and included in security
# benchmarks) the following flags must be set on the kubelet(s):
#
# --authentication-token-webhook
# --authorization-mode=Webhook
#
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: servicepilot-stats-viewer
  labels:
    rbac.authorization.k8s.io/servicepilot-stats-viewer: "true"
rules:
  - apiGroups: [""]
    resources:
      - nodes
      - nodes/proxy
      - nodes/metrics
      - nodes/stats
      - services
      - endpoints
      - pods
      - ingresses
      - configmaps
      - persistentvolumes
    verbs: ["get", "list", "watch"]
  - apiGroups: ["extensions", "networking.k8s.io"]
    resources:
      - ingresses/status
      - ingresses
    verbs: ["get", "list", "watch"]
  - apiGroups: ["metrics.k8s.io"]
    resources: 
      - pods
    verbs: ["get", "list", "watch"]
  - nonResourceURLs:
      - "/metrics"
    verbs: ["get"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: servicepilot
  labels:
    app: servicepilot-agent
aggregationRule:
  clusterRoleSelectors:
    - matchLabels:
        rbac.authorization.k8s.io/servicepilot-stats-viewer: "true"
    - matchLabels:
        rbac.authorization.k8s.io/aggregate-to-view: "true"
rules: [] # Rules are automatically filled in by the controller manager.
---
apiVersion: v1
kind: ServiceAccount
metadata:
  name: servicepilot
  labels:
    app: servicepilot-agent
  namespace: monitoring
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: servicepilot
  labels:
    app: servicepilot-agent
subjects:
  - kind: ServiceAccount
    name: servicepilot
    namespace: monitoring
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: servicepilot
---
# ServicePilot Agent deployment
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: servicepilot-agent
  namespace: monitoring
  labels:
    app: servicepilot-agent
spec:
  selector:
    matchLabels:
      app: servicepilot-agent
  template:
    metadata:
      labels:
        app: servicepilot-agent
    spec:
      tolerations:
      # this toleration is to have the daemonset runnable on master nodes
      # remove it if your masters can't run pods
      - key: node-role.kubernetes.io/control-plane
        operator: Exists
        effect: NoSchedule
      - key: node-role.kubernetes.io/master
        operator: Exists
        effect: NoSchedule
      serviceAccountName: servicepilot
      containers:
        - name: servicepilot
          image: servicepilot/agent
          env:
          - name: SERVICEPILOT_API_KEY
            value: "10000000-0000-0000-0000-000000000000"
          - name: SERVICEPILOT_IP
            value: "data.servicepilot.com"
          - name: SERVICEPILOT_PORT
            value: "443"
          - name: HTTPS
            value: "1"
          - name: NODE_NAME
            valueFrom:
              fieldRef:
                fieldPath: spec.nodeName
          - name: NODE_IP
            valueFrom:
              fieldRef:
                fieldPath: status.hostIP
          - name: HOSTNAME
            value: $(NODE_NAME)

Vérifiez si un Agent ServicePilot fonctionne

Pour vous assurer que les Agents ServicePilot communiquent correctement avec ServicePilot, ouvrez la page Agents :

1. En utilisant un compte avec des privilèges administrateurs, accédez à ServicePilot
2. Ouvrez PARAMETRES > Agents
3. L'agent devrait apparaître dans la liste avec un statut jaune ou vert et une valeur dernière vue dans quelques secondes. Un statut jaune indique que l'agent n'a encore rien reçu à faire.

Définir un Agent par défaut

Lors du provisioning des ressources, au moins un Agent ServicePilot peut être défini pour superviser la ressource sur la même machine que la ressource ou à partir d'Agents distants.

Si les champs Agent sont laissés vides, l'Agent par défaut sera utilisé pour superviser la ressource.

Pour définir un Agent par défaut :

1. En utilisant un compte avec des privilèges administrateurs, accédez à ServicePilot
2. Ouvrez PARAMETRES > Agents
3. Cliquez sur le bouton Editer du champ Agent par défaut
4. Sélectionnez le nouvel Agent par défaut
5. Cliquez sur OK

Définir un Agent de backup

En option, il est possible de définir un Agent de backup qui reprendra les rôles de supervision de l'Agent par défaut après quelques minutes si l'Agent par défaut perd la connectivité avec le Manager ServicePilot. L'Agent de backup doit accéder à toutes les ressources de l'Agent par défaut et être installé sur le même type de système d'exploitation que l'Agent par défaut.

Pour changer l'Agent ServicePilot de backup :

1. En utilisant un compte avec des privilèges administrateurs, accédez à ServicePilot
2. Ouvrez PARAMETRES > Agents
3. Cliquez sur le bouton Editer du champ Agent de backup
4. Sélectionnez le nouvel Agent par défaut
5. Cliquez sur OK

L'Agent de backup ne peut pas être défini sur la même valeur que l'Agent par défaut.

Logs des Agents ServicePilot

Les logs des Agents ServicePilot journalisent les erreurs de connectivité entre l'Agent ServicePilot et ServicePilot, et les problèmes de récupération des données depuis les équipements. Ces logs d'Agents sont particulièrement intéressantes si la supervision ne semble pas fonctionner entre l'Agent et les équipements distants en raison de mauvaises informations d'accès.

Ouvrez les logs de l'Agents avec un éditeur de texte :

Logs de l'Agent Windows

C:\Program Files (x86)\ServicePilot\ServicePilot ISM Enterprise\logs\ServicePilotAgent.log

Logs de l'Agent Linux

/var/log/servicepilot/servicepilotagent.log
/var/log/servicepilot/spgoagent.log

Désinstaller un Agent ServicePilot

Si un Agent ServicePilot n'est plus utilisé, il peut être désinstallé.

Vérifier si un Agent est en cours d'utilisation

1. En utilisant un compte avec des privilèges administrateurs, accédez à ServicePilot
2. Ouvrez PARAMETRES > Agents
3. Si un Agent n'est pas utilisé, le statut est jaune, ce qui signifie qu'il n'est pas configuré. Si l'Agent est toujours utilisé, en cliquant sur la loupe bleue, les Détails de l'Agent y compris le Agent data seront affichés. Cela va lister les ressources qui utilisent actuellement cet Agent.

Désinstaller un Agent Windows ServicePilot

Pour désinstaller un Agent Windows ServicePilot correctement, vérifiez qu'il est arrêté avant de le supprimer.

1. Arrêtez le service ServicePilotAgent
2. Fermez la ServicePilot Setup Console si elle est ouverte.
3. Désinstallez l'Agent ServicePilot à partir du panneau de configuration de Windows.
4. Optionnel : vous pouvez supprimer le répertoire C:\Program Files (x86)\ServicePilot si vous ne souhaitez pas conserver les logs de l'Agent
5. Optionnel : si vous n'envisagez pas de réinstaller un Agent ServicePilot sur la machine, vous pouvez supprimer la clé de registre HKEY_LOCAL_MACHINE\SOFTWARE\ServicePilot Technologies

Désinstaller un Agent Linux ServicePilot

S'assurer que l'Agent Linux ServicePilot n'est pas utilisé avant de le désinstaller.

1. Désinstallez l'Agent Linux ServicePilot ./servicepilotlinuxagent.run -- --uninstall

Supprimer les Agents désinstallés de la liste des Agents

Tant qu'un Agent n'est pas désinstallé, sa suppression de la liste des Agents n'aura pas l'effet souhaité car l'Agent continuera à communiquer avec ServicePilot et réapparaîtra continuellement dans la liste des Agents.

1. En utilisant un compte avec des privilèges administrateurs, accédez à ServicePilot
2. Ouvrez PARAMETRES > Agents
3. Cliquez sur l'icône corbeille orange puis sur le bouton Supprimer pour supprimer un Agent de la liste des Agents.