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
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
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 ?
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.
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
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 |
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 |
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'appelleservicepilotlinuxarmagent.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. |