Los Agentes ServicePilot

¿Qué es un Agente ServicePilot?

Los Agentes ServicePilot están diseñados para recoger datos de monitorización de diversas fuentes y enviarlos a ServicePilot. Los Agentes ServicePilot requieren una configuración mínima. Una vez instalados, solo necesitan acceso web a ServicePilot y una clave API para proteger la comunicación. El resto de la configuración se realiza a través de la interfaz web de ServicePilot.

Se han diseñado para garantizar la eficacia en sus tareas de recopilación y transmisión de datos mediante varios mecanismos:

  • Procesamiento local: parte del análisis se puede realizar de forma local. El filtrado y la agregación de los datos sin procesar para transmitir únicamente los KPI esenciales a ServicePilot limitan los flujos de entrada.
  • Protocolo seguro: utiliza HTTP2 combinado con el protocolo HTTPS para facilitar la compresión, optimizar los intercambios y permitir una comunicación de datos segura.

Siempre es necesario tener al menos un Agente ServicePilot, ya que casi toda la recopilación de datos la realizan los agentes. El número de Agentes necesarios depende del tipo de supervisión que se pida a los Agentes y de que éstos puedan acceder a los datos necesarios.

Recopilación de datos local y remota

Cada agente ServicePilot tiene diferentes capacidades de recolección. Para saber si un Agente ServicePilot debe instalarse en el mismo servidor que los datos que va a recoger, consulte la columna Local Collect de la tabla Licenses - Agent details, disponible en la interfaz web de ServicePilot.

  1. Utilizando una cuenta con privilegios de admin, acceda a ServicePilot.
  2. Haga clic en Agentes > Instale un agente.
  3. Haga clic en Agent Details.
Local data collection Remote data collection
Los Agentes pueden recoger datos del servidor en el que están instalados. Algunas recopilaciones de datos sólo pueden realizarse en el mismo host que un Agente ServicePilot. ServicePilot Agents collecting local data Los Agentes también pueden obtener datos de otros dispositivos y escuchar los eventos que se les transmiten, siempre que el acceso a la red de otros dispositivos no esté bloqueado. ServicePilot Agent collection remote data

Tipos de Agentes ServicePilot

En la siguiente tabla se presentan los diferentes tipos de agentes de ServicePilot, sus plataformas, sus usos principales y sus características técnicas.

Agente Versiones mínimas y plataformas Función principal
Agente Windows Windows Server desde 2012 R2 • Recopilación de datos locales o remotos
• Recepción de eventos no solicitados
Agente Linux Linux desde Ubuntu 16.04 / Debian 10 / CentOS Stream 9 / RHEL 7 o 8.7 minimum / Fedora 39 / Raspberry Pi OS 10 • Recopilación de datos locales o remotos
• Recepción de eventos no solicitados
Agente Docker Agente de Linux para contenedores Docker y pods de Kubernetes • Recopilación de datos locales
• Imagen oficial de Docker
• Ideal para entornos orquestados
Agente z/OS IBM z/OS desde v1r5 a v3r2 • Recopilación avanzada de datos en mainframe
• Requiere NBA for z/OS (Full Edition)
• Puede funcionar de forma independiente
Agente Endpoint Desde Windows 10 x64 • Inventario de hardware y software
• Diseñado para puestos de usuario
• Recopilación ligera y específica
Agente Webkit Node.js Puppeteer y Playwright • Escenarios y pruebas de medición de llamadas HTTP/HTTPS
• Requiere el uso de scripts
Agente Open Source A través del agente de Windows • Pasarela hacia agentes de código abierto
• El agente de Windows puede agregar y transmitir los datos de agentes de terceros
Status Monitor Escritorio de Windows • Visualización de alertas en tiempo real
• Extensión de la interfaz de ServicePilot
• Descargable desde el menú de usuario

Instalación de Agentes ServicePilot

Descargar los Agentes ServicePilot

  1. Utilizando una cuenta con privilegios de admin, inicie sesión en ServicePilot.
  2. Haga clic en Agentes > Instale un agente.
  3. Seleccione el Agente que se va a instalar y siga las instrucciones en Empezar.

Obtener una clave de API ServicePilot

Los Agentes ServicePilot se comunican con ServicePilot mediante una Clave de API. Se pueden crear y utilizar múltiples claves de API, pero cada Agente debe estar configurado con una clave de API válida y con capacidad de escritura. Para ver qué claves de API se pueden usar, ve a la página de Claves de API:

  1. Utilizando una cuenta con privilegios de admin, inicie sesión en ServicePilot.
  2. Abrir CONFIGURACIÓN > Parámetros.
  3. Haga clic en Claves de API.
  4. Recuperar una clave de API con autorización Escribir.

Instalar un Agente ServicePilot

Windows
Linux
Linux Docker
Linux Kubernetes
z/OS
Endpoint
Webkit

La instalación del Windows Agent se describe con más detalle en la ventana modal del producto dedicada a este agente.

  1. Descarga el agente de Windows desde CONFIGURACIÓN > Agentes > Instale un agente > Windows Agent > Empezar.

  2. Obtén una clave API Write.

  3. Haz doble clic en el archivo para ejecutar el programa mediante la instalación gráfica o utiliza la línea de comandos.

  4. Configure los parámetros para que el Agente de ServicePilot pueda comunicarse con ServicePilot.

    Parámetro Descripción
    Clave de API Una clave de API habilitada para escritura como la que se encuentra en la lista de claves de API mencionada anteriormente
    Remote Command No habilite este parámetro a menos que un recurso monitoreado lo requiera. Las descripciones de los packages indicarán cuándo es necesario

    Windows Agent parameters 1

    Parámetro Descripción
    Use proxy Si el acceso a ServicePilot requiere un proxy web, habilite esta opción y rellene los campos Dirección y Puerto
    Address Especificar la dirección IP del proxy
    Port Especifique el puerto proxy
    Username Especifique un nombre de usuario para permitir el acceso del proxy, si es necesario
    Password Especifique una contraseña para permitir el acceso del proxy, si es necesario
    Use SP proxy Si el acceso a ServicePilot requiere un proxy ServicePilot, habilite esta opción y rellene el campo URL del proxy
    URL Especificar la URL de un proxy ServicePilot accesible

    Windows Agent parameters 2

  5. Comprueba que el agente aparezca en la lista de los Agentes.

La instalación del Linux Agent se describe con más detalle en la ventana modal del producto dedicada a este agente.

  1. Descarga el agente de Linux desde CONFIGURACIÓN > Agentes > Instale un agente > Linux Agent > Empezar.
    Para x64 el fichero se llama servicepilotlinuxagent.run.
    Para ARM el fichero se llama servicepilotlinuxarmagent.run.
  2. Obtén una clave API Write.
  3. Comprueba que el archivo es ejecutable y luego ejecútalo como root. Al final de la instalación, el script pedirá una clave de API.
  4. Configure los parámetros para que el Agente de ServicePilot pueda comunicarse con ServicePilot. Puede detener e iniciar el servicio spagent usando los comandos estándar de su distribución de Linux.
  5. Comprueba que el agente aparezca en la lista de los Agentes.
# 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

#

Para obtener una lista completa de los parámetros de la línea de comandos, ejecute el instalador con la opción -- --help.

./servicepilotlinuxagent.run -- --help

La instalación del Docker Linux Agent se describe con más detalle en la ventana modal del producto dedicada a este agente desde CONFIGURACIÓN > Agentes > Instale un agente > SP Docker Agent > Empezar.

  1. Copia la imagen del agente de Docker de ServicePilot (servicepilot/agent) desde Docker Hub a tu registro privado.

  2. Obtén una clave API Write.

  3. Instalar el Docker Agent.

    Para supervisar Docker, es necesario instalar el agente de ServicePilot para Linux en los hosts de Docker, no dentro de los contenedores de Docker. El Hostname del contenedor Docker deberá ser único para que pueda ser configurado correctamente.

    La conexión de un contenedor Docker para el Agente ServicePilot a la oferta de SaaS de ServicePilot requerirá la definición de una SERVICEPILOT_API_KEY. También se pueden añadir variables de entorno proxy:

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

    Para las implantaciones On-Premise se requieren las variables de entorno SERVICEPILOT_API_KEY, SERVICEPILOT_IP, SERVICEPILOT_PORT y HTTPS. También se pueden añadir variables de entorno del proxy:

    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
    
  4. Configure los parámetros para que el Agente de ServicePilot pueda comunicarse con ServicePilot.

    Se proporciona un archivo de ejemplo docker-compose.yml para su uso con docker-compose up --detach. Esta definición incluye el contenedor del Agente ServicePilot y un contenedor Watchtower opcional configurado para mantener el contenedor del Agente ServicePilot actualizado.

    Sample docker-compose.yml
    services:
    
    	## ServicePilot Agent
    	spagent:
    		image: "servicepilot/agent:latest"
    		hostname: spagent1
    		environment:
    			SERVICEPILOT_API_KEY: "10000000-0000-0000-0000-000000000000"
    			SERVICEPILOT_IP: "data.servicepilot.com"
    			SERVICEPILOT_PORT: "443"
    			HTTPS: "1"
    			PROXYENABLE: "0"
    			PROXYADDRESS: "127.0.0.1"
    			PROXYPORT: "8888"
    			PROXYUSERNAME: ""
    			PROXYPASSWORD: ""
    			SPPROXYENABLE: "0"
    			SPPROXYADDRESS: ""
    		labels:
    			com.centurylinklabs.watchtower.enable: true
    		restart: unless-stopped
    
    	# Watchtower to upgrade ServicePilot Agent Docker
    	watchtower:
    		image: "containrrr/watchtower"
    		volumes:
    			- /var/run/docker.sock:/var/run/docker.sock
    		environment:
    			# https_proxy: "http[s]://user:pass@proxy-address:port"
    			WATCHTOWER_LABEL_ENABLE: 1
    			WATCHTOWER_POLL_INTERVAL: 86400
    			WATCHTOWER_CLEANUP: 1
    			WATCHTOWER_INCLUDE_RESTARTING: 1
    			WATCHTOWER_INCLUDE_STOPPED: 1
    			WATCHTOWER_REVIVE_STOPPED: 1
    		restart: unless-stopped
    
  5. Comprueba que el agente aparezca en la lista de los Agentes.

El Agente Linux ServicePilot para se puede ejecutar en un Pod de Kubernetes.

El nombre de host del Pod de Kubernetes deberá ser único para que se pueda configurar correctamente.

Nota: ejecutar un Agente ServicePilot en un Pod de Kubernetes limitará sus capacidades a la obtención remota de información de Kubernetes.

Implemente un DaemonSet Agente ServicePilot en el clúster de Kubernetes. Tenga en cuenta las variables de entorno SERVICEPILOT_* que deben coincidir con su implementación de ServicePilot. Para ServicePilot SaaS, SERVICEPILOT_IP debe ser data.servicepilot.com. Para implementaciones On-Premise, se requieren las variables de entorno SERVICEPILOT_API_KEY, SERVICEPILOT_IP, SERVICEPILOT_PORT y HTTPS.

Para supervisar el entorno Kubernetes, establezca un nombre de recurso único en la variable de entorno SP_K8_RESOURCE. Las variables SP_K8_NAMESPACE_FILTER y SP_K8_POD_FILTER son opcionales y proporcionan filtros para los nombres de Namespace y Pod.

Ejemplo de configuración para Kubernetes
# 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)-pod
          - name: SP_K8_RESOURCE
            value: "K8 Cluster 1"
          - name: SP_K8_NAMESPACE_FILTER
            value: "*"
          - name: SP_K8_POD_FILTER
            value: "*"

La instalación de NBA for z/OS y del agente de z/OS se describe con más detalle en la sección Mainframe de la documentación.

La instalación del Endpoint Agent se describe con más detalle en la ventana modal del producto dedicada a este agente.

  1. Descarga el agente de Endpoint desde CONFIGURACIÓN > Agentes > Instale un agente > Endpoint Agent > Empezar.
  2. Obtén una clave API.
  3. Añade una regla de aprovisionamiento automático.
  4. Instala el agente mediante la instalación gráfica o desde la línea de comandos.
  5. Comprueba que, en un plazo de 15 minutos, el agente aparezca en la página de inventario de Endpoint.

La instalación del Webkit Agent se describe con más detalle en la ventana modal del producto dedicada a Playwright o Puppeteer.

Comprueba si un Agente ServicePilot está funcionando

Para asegurarse de que los Agentes ServicePilot se comunican correctamente con ServicePilot, abra la página de Agentes:

  1. Utilizando una cuenta con privilegios de admin, inicie sesión en ServicePilot.
  2. Abrir CONFIGURACIÓN > Agentes.
  3. El Agente debe aparecer en la lista con un estado amarillo o verde y un valor Visto hay de hace unos segundos. El estado amarillo indica que el Agente aún no ha recibido nada que hacer.

Establecer el Agente por defecto

Al aprovisionar recursos se puede configurar al menos un Agente de ServicePilot para indicar que realice el monitoreo de ese recurso en la misma máquina que el recurso o desde Agentes remotos.

Si los campos Agente se dejan en blanco, se utilizará el Agente por defecto para monitorear el recurso.

Para definir o cambiar el Agente ServicePilot por defecto:

  1. Utilizando una cuenta con privilegios de admin, inicie sesión en ServicePilot.
  2. Abrir CONFIGURACIÓN > Agentes.
  3. Haga clic en el icono de edición del campo Agente por defecto.
  4. Seleccione el nuevo Agente por defecto.
  5. Haga clic en OK.

Establecer un Agente de backup

Opcionalmente, se puede configurar un Agente de Backup que asumirá las responsabilidades de supervisión del Agente por Defecto transcurridos unos minutos si el Agente por Defecto pierde la conectividad con el Manager ServicePilot. El Agente de Backup necesita estar en posición de acceder a todos los mismos recursos que el Agente por Defecto y estar instalado en el mismo tipo de sistema operativo que el Agente por Defecto.

Para definir el Agente ServicePilot de backup:

  1. Utilizando una cuenta con privilegios de admin, inicie sesión en ServicePilot.
  2. Abrir CONFIGURACIÓN > Agentes.
  3. Haga clic en el icono de edición del campo Agente de backup.
  4. Seleccione el nuevo Agente de Backup.
  5. Haga clic en OK.

El Agente de backup no puede ser el mismo que el Agente por defecto.

Agente ServicePilot SPProxy

El SPProxy es una función de proxy del agente de ServicePilot que puede actuar como pasarela y concentrador entre varios agentes de ServicePilot y el ServicePilot Manager. En entornos distribuidos y en sitios remotos con poco ancho de banda, simplifica enormemente la implementación, ya que los agentes se conectan localmente al proxy. Contribuye a:

  • Agrupación y optimización del tráfico: SPProxy agrega y comprime las comunicaciones de los agentes de un mismo sitio antes de transmitirlas. Al reducir el número de conexiones simultáneas al servidor central, disminuye el consumo de ancho de banda y agiliza los intercambios.
  • Seguridad y simplificación del flujo: al consolidar las comunicaciones salientes, los agentes remotos ya no necesitan abrir sesiones externas de forma individual, lo que reduce la exposición al limitar las conexiones directas entre el sitio y la plataforma ServicePilot. Proporciona un cifrado sistemático de extremo a extremo de los intercambios para todos los agentes conectados.

Agents communicating with ServicePilot via ServicePilot Agent proxy

Si los agentes de ServicePilot no pueden comunicarse con ServicePilot debido a restricciones del cortafuegos, se puede implementar un proxy para los agentes de ServicePilot. Solo es necesario conceder acceso al ServicePilot Manager al proxy del agente de ServicePilot, mientras que los agentes de ServicePilot se configurarán para enviar el tráfico al proxy.

El SPProxy dispone de una caché local para los archivos que necesitan los agentes con el fin de actualizarlos de forma centralizada, al tiempo que permite a la plataforma mantener una visión consolidada de todos los sitios remotos.

Por favor, póngase en contacto con nuestro soporte ([email protected]) de ServicePilot si desea configurar un proxy de Agente ServicePilot.

Logs del Agente ServicePilot

El Agente ServicePilot registra los errores de conectividad entre el Agente ServicePilot y ServicePilot, y los problemas de recuperación de datos de los dispositivos. Estos logs son particularmente útiles si la vigilancia no parece funcionar entre el Agente y los dispositivos remotos debido a una información de acceso incorrecta.

Abrir los logs del Agente con un editor de texto:

Logs del Agente Windows
Logs del Agente Linux
C:\Program Files\ServicePilot\ServicePilot ISM Enterprise\logs\ServicePilotAgent.log
/var/log/servicepilot/servicepilotagent.log
/var/log/servicepilot/spgoagent.log

Desinstalar un Agente ServicePilot

Si un Agente ServicePilot ya no se utiliza, se puede desinstalar.

Comprobar si un Agente está en uso

  1. Utilizando una cuenta con privilegios de admin, inicie sesión en ServicePilot.
  2. Abrir CONFIGURACIÓN > Agentes.
  3. Si no se utiliza un Agente, el estado será amarillo, lo que significa que está no configurado. Si el Agente sigue en uso, al hacer clic en la lupa azul se mostrarán los Detalles de Agentes incluyendo el Agent Data. Esto enumerará los recursos que están utilizando actualmente este Agente.

Desinstalación de un Agente ServicePilot

Desinstalación del Agente Windows
Desinstalación del Agente Linux

Para desinstalar correctamente un Agente Windows ServicePilot, asegúrese de que esté detenido antes de eliminarlo.

  1. Detener el servicio ServicePilotAgent.
  2. Desinstale el Agente ServicePilot del panel de control de Windows.
  3. Opcional: puede eliminar el directorio C:\Program Files\ServicePilot si no quiere mantener los logs del Agente.
  4. Opcional: si no tiene previsto reinstalar un Agente ServicePilot en la máquina, puede eliminar la clave de registro HKEY_LOCAL_MACHINE\SOFTWARE\ServicePilot Technologies.

Asegúrese de que el Agente Linux ServicePilot no se utiliza antes de desinstalar.

./servicepilotlinuxagent.run -- --uninstall

Eliminar los Agentes desinstalados de la lista de Agentes

Cuando se desinstala un agente de un sistema, los recursos asignados asociados (elementos supervisados, objetos creados automáticamente, configuraciones dependientes, etc.) siguen estando presentes en ServicePilot mientras el agente siga figurando en la lista de agentes. Por lo tanto, eliminar el agente de esta lista permite borrar correctamente todos los recursos vinculados.

Mientras un agente siga instalado y activo, eliminarlo de la lista no tendrá ningún efecto duradero: seguirá comunicándose con ServicePilot y se volverá a registrar automáticamente.

Estos son los pasos para eliminar un agente desinstalado:

  1. Utilizando una cuenta con privilegios de admin, inicie sesión en ServicePilot.
  2. Abrir CONFIGURACIÓN > Agentes.
  3. Haga clic en el icono basurero naranjo y luego haga clic en el botón Eliminar para eliminar un Agente de la lista de Agentes.
  4. ⚠️ Al eliminar el agente mediante este método, se eliminan automáticamente los recursos aprovisionados asociados a él.