Documentation
Descubre el modo de configuración cero

Los Agentes ServicePilot

¿Qué es un Agente ServicePilot?

Los Agentes ServicePilot están diseñados para recopilar datos de supervisión de varias fuentes y enviarlos a ServicePilot. Los Agentes ServicePilot sólo requieren una breve configuración. Todo lo que necesitan es acceso a la web de ServicePilot y una Clave de API para asegurar la comunicación. El resto de la configuración se realiza a través de la interfaz web de ServicePilot.

Agentes ServicePilot SaaS

ServicePilot Agent On Premise

Cuando se despliega un Agente ServicePilot para utilizarlo con ServicePilot en modo SaaS, se establece una conexión HTTPS entre el Agente ServicePilot y ServicePilot en el Cloud. Se puede definir un proxy web en el Agente Windows ServicePilot si es necesario para acceder a Internet.

Agentes ServicePilot On Premise

ServicePilot Agent for SaaS ServicePilot

Cuando se despliega un Agente ServicePilot para utilizarlo con una instalación de ServicePilot On Premise, el FQDN del Manager ServicePilot tendrá que ser configurado en el Agente. El Agente se comunicará con el Manager ServicePilot a través de HTTP o HTTPS.

¿Cuántos Agentes ServicePilot deben instalarse?

ServicePilot Agents collecting local data

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. 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 Agent collection remote 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.

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 administradores, acceda a ServicePilot
2. Haga clic en Agentes > Instale un agente
3. Haga clic en Agent Details

Proxy de Agente ServicePilot para acceder a ServicePilot

Agents communicating with ServicePilot via ServicePilot Agent proxy

Si los Agentes ServicePilot no pueden comunicarse con ServicePilot debido a las restricciones del cortafuegos, se puede desplegar un Proxy de Agente ServicePilot. Este proxy de Agente ServicePilot actuará como puerta de enlace y concentrador entre los Agentes ServicePilot y el Manager ServicePilot. Sólo el proxy del Agente ServicePilot necesita tener acceso al Manager ServicePilot, mientras que los Agentes ServicePilot se configurarán para enviar el tráfico al proxy. Desde el punto de vista de la seguridad, esta configuración podría ser preferible, pero tenga en cuenta que esto introduce un nuevo punto de fallo posible.

Por favor, póngase en contacto con nuestro soporte de ServicePilot si desea configurar un proxy de Agente ServicePilot.

Capacidades de recogida de agentes ServicePilot

Cada agente ServicePilot tiene diferentes capacidades de recolección. Para ver lo que estos Agentes Enterprise pueden hacer, vea la página de Agent Details:

1. Utilizando una cuenta con privilegios de administradores, acceda a ServicePilot
2. Haga clic en Agentes > Instale un agente
3. Haga clic en Agent Details

Agentes Enterprise ServicePilot

Los Agentes Enterprise recogen datos directamente de los servidores en los que están instalados, o de otros equipos. Estos agentes también pueden recibir datos de eventos no solicitados si están configurados para ello.

El Agente Windows ServicePilot utiliza el framework .NET de Microsoft.

El Agente Linux ServicePilot ha sido compilado para las distribuciones x86 y x64 basadas en RedHat y Debian actualmente soportadas, así como para el OS Raspberry Pi 32-bit en ARM.

Agente Endpoint ServicePilot

El Agente Endpoint ServicePilot está diseñado para recopilar el inventario de hardware y software de las estaciones de trabajo de Windows.

Agentes Developer ServicePilot

Se pueden recopilar datos estadísticos sobre el número y tipo de llamadas a la Web realizadas en las aplicaciones Puppeteer, JavaScript en los navegadores Web y Node.js. Estas integraciones requieren que el código en cuestión esté instrumentado para enviar los detalles de la llamada a ServicePilot.

Integración del Agente Open Source

El Agente Windows ServicePilot puede servir de puerta de entrada a varios Agentes Open Source, proporcionando a ServicePilot los datos recogidos por estos agentes.

Status Monitor de ServicePilot

El Status Monitor de ServicePilot no es un agente utilizado para recoger datos. Es una extensión de la interfaz web de ServicePilot que permite a los usuarios de ServicePilot ver el número actual de elementos con alertas en el escritorio de Windows.

El Status Monitor de ServicePilot puede ser descargado desde el menú de Usuario.

Descargar los Agentes ServicePilot

1. Utilizando una cuenta con privilegios de administradores, acceda a 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:

1. Utilizando una cuenta con privilegios de administradores, acceda a ServicePilot
2. Abrir AJUSTES > Configuración
3. Haga clic en Claves de API
4. Recuperar una clave de API con autorización Escribir

Instalación de un Agente Windows ServicePilot

Después de descargar el Agente de ServicePilot, haga doble clic en el archivo para ejecutar el instalador. 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

Instalación de un Agente Linux ServicePilot

Después de descargar el Agente ServicePilot, 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. Establezca los parámetros para que el Agente ServicePilot se comunique con ServicePilot. Puedes detener e iniciar el servicio spagent usando los comandos estándar de tu distribución de Linux.

Para x86 el fichero se llama servicepilotlinuxagent.run
Para ARM el fichero se llama 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

#

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

1. Ayuda del Agente Linux de ServicePilot ./servicepilotlinuxagent.run -- --help

Instalación de un Agente Linux ServicePilot en Docker

El Agente Linux de ServicePilot puede ejecutarse en un contenedor 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

Instalación de un Agente Linux ServicePilot en Kubernetes

El Agente Linux de ServicePilot puede ejecutarse en un Pod de Kubernetes.

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

Nota: La ejecución de un Agente ServicePilot en un Pod de Kubernetes limitará sus capacidades de sondeo remoto y obtención de información de Kubernetes.

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

# 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)

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 administradores, acceda a ServicePilot
2. Abrir AJUSTES > 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.

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

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

Logs del Agente Linux

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

Desinstalación de 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 administradores, acceda a ServicePilot
2. Abrir AJUSTES > 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 del agente incluyendo el Agent Data. Esto enumerará los recursos que están utilizando actualmente este Agente.

Desinstalación de un Agente Windows ServicePilot

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

1. Detener el servicio ServicePilotAgent
2. Cierre la ServicePilot Setup Console si está abierta.
3. Desinstale el Agente ServicePilot del panel de control de Windows.
4. Opcional: puede eliminar el directorio C:\Program Files (x86)\ServicePilot si no quiere mantener los logs del Agente
5. 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

Desinstalar un Agente Linux ServicePilot

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

1. Desinstale el Agente Linux ServicePilot ./servicepilotlinuxagent.run -- --uninstall

Eliminar los Agentes desinstalados de la lista de Agentes

Hasta que se desinstale un Agente, la eliminación de la lista de Agentes no tendrá el efecto deseado, ya que el Agente seguirá contactando con ServicePilot y reaparecerá continuamente en la lista de agentes.

1. Utilizando una cuenta con privilegios de administradores, acceda a ServicePilot
2. Abrir AJUSTES > 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.