Solucionar problemas de instalación e inicio del agente de operaciones

Este documento proporciona información para ayudarte a diagnosticar y resolver problemas en la instalación e inicio del agente de Ops. Si el agente se está ejecutando, pero no puede ingerir registros ni métricas, consulte Solucionar problemas de ingesta de datos.

Antes de empezar

Antes de intentar solucionar un problema, comprueba el estado de las comprobaciones del estado del agente.

No se puede instalar el agente

Es posible que se produzcan los siguientes errores al ejecutar la secuencia de comandos de instalación.

El sistema operativo no es compatible

Si el sistema operativo no es compatible, la instalación del Agente de operaciones falla. El mensaje de error puede ser similar al siguiente:

Linux

https://packages.cloud.google.com/yum/repos/google-cloud-ops-agent-el6-x86_64-all/repodata/repomd.xml: [Errno 14] PYCURL ERROR 22 - "The requested URL returned error: 404 Not Found"
Trying other mirror.
To address this issue please refer to the below wiki article

https://wiki.centos.org/yum-errors

If above article doesn't help to resolve this issue please use https://bugs.centos.org/.

Error: Cannot retrieve repository metadata (repomd.xml) for repository: google-cloud-ops-agent. Please verify its path and try again

Se ha instalado un agente antiguo que entra en conflicto con el agente de operaciones

Si una VM ya tiene instalado el agente de Cloud Logging o el agente de Cloud Monitoring, estos entran en conflicto con el nuevo agente. El mensaje de error puede ser similar al siguiente:

Linux

Error:
 Problem: problem with installed package stackdriver-agent-6.0.5-1.el8.x86_64 - package google-cloud-ops-agent-0.1.0-1.el8.x86_64 conflicts with stackdriver-agent provided by stackdriver-agent-6.0.5-1.el8.x86_64

El agente de operaciones usa archivos de configuración nuevos que no son compatibles con los agentes antiguos. Para obtener más información, consulta la guía Configurar el agente de Ops.

Para solucionar este error, siga estos pasos:

  1. Guarda los archivos de configuración personalizados del agente de Cloud Monitoring y del agente de Cloud Logging.

  2. Desinstala el antiguo agente de Cloud Monitoring y el agente de Cloud Logging.

    Después de desinstalar el agente, la consola Google Cloud puede tardar hasta una hora en registrar este cambio.

La instalación del agente de operaciones falla después de que falle la instalación del agente de Monitoring

La instalación del Agente de operaciones falla después de un intento fallido de instalar el agente de Monitoring. En un sistema operativo Debian, los mensajes de error que se muestran cuando no se puede instalar el agente de operaciones son similares a los siguientes:

Linux

...
E: The repository 'https://packages.cloud.google.com/apt google-cloud-monitoring-jammy-all Release' does not have a Release file.
...
Could not refresh the google-cloud-ops-agent apt repositories.

Si intentas instalar el agente de Monitoring en un sistema operativo que no es compatible con ese agente, la instalación fallará. El fallo de instalación se produce después de que se añada el repositorio del agente de Monitoring al sistema. Si se intenta instalar el agente de operaciones después de que se haya producido un error al instalar el agente de Monitoring, también se producirá un error debido a que el repositorio del agente de Monitoring no es válido.

No todos los sistemas operativos compatibles con el agente de Ops también lo son con el agente de Monitoring. Para obtener información sobre los sistemas operativos compatibles, consulta Agente Ops: sistemas operativos Linux y Agente de monitorización: sistemas operativos Linux.

Para instalar el Agente de operaciones, sigue estos pasos:

  1. Elimina el repositorio del agente de Monitoring:

    Si la secuencia de comandos add-monitoring-agent-repo.sh está en tu sistema, ejecuta el siguiente comando:

    sudo bash add-monitoring-agent-repo.sh --remove-repo
    

    De lo contrario, elimina el repositorio manualmente:

    Debian

    sudo rm /etc/apt/sources.list.d/google-cloud-monitoring.list

    RHEL - 6, 7

     sudo rm /etc/yum.repos.d/google-cloud-monitoring.repo

    Suse

    sudo rm /etc/zypp/repos.d/google-cloud-monitoring.repo

  2. Ejecuta la secuencia de comandos de instalación del Agente de operaciones.

La instalación del agente de operaciones falla porque no se puede actualizar el repositorio

La instalación del agente de Ops falla porque no se pueden actualizar los repositorios instalados.

Linux

Para ver un ejemplo del mensaje de error de un sistema operativo Debian, en el que la actualización del repositorio se produce debido a una llamada a apt-get update, consulta la entrada de solución de problemas La instalación del Agente de operaciones falla después de que falle la instalación del agente de Monitoring.

Si se produce un error al actualizar los repositorios, debes resolverlo antes de poder instalar el agente de Ops. Puede que puedas resolver estos errores eliminando o inhabilitando los repositorios que no sean necesarios.

Una vez que puedas actualizar los repositorios, podrás instalar el agente de operaciones ejecutando la secuencia de comandos de instalación del agente de operaciones.

No se puede actualizar el repositorio porque la clave pública no está disponible

Linux

No se puede actualizar un repositorio debido a una llamada a apt-get update porque la clave pública no está disponible. Esto también puede ocurrir al instalar o actualizar el agente de Ops. Es posible que veas el siguiente error:

W: GPG error: http://packages.cloud.google.com/apt google-cloud-ops-agent-focal-all InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY C0BA5CE6DC6315A3
E: The repository 'http://packages.cloud.google.com/apt google-cloud-ops-agent-focal-all InRelease' is not signed.

Para solucionar este error, ejecuta el siguiente comando para añadir la clave que falta a tu sistema:

curl -fsSL https://packages.cloud.google.com/apt/doc/apt-key.gpg \
    | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/google-cloud-ops-agent.gpg

El agente está instalado, pero no se está ejecutando

Si has instalado el agente, pero no se está ejecutando, puede deberse a uno de los siguientes problemas:

Los servicios del agente no se están ejecutando

Si los servicios del agente funcionan correctamente, los agentes de métricas y de registro aparecerán como en ejecución cuando consultes el estado:

En Linux

sudo systemctl status google-cloud-ops-agent"*"

Se han eliminado algunas líneas de la salida para mayor brevedad.

● google-cloud-ops-agent.service - Google Cloud Ops Agent
     Loaded: loaded (/lib/systemd/system/google-cloud-ops-agent.service; enabled; vendor preset: enabled)
     Active: active (exited) since Wed 2023-05-03 21:22:28 UTC; 4 weeks 0 days ago
    Process: 3353828 ExecStartPre=/opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_engine -in /etc/go>
    Process: 3353837 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
   Main PID: 3353837 (code=exited, status=0/SUCCESS)
        CPU: 195ms

[...]

● google-cloud-ops-agent-opentelemetry-collector.service - Google Cloud Ops Agent - Metrics Agent
     Loaded: loaded (/lib/systemd/system/google-cloud-ops-agent-opentelemetry-collector.service; static)
     Active: active (running) since Wed 2023-05-03 21:22:29 UTC; 4 weeks 0 days ago
    Process: 3353840 ExecStartPre=/opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_engine -service=ot>
   Main PID: 3353855 (otelopscol)
      Tasks: 9 (limit: 2355)
     Memory: 65.3M
        CPU: 40min 31.555s
     CGroup: /system.slice/google-cloud-ops-agent-opentelemetry-collector.service
             └─3353855 /opt/google-cloud-ops-agent/subagents/opentelemetry-collector/otelopscol --config=/run/g>

[...]

● google-cloud-ops-agent-fluent-bit.service - Google Cloud Ops Agent - Logging Agent
     Loaded: loaded (/lib/systemd/system/google-cloud-ops-agent-fluent-bit.service; static)
     Active: active (running) since Wed 2023-05-03 21:22:29 UTC; 4 weeks 0 days ago
    Process: 3353838 ExecStartPre=/opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_engine -service=fl>
   Main PID: 3353856 (google_cloud_op)
      Tasks: 31 (limit: 2355)
     Memory: 58.3M
        CPU: 29min 6.771s
     CGroup: /system.slice/google-cloud-ops-agent-fluent-bit.service
             ├─3353856 /opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_wrapper -config_path /etc/goo>
             └─3353872 /opt/google-cloud-ops-agent/subagents/fluent-bit/bin/fluent-bit --config /run/google-clo>

[...]

● google-cloud-ops-agent-diagnostics.service - Google Cloud Ops Agent - Diagnostics
     Loaded: loaded (/lib/systemd/system/google-cloud-ops-agent-diagnostics.service; disabled; vendor preset: e>
     Active: active (running) since Wed 2023-05-03 21:22:26 UTC; 4 weeks 0 days ago
   Main PID: 3353819 (google_cloud_op)
      Tasks: 8 (limit: 2355)
     Memory: 36.0M
        CPU: 3min 19.488s
     CGroup: /system.slice/google-cloud-ops-agent-diagnostics.service
             └─3353819 /opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_diagnostics -config /etc/goog>

[...]

En Windows

Get-Service google-cloud-ops-agent*

Status   Name               DisplayName
------   ----               -----------
Running  google-cloud-op... Google Cloud Ops Agent
Running  google-cloud-op... Google Cloud Ops Agent - Logging Agent
Running  google-cloud-op... Google Cloud Ops Agent - Metrics Agent
Running  google-cloud-op... Google Cloud Ops Agent - Diagnostics

Si el servicio del agente no se está ejecutando, puede que veas el siguiente estado:

Linux

$ sudo service google-cloud-ops-agent status
● google-cloud-ops-agent.service - Google Cloud Ops Agent
   Loaded: loaded (/lib/systemd/system/google-cloud-ops-agent.service; enabled; vendor preset: enabled)
   Active: inactive (dead) since Wed 2021-06-30 21:20:43 UTC; 6s ago

Windows

Get-Service google-cloud-ops-agent

Status   Name                    DisplayName
------   ----                    -----------
Stopped  google-cloud-ops-agent  Google Cloud Ops Agent

Para solucionar este error, ejecuta el siguiente comando para iniciar el servicio:

Linux

sudo service google-cloud-ops-agent start

Windows

Start-Service google-cloud-ops-agent

Si el servicio no se inicia, puede que la configuración no sea válida.

Conflicto con los agentes instalados

  • La VM ya tiene instalado el agente de Cloud Logging o el agente de Cloud Monitoring y su configuración entra en conflicto con la del nuevo agente. El mensaje de error puede ser similar al siguiente:

    Windows

    We detected an existing Windows service for the StackdriverLogging agent,
    which is not compatible with the Ops Agent when the Ops Agent configuration
    has a non-empty logging section. Please either remove the logging section
    from the Ops Agent configuration, or disable the StackdriverLogging agent,
    and then retry enabling the Ops Agent.
    

    Para solucionar este error, tienes dos opciones:

    1. Inhabilita la sección en conflicto del archivo de configuración del agente de operaciones. Para obtener más información, consulta la guía Configurar el agente de Ops.

    2. Inhabilita el agente de Cloud Logging o el agente de Cloud Monitoring que esté en conflicto.

      1. Guarda los archivos de configuración personalizados del agente de Cloud Logging.
      2. Desinstala el antiguo agente de Cloud Monitoring y el agente de Cloud Logging.

      Después de desinstalar el agente, la consola Google Cloud puede tardar hasta una hora en registrar este cambio.

El puerto obligatorio no está disponible

El agente de operaciones o uno de sus componentes no se puede iniciar cuando otro proceso está usando el puerto que necesita el componente. El agente de Ops utiliza los siguientes puertos:

  • Puerto 20201, para el componente "Metrics Agent"
  • Puerto 20202 para el componente "Agente de Logging"

Si un proceso que no sea un componente de Ops Agent está usando el puerto 20201 o el puerto 20202, detén ese proceso y reinicia Ops Agent. Siga estos pasos para determinar qué proceso está usando los puertos:

Linux

Componente Metrics Agent: para ver qué proceso usa el puerto 20201, usa el siguiente comando:

sudo netstat -ns -p | grep '20201'

El siguiente resultado muestra el resultado esperado: el recopilador de métricas del agente de operaciones, otelopscol, está usando el puerto:

tcp        0      0 127.0.0.1:50138         127.0.0.1:20201         ESTABLISHED 16850/otelopscol
tcp6       0      0 :::20201                :::*                    LISTEN      16850/otelopscol
tcp6       0      0 127.0.0.1:20201         127.0.0.1:50138         ESTABLISHED 16850/otelopscol

Componente del agente de registro: para ver qué proceso usa el puerto 20202, usa el siguiente comando:

sudo netstat -ns -p | grep '20202'

El siguiente resultado muestra el resultado esperado: el recopilador de registros del agente de Ops, fluent-bit, usa el puerto:

tcp        0      0 0.0.0.0:20202           0.0.0.0:*               LISTEN      16640/fluent-bit
tcp        0      0 127.0.0.1:20202         127.0.0.1:52998         TIME_WAIT   -

Windows

Componente Metrics Agent: para ver qué proceso usa el puerto 20201, usa el siguiente comando:

netstat -na -b  | Select-String "20201" -Context 0,1

El siguiente resultado muestra el resultado esperado: el recopilador de métricas del agente de operaciones, google-cloud-metrics-agent_windows_amd64.exe, está usando el puerto:

>   TCP    0.0.0.0:20201          0.0.0.0:0              LISTENING
   [google-cloud-metrics-agent_windows_amd64.exe]
>   TCP    127.0.0.1:20201        127.0.0.1:50090        ESTABLISHED
   [google-cloud-metrics-agent_windows_amd64.exe]
>   TCP    127.0.0.1:50090        127.0.0.1:20201        ESTABLISHED
   [google-cloud-metrics-agent_windows_amd64.exe]
>   TCP    [::]:20201             [::]:0                 LISTENING
   [google-cloud-metrics-agent_windows_amd64.exe]

Componente del agente de registro: para ver qué proceso usa el puerto 20202, usa el siguiente comando:

netstat -na -b  | Select-String "20202" -Context 0,1

El siguiente resultado muestra el resultado esperado: el recopilador de registros del agente de Ops, fluent-bit.exe, usa el puerto:

>   TCP    0.0.0.0:20202          0.0.0.0:0              LISTENING
   [fluent-bit.exe]
>   TCP    127.0.0.1:20202        127.0.0.1:57535        TIME_WAIT
>   TCP    127.0.0.1:20202        127.0.0.1:57539        TIME_WAIT
    TCP    127.0.0.1:49807        127.0.0.1:49808        ESTABLISHED

El agente de operaciones puede detectar errores de disponibilidad de puertos mediante las comprobaciones de estado.

El agente no tiene permisos de API

Si el agente no se inicia o no puede ingerir datos, es posible que el componente "Agente de métricas" o "Agente de registro" no tenga el permiso necesario para acceder a la API.

La cuenta de servicio que usa el agente de Ops requiere los siguientes roles de gestión de identidades y accesos:

Estos roles incluyen los permisos necesarios para escribir datos de registro o de métricas y deben concederse a la cuenta de servicio asociada a la VM. La cuenta de servicio que utilices dependerá de cómo hayas configurado la VM y autorizado al agente. Es posible que estés usando uno de los siguientes:

Para identificar la cuenta de servicio asociada a una máquina virtual, sigue estos pasos:

  1. En la Google Cloud consola, ve a la página Instancias de VM:

    Ve a Instancias de VM.

    Si usas la barra de búsqueda para encontrar esta página, selecciona el resultado cuyo subtítulo sea Compute Engine.

  2. Si es necesario, haz clic en la lista desplegable de Google Cloud proyectos y selecciona el nombre de tu proyecto.

  3. Seleccione la pestaña Instancias si es necesario.

  4. En la lista de instancias de VM, haz clic en el nombre de la VM para ver la página Detalles de la VM.

  5. Busca la sección Gestión de APIs e identidades de la página. La cuenta de servicio se muestra como el valor del campo Cuenta de servicio.

Para obtener información sobre cómo definir los roles concedidos a la cuenta de servicio, consulta Verificar y modificar los roles de una cuenta de servicio.

Los errores de permisos de API se pueden detectar mediante las comprobaciones del estado que ejecuta el agente de operaciones.

Configuración no válida

Si la configuración no es válida, es posible que veas el siguiente error al intentar reiniciar el servicio del agente:

Linux

$ sudo service google-cloud-ops-agent restart \
    && sudo service google-cloud-ops-agent status
● google-cloud-ops-agent-fluent-bit.service - Google Cloud Ops Agent - Logging Agent
   Loaded: loaded (/usr/lib/systemd/system/google-cloud-ops-agent-fluent-bit.service; static; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/google-cloud-ops-agent-fluent-bit.service.d
           └─directories.conf
   Active: failed (Result: exit-code) since Wed 2021-06-30 22:21:08 UTC; 2s ago
  Process: 1141421 ExecStart=/opt/google-cloud-ops-agent/subagents/fluent-bit/bin/fluent-bit --config ${RUNTIME_DIRECTORY}/fluent_bit_main.conf --parser ${RUNTIME_DIRECTORY}/fluent_bit_parser.conf --log_>
  Process: 1141847 ExecStartPre=/opt/google-cloud-ops-agent/libexec/google_cloud_ops_agent_engine -service=fluentbit -in /etc/google-cloud-ops-agent/config.yaml -logs ${LOGS_DIRECTORY} -state ${STATE_DIR>
 Main PID: 1141421 (code=exited, status=0/SUCCESS)

Jun 30 22:21:08 centos8-2 systemd[1]: google-cloud-ops-agent-fluent-bit.service: Control process exited, code=exited status=1
Jun 30 22:21:08 centos8-2 systemd[1]: google-cloud-ops-agent-fluent-bit.service: Failed with result 'exit-code'.
Jun 30 22:21:08 centos8-2 systemd[1]: Failed to start Google Cloud Ops Agent - Logging Agent.
Jun 30 22:21:08 centos8-2 systemd[1]: google-cloud-ops-agent-fluent-bit.service: Service RestartSec=100ms expired, scheduling restart.
Jun 30 22:21:08 centos8-2 systemd[1]: google-cloud-ops-agent-fluent-bit.service: Scheduled restart job, restart counter is at 5.
Jun 30 22:21:08 centos8-2 systemd[1]: Stopped Google Cloud Ops Agent - Logging Agent.
Jun 30 22:21:08 centos8-2 systemd[1]: google-cloud-ops-agent-fluent-bit.service: Start request repeated too quickly.
Jun 30 22:21:08 centos8-2 systemd[1]: google-cloud-ops-agent-fluent-bit.service: Failed with result 'exit-code'.
Jun 30 22:21:08 centos8-2 systemd[1]: Failed to start Google Cloud Ops Agent - Logging Agent.

Usa journalctl para obtener el mensaje de error exacto:

sudo journalctl -xe | grep "google_cloud_ops_agent_engine"

Es posible que veas un mensaje similar al siguiente:

Jun 30 22:00:26 centos8-2 google_cloud_ops_agent_engine[1141491]: 2021/06/30 22:00:26 the agent config file is not valid YAML. detailed error: yaml: line 21: did not find expected key

Windows

failed to generate config files: can't parse configuration: yaml: line 20: could not find expected ':'

Para solucionar el error, corrige la configuración no válida y reinicia el agente. Para obtener información de referencia, consulta la guía Configurar el agente de operaciones.

El agente falla y el informe menciona a NVIDIA

Estás intentando ejecutar el Agente de operaciones en una máquina virtual de Compute Engine con GPUs conectadas. El agente falla y en el resultado se menciona NVIDIA.

Se trata de un problema conocido de las versiones 2.39.0 y 2.40.0 del agente de Ops. Para mitigar este problema, instala la versión 2.38.0 del agente de Ops o las versiones 2.41.0 o posteriores.

La información de estado de la Google Cloud consola es incorrecta

La consola Google Cloud proporciona información sobre el estado de los agentes en las VMs de Compute Engine en varios paneles de control, como el panel de control Instancias de VM de Cloud Monitoring. Si esta información no coincide con lo que esperas, puede que se deba a un retraso, ya que los cambios en la configuración se están aplicando en el sistema. Sin embargo, la información inesperada también puede indicar que el agente no se está ejecutando como esperabas.

La consola Google Cloud indica que el agente instalado no se ha detectado

El agente debe estar en ejecución e ingerir datos para que la Google Cloud consola reconozca que está presente. Si has instalado el agente, pero el estado de la consola sigue siendo "No detectado", significa que el agente no se está ejecutando o que se está ejecutando, pero no está ingiriendo datos. Para obtener más información, consulta las siguientes secciones:

Se ha quitado el agente que la consola Google Cloud indicaba que estaba instalado

Después de desinstalar el agente, la consola Google Cloud puede tardar hasta una hora en registrar este cambio.