Usar Bindplane con Google SecOps

Disponible en:

En este documento se describe Bindplane para Google Security Operations.

Bindplane es un flujo de telemetría que puede recoger, depurar y exportar registros de cualquier fuente a Google SecOps.

Bindplane ofrece dos ediciones especiales para Google.

Bindplane incluye los siguientes componentes principales:

  • Recopilador de Bindplane. Un agente de código abierto basado en el Collector de OpenTelemetry (OTel). Recoge registros de varias fuentes, incluidos los registros de eventos de Microsoft Windows, y los envía a Google SecOps. Puedes instalar los colectores de forma local o en la nube. Este componente también se conoce como agente de Bindplane de la distribución de Bindplane para OpenTelemetry (BDOT), agente de recogida, recogedor o agente.
  • Servidor de Bindplane. Una plataforma integral y unificada para gestionar tus implementaciones de colectores de OTel. Estas implementaciones pueden residir en Google SecOps y Google Cloud. Bindplane Server se puede ejecutar de forma local o en la nube de Bindplane. Para obtener más información sobre la consola, consulta Consola de gestión de Bindplane. Este componente también se conoce como consola de gestión de la canalización de observabilidad de Bindplane (OP) o consola de gestión de Bindplane.

Ediciones de Google de Bindplane

Bindplane ofrece dos ediciones especialmente diseñadas para Google: Bindplane (Google Edition) y Bindplane Enterprise (Google Edition).

Bindplane (edición de Google)

Bindplane (edición de Google) se ofrece a todos los clientes de Google SecOps.

Para obtener más información, consulta los siguientes recursos:

Puedes usar Bindplane (edición de Google) en la nube de Bindplane.

Para saber cómo empezar a instalar y autohostear Bindplane (edición de Google), consulta Bindplane (edición de Google).

Bindplane Enterprise (edición de Google): para clientes de Google SecOps Enterprise Plus

Bindplane Enterprise (edición de Google) se incluye para los clientes de Google SecOps Enterprise Plus.

Bindplane Enterprise (Google Edition) se recomienda para implementaciones a gran escala.

Ponte en contacto con el equipo de tu cuenta de Google para obtener la clave de licencia de Bindplane Enterprise (edición de Google).

Ediciones de Google de Bindplane: diferencias

En la siguiente tabla se enumeran las diferencias entre las ediciones de Google de Bindplane:

Funciones Bindplane (edición de Google) Bindplane Enterprise (edición de Google)
Coste Incluido sin coste adicional para todos los clientes de Google SecOps Incluido sin coste adicional para los clientes de Google SecOps Enterprise Plus
Rutas y destinos Solo Google, incluidos Google SecOps, Cloud Logging, BigQuery y Cloud Storage a través de Google SecOps Google, incluidos 12 meses de enrutamiento a un destino que no sea de Google para las migraciones de SIEM
Filtrar Filtro básico con expresión regular Procesadores de filtrado avanzado (por ejemplo, filtrar por condición, campo, gravedad, etc.), reducción de datos, muestreo de registros y desduplicación
Redacción N/A Enmascaramiento de IIP
Transformación Añadir campo, mover campo, analizar datos (clave-valor, JSON, CSV, XML, marca de tiempo, analizar por expresión regular), cambiar nombre de campo, separador de eventos Incluye todas las funciones compatibles con Bindplane (edición de Google) más los campos de eliminación, los valores vacíos y la fusión.
Funciones generales a nivel de plataforma Gateway (agrega datos de agentes), agentes de Bindplane para la recogida, capa de gestión de Bindplane para entornos on-premise o alojados en la nube, todas las fuentes, monitorización de hosts silenciosos a través del procesador de SecOps, cola persistente, enriquecimiento de telemetría, alta disponibilidad, control de acceso basado en roles, compatibilidad con ambas APIs de ingestión de SecOps, ofuscación de credenciales y gestión avanzada de flotas, incluida la agrupación de agentes y la asignación dinámica de tipos de registro. Todas las funciones admitidas en Bindplane (edición de Google)

Consola de gestión de Bindplane

El uso de la consola de gestión de Bindplane es opcional. Muchos clientes de Google SecOps usan Bindplane Server.

La consola de gestión de Bindplane ofrece las siguientes funciones clave:

  • Gestión centralizada. La consola te permite gestionar todas tus implementaciones de colectores de OTel en Google Cloud. Puedes ver el estado de cada implementación, así como realizar tareas de gestión habituales, como iniciar, detener y reiniciar colectores.
  • Monitorización en tiempo real. La consola proporciona una monitorización en tiempo real de tus implementaciones de colectores de OTel. Puedes monitorizar métricas como el uso de la CPU, el uso de la memoria y el rendimiento, así como ver registros y trazas para solucionar problemas.
  • Alertas y notificaciones. La consola te permite configurar alertas y notificaciones para eventos importantes, como cuando un recopilador deja de funcionar o cuando se supera un umbral de métrica.
  • Gestión de la configuración. La consola te permite gestionar de forma centralizada la configuración de tus colectores de OTel. Puedes editar archivos de configuración, definir variables de entorno y aplicar políticas de seguridad a todas tus implementaciones.
  • Integración con Google Cloud Puedes crear y gestionar implementaciones del recolector de OTel en Google Cloud y usar la consola para acceder a tus recursos de Google Cloud .

Arquitectura del agente de Bindplane

Bindplane Agent se puede ejecutar en Linux o Docker como un servidor web ligero sin dependencias externas.

Bindplane usa el recopilador de BDOT para estandarizar la gestión de la telemetría con el protocolo de gestión de agentes abierto (OpAMP). También puedes crear y gestionar distribuciones personalizadas de OpenTelemetry Collector con Bindplane.

Para obtener más información sobre la arquitectura de implementación de los recopiladores de Bindplane OpenTelemetry, consulta Recopilador de Bindplane OTel.

En las siguientes secciones se describen las opciones de arquitectura disponibles.

Los agentes de recogida envían registros a un agente de recogida que actúa como pasarela

En las implementaciones a gran escala, te recomendamos que utilices agentes de Bindplane Enterprise (edición de Google) que actúen como pasarelas. Estas pasarelas reciben telemetría de otros colectores a través de la red, realizan un procesamiento adicional (opcional) y dirigen los datos a Google SecOps.

Un agente de recogida que actúa como una pasarela usa el mismo archivo binario que todos los demás agentes de recogida.

En el siguiente diagrama se muestra cómo los agentes de recogida envían registros a un agente de recogida que actúa como pasarela.

Los agentes de recogida envían registros a un agente de recogida que actúa como pasarela

Los agentes de recogida envían registros directamente a la API de ingestión de Google SecOps

En el siguiente diagrama se muestra cómo los agentes de recogida envían registros directamente a la API de ingestión de Google SecOps.

Los agentes de recogida envían registros directamente a la API de ingestión de Google SecOps

Los agentes de recogida envían registros directamente a Cloud Logging

En el siguiente diagrama se muestra cómo los agentes de recogida envían registros directamente a Cloud Logging.

Los agentes de recogida envían registros directamente a Cloud Logging

Los agentes de recogida envían registros a varios destinos

En el siguiente diagrama se muestran agentes de recogida que envían registros a varios destinos.

El agente de recogida envía registros a varios destinos

Tipos de implementación de Bindplane

Bindplane ofrece opciones de implementación en la nube y on-premise.

Despliegues on-premise

El uso del servidor Bindplane local se rige por los Google Cloud Términos del Servicio.

Despliegues on-premise de Linux

Puedes instalar el servidor Bindplane local en Linux ejecutando una secuencia de comandos (recomendado) o descargando un archivo binario e instalándolo manualmente. Para obtener más información, consulta Instalar Bindplane Server.

Para instalar el servidor Bindplane local en Linux con una secuencia de comandos, sigue estos pasos:

  1. Ejecuta esta secuencia de comandos:

    curl -fsSlL https://storage.googleapis.com/bindplane-op-releases/bindplane/latest/install-linux.sh -o install-linux.sh && bash install-linux.sh --init && rm install-linux.sh

  2. Sigue las instrucciones para inicializar el servidor.

Para instalar el servidor Bindplane local en Linux con un archivo binario, haz lo siguiente:

  1. Descarga uno de los siguientes archivos:

  2. Actualice el archivo de configuración siguiendo las instrucciones de Configurar el servidor de Bindplane.

Despliegues locales de Docker

Para obtener más información, consulta Instalar Bindplane Server.

Linux

Distribuciones de Linux:

  • Red Hat, CentOS y Oracle Linux 7, 8 y 9
  • Debian 11 y 12
  • Ubuntu LTS 20.04 y 22.04
  • SUSE Linux 12 y 15
  • Alma y Rocky Linux

Para obtener más información, consulta lo siguiente:

Imágenes de contenedor Docker

Puede encontrar imágenes de contenedor Docker de Bindplane en las siguientes ubicaciones:

  • Paquetes de GitHub: ghcr.io/observiq/Bindplane-ee
  • Repositorio de artefactos de Google: us-central1-docker.pkg.dev/observiq-containers/bindplane/bindplane-ee
  • Docker Hub: observiq/bindplane-ee

Las imágenes de contenedor se etiquetan con la versión de lanzamiento. Por ejemplo, el lanzamiento v1.35.0 tendrá la etiqueta observiq/bindplane-ee:1.35.0.

Requisitos y recomendaciones técnicas

En esta sección se describen los requisitos técnicos y las recomendaciones para instalar y ejecutar Bindplane con Google SecOps.

Requisitos de ancho de banda

Bindplane mantiene conexiones de red para lo siguiente:

  • Gestión de recopiladores
  • Mediciones del rendimiento del recopilador
  • Interfaces de usuario web y de línea de comandos

Requisitos de conectividad

Bindplane escucha en el puerto 3001 de forma predeterminada. Este puerto se puede configurar.

El puerto de Bindplane se usa para lo siguiente:

  • Comandos y control de recopiladores mediante OpAMP (WebSocket)
  • Solicitudes de medición del rendimiento del recolector (solicitud HTTP POST)
  • Usuarios de navegadores y CLIs (HTTP y WebSocket)

Los colectores deben poder iniciar conexiones con Bindplane para OpAMP (WebSocket) y mediciones de rendimiento (HTTP).

Bindplane nunca inicia conexiones con los colectores. Puedes configurar un cortafuegos para impedir que Bindplane llegue a las redes del recopilador. Sin embargo, las redes del recopilador deben poder acceder a Bindplane en el puerto configurado.

Requisitos técnicos generales del recopilador de Bindplane

Para obtener información sobre los requisitos técnicos generales del recopilador de Bindplane, consulta lo siguiente:

Requisitos de recursos del recopilador

Los requisitos de recursos de Bindplane varían en función del número de colectores gestionados. A medida que aumenta el número de colectores gestionados, también lo hacen el uso de la CPU, la memoria, el rendimiento de disco/IOPS y el consumo de red.

Usa la siguiente tabla para determinar el tamaño de la CPU, la memoria y la capacidad de almacenamiento:

Número de recopiladores Nodos de Bindplane Tolerancia a fallos Núcleos de CPU Memoria Base de datos
1-100 1 N/A 2 4 GB bbolt
100-25.000 1 N/A 4 16 GB postgres
Entre 1 y 60.000 3 1 2 8 GB postgres
60.001-125.000 5 1 2 8 GB postgres
125.001-250.000 10 2 2 8 GB postgres

Planificar la instalación y la implementación

En las siguientes secciones se incluyen recomendaciones y prácticas recomendadas que debes tener en cuenta al planificar tu implementación de Bindplane.

Tener en cuenta la escalabilidad y la tolerancia a fallos

Los colectores de la pasarela reciben datos de telemetría a través de la red. Te recomendamos que los emparejes con un balanceador de carga para proporcionar tolerancia a fallos y escalado horizontal.

Es preferible el escalado horizontal, ya que proporciona tolerancia a fallos y puede eliminar los cuellos de botella de los exportadores.

Calcular cuántos colectores necesitas

Cuando calcules el número de colectores que necesitas para tu carga de trabajo, ten en cuenta el rendimiento o la tasa de registros previstos y consulta la siguiente tabla. En esta tabla se presupone que cada recopilador tiene cuatro núcleos de CPU y 16 GB de memoria. La tabla no incluye cálculos con procesadores. Cuando se añaden procesadores, los requisitos de computación aumentan.

Rendimiento de la telemetría Registros/segundo Recopiladores
5 GB/m 250.000 2
10 GB/m 500.000 3
20 GB/m 1.000.000 5
100 GB al mes 5.000.000 25

Aprovisionar en exceso la flota de recopiladores para mejorar la tolerancia a fallos

Aprovisiona en exceso la flota de recolectores para asegurar la tolerancia a fallos. Si uno o varios sistemas de recolección fallan o se desconectan para realizar tareas de mantenimiento, los recolectores restantes deben tener capacidad suficiente para gestionar el volumen de telemetría.

Si trabajas con un número fijo de recolectores, puedes implementar un escalado vertical de su CPU y memoria para aumentar el rendimiento.

Reducir la sobrecarga de procesamiento

Por lo general, es recomendable que los recolectores hagan el menor trabajo posible. Si tienes requisitos de procesamiento elevados, puede ser útil delegar ese procesamiento en una flota de recopiladores de puerta de enlace. Por ejemplo, en lugar de filtrar la telemetría con una operación de expresión regular costosa, puede hacer que los colectores de la pasarela realicen esa tarea. Por lo general, los colectores de pasarela se ejecutan en un sistema dedicado. Esto justifica la sobrecarga del procesamiento, ya que no consume la potencia de cálculo de otros servicios que se ejecutan en el mismo sistema, a diferencia de un recopilador que no sea de puerta de enlace y que se pueda ejecutar en un servidor de bases de datos.

Prácticas recomendadas para el modo de pasarela

Si usas un agente de recogida de Bindplane como pasarela (es decir, en modo pasarela), planifica tu implementación siguiendo estas prácticas recomendadas:

  • Coloca al menos dos recopiladores detrás de un balanceador de carga.
  • Cada recolector debe tener un mínimo de dos núcleos.
  • Cada recopilador debe tener un mínimo de 8 GB de memoria.
  • Cada recolector debe tener 60 GB de espacio utilizable para una cola persistente.

Usar un balanceador de carga cuando sea necesario

Se necesita un balanceador de carga para usar Bindplane en modo de alta disponibilidad.

Cuando uses un agente de recogida de Bindplane en modo de pasarela, utiliza un equilibrador de carga para aumentar el rendimiento y la redundancia. El balanceo de carga también permite el escalado horizontal de tu flota de pasarelas y la capacidad de resistir fallos sin provocar interrupciones.

El agente de recogida de Bindplane puede funcionar con una amplia gama de balanceadores de carga cuando opera en modo de pasarela. En este documento no se describen opciones específicas, ya que la mayoría de las soluciones de balanceo de carga más populares admiten las funciones necesarias para operar de forma fiable varios colectores.

Para obtener más información, consulta Balanceador de carga.

Puertos y protocolos de balanceo de carga

Bindplane escucha en el puerto 3001 de forma predeterminada.

Para admitir la amplia gama de receptores basados en redes de OpenTelemetry, el balanceador de carga debe admitir lo siguiente:

  • Protocolos de transporte TCP/UDP
  • Protocolos de aplicación HTTP y gRPC

Dimensionamiento del balanceo de carga

Los nodos de Bindplane no deben gestionar más de 30.000 colectores para maximizar la tolerancia a fallos. Cada recopilador abre dos conexiones a Bindplane (una para la gestión remota de OpAMP y otra para publicar métricas de rendimiento). Este límite ayuda a asegurarse de que no se supere el límite de conexiones de aproximadamente 65.535 por instancia de backend que imponen la mayoría de los balanceadores de carga.

Si una organización tiene 100.000 colectores, un tamaño de clúster de tres sería insuficiente. Cada nodo sería responsable de aproximadamente 33.000 colectores, lo que se traduce en 66.000 conexiones TCP por instancia de Bindplane. Esta situación empeora si se desactiva un nodo para realizar tareas de mantenimiento, ya que cada instancia de Bindplane restante gestionaría 50.000 colectores o 100.000 conexiones TCP.

Prácticas recomendadas para determinar el tamaño del balanceo de carga

  • Implementa comprobaciones del estado. Configura el balanceador de carga para asegurarte de que el recopilador esté listo para recibir tráfico.
  • Distribuir las conexiones de forma uniforme. Las conexiones deben distribuirse de forma uniforme entre los recolectores.
  • Admite los protocolos necesarios. Para admitir la amplia gama de receptores basados en redes de OpenTelemetry, el balanceador de carga debe admitir lo siguiente:

    • Protocolos de transporte TCP/UDP
    • Protocolos de aplicación HTTP y gRPC

Para obtener más información, consulta Resistencia del recolector.

Balanceo de carga por tipo de origen

Cualquier tipo de fuente que reciba telemetría de sistemas remotos a través de la red es un candidato adecuado para el balanceo de carga, incluidos los siguientes:

  • OTLP
  • Syslog
  • TCP/UDP
  • Splunk HEC
  • Fluent Forward

Usar el modo de alta disponibilidad en entornos de producción

Puedes implementar una instancia de Bindplane en una configuración de una sola instancia o de varias instancias. En las implementaciones de producción que requieren alta disponibilidad y resiliencia, te recomendamos que utilices un modelo de implementación de alta disponibilidad con varias instancias.

Cuando Bindplane gestiona más de 25.000 colectores, te recomendamos que lo utilices en modo de alta disponibilidad.

Para obtener información sobre la alta disponibilidad en Bindplane, consulta Alta disponibilidad.

Calcula el número de colectores y servidores de Bindplane para la alta disponibilidad

Cuando Bindplane funciona en modo de alta disponibilidad, debes tener en cuenta cuántos colectores quieres que gestione cada servidor de Bindplane.

Toma el número total de instancias de Bindplane y resta el número máximo de nodos que crees que no estarán disponibles debido al mantenimiento. Asegúrate de que cada nodo gestione un máximo de 30.000 colectores durante una interrupción del nodo.

Postgres para alta disponibilidad

Postgres es un requisito previo cuando se utiliza Bindplane en modo de alta disponibilidad.

Prometheus para alta disponibilidad

Prometheus es obligatorio cuando se utiliza Bindplane en modo de alta disponibilidad.

Para obtener más información, consulta Prometheus.

Bus de eventos para alta disponibilidad

Bindplane usa un bus de eventos para comunicarse entre los componentes de Bindplane. Cuando Bindplane funciona en modo de alta disponibilidad, puedes usar el bus de eventos para enviar eventos entre servidores de Bindplane.

Para obtener más información, consulta Event Bus.

Usar una implementación de una sola instancia en un entorno de prueba o una prueba de concepto

En un entorno de pruebas o una prueba de concepto, te recomendamos que uses una implementación de una sola instancia.

Para obtener más información, consulta Instancia única.

Aísla las credenciales de backend

En lugar de implementar credenciales en todos los sistemas de recogida, puede mantenerlas exclusivamente en los colectores de la pasarela. De esta forma, se simplifica la rotación de credenciales y se reduce la superficie de ataque de seguridad, ya que la implementación de credenciales se limita a un subconjunto de tus sistemas.

Protege con un cortafuegos tus colectores de pasarela

Puedes colocar colectores de la pasarela en una red perimetral, protegida por un cortafuegos de la red interna. Puede configurar su red para permitir que sus otros recolectores reenvíen datos a los recolectores de la pasarela y, al mismo tiempo, impedir que los recolectores de la pasarela accedan a la red de su aplicación. De esta forma, puedes enviar telemetría a un backend basado en la nube sin conceder a tus endpoints acceso directo a Internet.

El cortafuegos debe permitir que el tráfico HTTP llegue a Bindplane en el puerto configurado.

Verificar la configuración del cortafuegos

Los cortafuegos o proxies autenticados entre el agente e Internet requieren reglas para abrir el acceso a los siguientes hosts:

Tipo de conexión Destino Puerto
TCP malachiteingestion-pa.googleapis.com 443
TCP asia-northeast1-malachiteingestion-pa.googleapis.com 443
TCP asia-south1-malachiteingestion-pa.googleapis.com 443
TCP asia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP australia-southeast1-malachiteingestion-pa.googleapis.com 443
TCP europe-malachiteingestion-pa.googleapis.com 443
TCP europe-west2-malachiteingestion-pa.googleapis.com 443
TCP europe-west3-malachiteingestion-pa.googleapis.com 443
TCP europe-west6-malachiteingestion-pa.googleapis.com 443
TCP europe-west12-malachiteingestion-pa.googleapis.com 443
TCP me-central1-malachiteingestion-pa.googleapis.com 443
TCP me-central2-malachiteingestion-pa.googleapis.com 443
TCP me-west1-malachiteingestion-pa.googleapis.com 443
TCP northamerica-northeast2-malachiteingestion-pa.googleapis.com 443
TCP accounts.google.com 443
TCP oauth2.googleapis.com 443

Usar PostgreSQL para las implementaciones de producción

Postgres es obligatorio para las implementaciones de producción de Bindplane.

Postgres es un requisito previo para usar Bindplane en modo de alta disponibilidad.

El número de núcleos de CPU y la memoria disponible suelen limitar el rendimiento de los back-ends de almacenamiento de PostgreSQL. Te recomendamos que hagas una copia de seguridad del almacenamiento de PostgreSQL con un almacenamiento de baja latencia y alto rendimiento, como las unidades de estado sólido (SSD).

Número de recopiladores Núcleos de CPU Memoria
Entre 1 y 60.000 4 16 GB
60.001-125.000 8 32 GB
125.001-250.000 16 64 GB

Para obtener más información, consulta lo siguiente:

Implementar la autenticación adecuada

Bindplane admite la autenticación con los siguientes protocolos y servicios. Asegúrate de que estén implementados correctamente:

Instalar la consola de gestión de Bindplane

La mayoría de los clientes de Google SecOps usan la consola de gestión de Bindplane. Si vas a instalarla, necesitas acceso a storage.googleapis.com. Si solo vas a instalar el agente, no es necesario que concedas este acceso.

Bindplane Cloud también está disponible para los clientes de Google. Descarga la versión gratuita y envía un correo a support@bindplane.com para solicitar una actualización a la versión compatible con Google.

Hay tres formas de desplegar la consola de gestión de Bindplane:

Instalar el agente de Bindplane

En esta sección se describe cómo instalar el agente de Bindplane para Google SecOps en diferentes sistemas operativos host.

Los colectores de agentes suelen usar recursos mínimos. Sin embargo, cuando se gestionan grandes volúmenes de registros, se debe tener en cuenta el consumo de recursos para evitar que afecte a otros servicios. Para obtener más información, consulta Requisitos técnicos y recomendaciones, Planificar la instalación y la implementación y Tamaño y escalado de los agentes.

Para obtener más información sobre cómo instalar el agente de OTel, consulta Instalar y desinstalar colectores de Bindplane.

Para instalar el agente, necesitas lo siguiente:

  • Archivo de autenticación de la ingestión de Google SecOps

    Para descargar el archivo de autenticación, sigue estos pasos:

    1. Abre la consola de Google SecOps.
    2. Ve a Configuración de SIEM > Agente de recogida.
    3. Descarga el archivo de autenticación de ingestión de Google SecOps.
  • ID de cliente de Google SecOps

    Para encontrar el ID de cliente, sigue estos pasos:

    1. Abre la consola de Google SecOps.
    2. Ve a Configuración de SIEM > Perfil.
    3. Copia el ID de cliente de la sección Detalles de la organización.
  • Windows 2012 SP2 o versiones posteriores o host Linux con systemd

  • Conectividad a Internet

  • Acceso a GitHub

Herramientas para la implementación

En esta sección se describen las herramientas de implementación de Bindplane.

GitOps

Despliega recursos de Bindplane mediante un modelo GitOps, que incluye lo siguiente:

  • Autenticación de Bindplane
  • CLI de Bindplane
  • Acceso a la red
  • Integración con un repositorio de GitHub y GitHub Actions
  • Exportar recursos disponibles
  • Gestionar valores sensibles
  • Establecer un flujo de trabajo de GitHub Actions
  • Instrucciones paso a paso para confirmar y probar la configuración, habilitar los lanzamientos automáticos y actualizar los recursos mediante la edición directa o el método de exportación de la interfaz de usuario
  • Actualizar valores sensibles y usar RBAC

Para obtener más información, consulta GitOps.

Ansible

Para obtener información sobre cómo desplegar Bindplane con Ansible, consulta bindplane-agent-ansible.

CLI de Bindplane

Para obtener información sobre la CLI de Bindplane, consulta GitOps.

Terraform

Para obtener información sobre cómo usar Terraform para configurar tus recursos de Bindplane, consulta Proveedor de Bindplane.

Kubernetes

Para obtener información sobre Kubernetes con Bindplane, consulta lo siguiente:

Instalar el agente de Bindplane en Windows

Para instalar el agente de Bindplane en Windows, ejecuta el siguiente comando de PowerShell:

msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet

También puedes usar un asistente de instalación. Para ello, descarga el instalador más reciente para Windows. Después de descargar el instalador, abre el asistente de instalación y sigue las instrucciones para configurar e instalar el agente de Bindplane.

Para obtener más información sobre cómo instalar el agente de Bindplane en Windows, consulta Instalación en Windows.

Instalar el agente de Bindplane en Linux

Puede instalar el agente en Linux mediante una secuencia de comandos que determina automáticamente qué paquete instalar. También puedes usar la misma secuencia de comandos para actualizar una instalación.

Para instalarlo con la secuencia de comandos de instalación, ejecuta la siguiente secuencia de comandos:

sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh

Para obtener más información sobre cómo configurar el recolector, consulte bindplane-otel-collect.

Instalación desde un paquete local

Para instalar el agente desde un paquete local, usa -f con la ruta al paquete.

sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh -f path_to_package

Instalación de RPM

Descarga el paquete RPM de tu arquitectura desde la página de lanzamientos e instálalo con rpm. Consulta el siguiente ejemplo para instalar el paquete amd64:

sudo rpm -U ./observiq-otel-collector_v${VERSION}_linux_amd64.rpm
sudo systemctl enable --now observiq-otel-collector

Sustituye VERSION por la versión del paquete que has descargado.

Instalación de DEB

Descarga el paquete DEB de tu arquitectura desde la página de lanzamientos e instala el paquete con dpkg. Consulta el siguiente ejemplo para instalar el paquete amd64:

sudo dpkg -i --force-overwrite ./observiq-otel-collector_v${VERSION}_linux_amd64.deb
sudo systemctl enable --now observiq-otel-collector

Sustituye VERSION por la versión del paquete que has descargado.

Para obtener más información, consulta Instalación del agente de Bindplane.

Configurar el agente de BindPlane

Después de instalar el agente, el servicio observiq-otel-collector se ejecuta y está listo para configurarse.

Puedes configurar el agente manualmente o mediante la consola de gestión de Bindplane.

Si configuras el agente manualmente, debes actualizar los parámetros del exportador para asegurarte de que el agente se autentica con Google SecOps.

Archivo de configuración del recopilador de OTel

En Linux, el archivo de configuración del recolector se encuentra en /opt/observiq-otel-collector/config.yaml.

Servicio de recopilador de OTel y registros

El agente registra la información en C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log de forma predeterminada.

El registro de errores estándar del proceso del agente se encuentra en C:\Program Files\observIQ OpenTelemetry Collector\log\observiq_collector.err.

Para obtener más información sobre cómo configurar el recolector, consulta bindplane-otel-collect.

En Linux, para ver los registros del recopilador, ejecuta sudo tail -F /opt/observiq-otel-collector/log/collector.log.

Comandos de servicio habituales del recolector de OTel de Linux:

  • Para detener el servicio del recolector de OTel, ejecuta sudo systemctl stop observiq-otel-collector.

  • Para iniciar el servicio del recopilador de OTel, ejecuta sudo systemctl start observiq-otel-collector.

  • Para reiniciar el servicio del recolector de OTel, ejecuta sudo systemctl restart observiq-otel-collector.

  • Para habilitar el servicio del recopilador de OTel al inicio, ejecuta sudo systemctl enable observiq-otel-collector.

Reinicia el servicio del agente para que se apliquen los cambios en la configuración

Cuando cambies la configuración, debes reiniciar el servicio del agente para que los cambios surtan efecto (sudo systemctl restart observiq-otel-collector).

Usar un archivo de configuración de ejemplo predeterminado

De forma predeterminada, un archivo de configuración de agente se encuentra en C:\Program Files\observIQ OpenTelemetry Collector\config.yaml.

Puedes descargar un archivo de configuración de ejemplo y un token de autenticación que utiliza el agente desde la consola de Google SecOps > Configuración de SIEM > Agente de recogida.

Personalice las dos secciones siguientes del archivo de configuración:

  • Receptor: especifica qué registros debe recoger el agente y enviar a Google SecOps.
  • Exportador: especifica el destino al que el agente envía los registros. Se admiten los siguientes exportadores:
    • Exportador de Google SecOps: envía registros directamente a la API de ingestión de Google SecOps.
    • Exportador de reenvío de Google SecOps: envía registros al reenviador de Google SecOps.
    • Exportador de Cloud Logging: envía registros a Cloud Logging.

En el exportador, personaliza lo siguiente:

  • customer_id: tu ID de cliente de Google SecOps.
  • endpoint: tu endpoint regional de Google SecOps.
  • creds: tu token de autenticación.

    También puedes usar creds_file_path para hacer referencia al archivo de credenciales directamente. En la configuración de Windows, escapa la ruta con barras invertidas.

  • log_type: tipo de registro. Te recomendamos que selecciones WINDOWS_DNS como Tipo de registro.

  • ingestion_labels: etiquetas de ingestión. Estas etiquetas identifican los registros en Google SecOps.

  • namespace: espacio de nombres opcional.

    Para cada tipo de registro, debe configurar un exportador.

Ejemplos de configuración de recogida de registros

En las siguientes secciones se incluyen ejemplos de configuración para la recogida de registros.

Enviar eventos de Windows y Sysmon directamente a Google SecOps

Configura estos parámetros en el ejemplo:

Ejemplo de configuración:

receivers:
  windowseventlog/sysmon:
    channel: Microsoft-Windows-Sysmon/Operational
    raw: true
  windowseventlog/security:
    channel: security
    raw: true
  windowseventlog/application:
    channel: application
    raw: true
  windowseventlog/system:
    channel: system
    raw: true

processors:
  batch:

exporters:
  chronicle/sysmon:
    endpoint: malachiteingestion-pa.googleapis.com
    creds: '{
  "type": "service_account",
  "project_id": "malachite-projectname",
  "private_key_id": "abcdefghijklmnopqrstuvwxyz123456789",
  "private_key": "-----BEGIN PRIVATE KEY-----abcdefg-----END PRIVATE KEY-----\n",
  "client_email": "account@malachite-projectname.iam.gserviceaccount.com",
  "client_id": "123456789123456789",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/account%40malachite-projectname.iam.gserviceaccount.com",
  "universe_domain": "googleapis.com"
}' 
    log_type: 'WINDOWS_SYSMON'
    override_log_type: false
    raw_log_field: body
    customer_id: 'dddddddd-dddd-dddd-dddd-dddddddddddd'
  chronicle/winevtlog:
    endpoint: malachiteingestion-pa.googleapis.com
    creds: '{
  "type": "service_account",
  "project_id": "malachite-projectname",
  "private_key_id": "abcdefghijklmnopqrstuvwxyz123456789",
  "private_key": "-----BEGIN PRIVATE KEY-----abcdefg-----END PRIVATE KEY-----\n",
  "client_email": "account@malachite-projectname.iam.gserviceaccount.com",
  "client_id": "123456789123456789",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/account%40malachite-projectname.iam.gserviceaccount.com",
  "universe_domain": "googleapis.com"
}'
    log_type: 'WINEVTLOG'
    override_log_type: false
    raw_log_field: body
    customer_id: 'dddddddd-dddd-dddd-dddd-dddddddddddd'

service:
  pipelines:
    logs/sysmon:
      receivers: [windowseventlog/sysmon]
      processors: [batch]
      exporters: [chronicle/sysmon]
    logs/winevtlog:
      receivers: 
        - windowseventlog/security
        - windowseventlog/application
        - windowseventlog/system
      processors: [batch]
      exporters: [chronicle/winevtlog]

Enviar eventos de Windows y syslog directamente a Google SecOps

Configura estos parámetros en el ejemplo:

Ejemplo de configuración:

receivers:
    tcplog:
      listen_address: "0.0.0.0:54525"
    windowseventlog/source0__application:
        attributes:
            log_type: windows_event.application
        channel: application
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source0__security:
        attributes:
            log_type: windows_event.security
        channel: security
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source0__system:
        attributes:
            log_type: windows_event.system
        channel: system
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
exporters:
    chronicle/chronicle_w_labels:
        compression: gzip
        creds: '{ json blob for creds }'
        customer_id: <customer_id>
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
            env: dev
        log_type: <applicable_log_type>
        namespace: testNamespace
        raw_log_field: body
service:
    pipelines:
        logs/source0__chronicle_w_labels-0:
            receivers:
                - windowseventlog/source0__system
                - windowseventlog/source0__application
                - windowseventlog/source0__security
            exporters:
                - chronicle/chronicle_w_labels
        logs/source1__chronicle_w_labels-0:
            receivers:
                - tcplog
            exporters:
                - chronicle/chronicle_w_labels

Enviar eventos de Windows y syslog al reenviador de Google SecOps

Configura estos parámetros en el ejemplo:

Ejemplo de configuración:

receivers:
tcplog:
    listen_address: "0.0.0.0:54525"
    windowseventlog/source0__application:
        attributes:
            log_type: windows_event.application
        channel: application
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source0__security:
        attributes:
            log_type: windows_event.security
        channel: security
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
    windowseventlog/source0__system:
        attributes:
            log_type: windows_event.system
        channel: system
        max_reads: 100
        poll_interval: 1s
        raw: true
        start_at: end
exporters:
    chronicleforwarder/forwarder:
        export_type: syslog
        raw_log_field: body
        syslog:
            endpoint: 127.0.0.1:10514
            transport: udp
service:
    pipelines:
        logs/source0__forwarder-0:
            receivers:
                - windowseventlog/source0__system
                - windowseventlog/source0__application
                - windowseventlog/source0__security
            exporters:
                - chronicleforwarder/forwarder
        logs/source1__forwarder-0:
            receivers:
                - tcplog
            exporters:
                - chronicleforwarder/forwarder

Enviar syslog directamente a Google SecOps

Configura estos parámetros en el ejemplo:

Ejemplo de configuración:

receivers:
  tcplog:
    listen_address: "0.0.0.0:54525"

exporters:
    chronicle/chronicle_w_labels:
        compression: gzip
        creds: '{ json blob for creds }'
        customer_id: <customer_id>
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
            env: dev
        log_type: <applicable_log_type>
        namespace: testNamespace
        raw_log_field: body
service:
    pipelines:
        logs/source0__chronicle_w_labels-0:
            receivers:
                - tcplog
            exporters:
                - chronicle/chronicle_w_labels

Recoger eventos de Windows de forma remota y enviarlos directamente a Google SecOps

Configura estos parámetros en el ejemplo:

  • windowseventlogreceiver
    • username
    • password
    • server
  • chronicleexporter
    • namespace
    • ingestion_labels
    • log_type
    • customer_id
    • creds

Ejemplo de configuración:

receivers:
    windowseventlog/system:
        channel: system
        max_reads: 100
        start_at: end
        poll_interval: 10s
        raw: true
        remote:
            username: "username"
            password: "password"
            server: "remote-server"
    windowseventlog/application:
        channel: application
        max_reads: 100
        start_at: end
        poll_interval: 10s
        raw: true
        remote:
            username: "username"
            password: "password"
            server: "server-ip"
    windowseventlog/security:
        channel: security
        max_reads: 100
        start_at: end
        poll_interval: 10s
        raw: true
        remote:
            username: "username"
            password: "password"
            server: "server-ip"
exporters:
    chronicle/chronicle_w_labels:
        compression: gzip
        creds: '{ json blob for creds }'
        customer_id: <customer_id>
        endpoint: malachiteingestion-pa.googleapis.com
        ingestion_labels:
            env: dev
        log_type: WINEVTLOG
        namespace: testNamespace
        raw_log_field: body
service:
    pipelines:
        logs/source0__chronicle_w_labels-0:
            receivers:
                - windowseventlog/system
                - windowseventlog/application
                - windowseventlog/security
            exporters:
                - chronicle/chronicle_w_labels

Enviar datos a Cloud Logging

Configura el parámetro credentials_file en el ejemplo.

Ejemplo de configuración:

exporters:
  googlecloud:
    credentials_file: /opt/observiq-otel-collector/credentials.json

Consultar una base de datos SQL y enviar los resultados a Google SecOps

Configura estos parámetros en el ejemplo:

Ejemplo de configuración:

receivers:
  sqlquery/source0:
    datasource: host=localhost port=5432 user=postgres password=s3cr3t sslmode=disable
    driver: postgres
    queries:
      - logs:
          - body_column: log_body
        sql: select * from my_logs where log_id > $$1
        tracking_column: log_id
        tracking_start_value: "10000"
processors:
  transform/source0_processor0__logs:
    error_mode: ignore
    log_statements:
      - context: log
        statements:
          - set(attributes["chronicle_log_type"], "POSTGRESQL") where true
exporters:
  chronicle/chronicle_sql:
    compression: gzip
    creds: '{
  "type": "service_account",
  "project_id": "malachite-projectname",
  "private_key_id": "abcdefghijklmnopqrstuvwxyz123456789",
  "private_key": "-----BEGIN PRIVATE KEY-----abcdefg-----END PRIVATE KEY-----\n",
  "client_email": "account@malachite-projectname.iam.gserviceaccount.com",
  "client_id": "123456789123456789",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://oauth2.googleapis.com/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/account%40malachite-projectname.iam.gserviceaccount.com",
  "universe_domain": "googleapis.com"
}' 
    customer_id: customer_id
    endpoint: malachiteingestion-pa.googleapis.com
    log_type: POSTGRESQL
    namespace: null
    raw_log_field: body
    retry_on_failure:
      enabled: false
    sending_queue:
      enabled: false
service:
  pipelines:
    logs/source0_chronicle_sql-0:
      receivers:
        - sqlquery/source0
      processors:
        - transform/source0_processor0__logs
      exporters:
        - chronicle/chronicle_sql

Eliminar registros que coincidan con una expresión regular

Puedes configurar el recolector para que elimine los registros que coincidan con una expresión regular. Esto resulta útil para filtrar los registros no deseados, como los errores conocidos o los mensajes de depuración.

Para descartar los registros que coincidan con una expresión regular, añade un procesador de tipo filter/drop-matching-logs-to-Chronicle a tu configuración. Este procesador usa la función IsMatch para evaluar el cuerpo del registro con la expresión regular. Si la función devuelve true, el registro se descarta.

En la siguiente configuración de ejemplo se eliminan los registros que contienen las cadenas <EventID>10</EventID> o <EventID>4799</EventID> en el cuerpo del registro.

Puedes personalizar la expresión regular para que coincida con el patrón que necesites. La función IsMatch usa la sintaxis de expresiones regulares RE2.

Ejemplo de configuración:

processors:
    filter/drop-matching-logs-to-Chronicle:
        error_mode: ignore
        logs:
            log_record:
                - (IsMatch(body, "<EventID>10</EventID>")) or (IsMatch(body, "<EventID>4799</EventID>"))

En el siguiente ejemplo se añade el procesador a la canalización en la misma configuración:

service:
  pipelines:
    logs/winevtlog:
      receivers: 
        - windowseventlog/security
        - windowseventlog/application
        - windowseventlog/system
      processors: 
      - filter/drop-matching-logs-to-Chronicle # Add this line
      - batch
      exporters: [chronicle/winevtlog]

Operaciones y mantenimiento de Bindplane

En esta sección se describen las operaciones y las acciones de mantenimiento rutinarias.

Verificar una configuración de OTel

Para obtener información sobre cómo verificar la configuración de OTel de Bindplane, consulta OTelBin.

Novedades de las versiones del recopilador

Bindplane puede sondear bindplane-otel-collector/releases para detectar nuevas versiones del recopilador. Esta función es opcional.

Puedes inhabilitar el sondeo de GitHub configurando agentVersions.syncInterval en 0 en tu configuración de Bindplane:

agentVersions:
syncInterval: 0

Copias de seguridad y recuperación tras fallos

Para obtener información sobre las copias de seguridad y la recuperación tras desastres con Bindplane, consulta los recursos de Bindplane.

Copia de seguridad y recuperación tras fallos de PostgreSQL

Para obtener información sobre la copia de seguridad y la recuperación tras fallos de PostgreSQL con Bindplane, consulta la documentación de PostgreSQL.

Copia de seguridad y recuperación tras fallos de BBolt

Para obtener información sobre la copia de seguridad y la recuperación tras desastres de BBolt (obsoleto) con Bindplane, consulta la documentación de BBolt Store.

Resiliencia y reintentos

La opción de reintento está habilitada de forma predeterminada en todos los destinos que la admiten. De forma predeterminada, las solicitudes fallidas se vuelven a intentar después de cinco segundos y se retiran progresivamente hasta un máximo de 30 segundos. Después de cinco minutos, las solicitudes se omiten de forma permanente.

Para obtener más información, consulta Resistencia del recolector.

Reducir el volumen de registros con el filtro de gravedad

Para saber cómo reducir el volumen de los registros, consulta Reducir el volumen de los registros con el filtro de gravedad.

Integraciones de Bindplane con agentes de terceros

Aunque Bindplane es más potente cuando se usa el agente de Bindplane para la recogida en el extremo, en la mayoría de los casos, Bindplane puede permanecer en tu infraestructura. Por ejemplo, si ya usas Fluent Bit o Splunk Universal Forwarders, puedes seguir haciéndolo.

Integración de Bindplane con Splunk

Para obtener información sobre Splunk con Bindplane, consulta lo siguiente:

Integraciones de Bindplane con otros agentes de terceros

Para obtener información sobre las integraciones de Bindplane con agentes de terceros, consulta Connecting Other OpenTelemetry Collectors Using the OpAMP Extension (Conectar otros colectores de OpenTelemetry mediante la extensión OpAMP).

Monitorización silenciosa de hosts

Para obtener información sobre cómo usar Bindplane para la monitorización silenciosa de hosts, consulta lo siguiente:

Actualizar Bindplane en Linux

Para actualizar Bindplane, basta con ejecutar el comando de instalación sin la marca --init al final. Ejecuta esta secuencia de comandos en tu servidor de Bindplane para actualizar Bindplane. Para obtener más información, consulta Actualizar, cambiar a una versión anterior o desinstalar Bindplane Server.

Monitorizar Bindplane

Para obtener información sobre la monitorización de Bindplane, consulta Monitorizar Bindplane.

Monitorización de Kubernetes

Para obtener información sobre la monitorización de Kubernetes en Bindplane, consulta Monitorización de Kubernetes.

Documentación de referencia adicional

Para obtener más información sobre Bindplane (antes observIQ), consulta lo siguiente:

¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.