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 recopilador de la distribución de Bindplane para OpenTelemetry (BDOT), agente de Bindplane, agente de recogida, recopilador o agente.

  • Servidor Bindplane. Una plataforma integral y unificada para gestionar tus implementaciones de colectores de OTel. Estas implementaciones pueden residir en Google SecOps y Google Cloud. Muchos clientes de Google SecOps usan Bindplane Server, pero su uso es opcional. Bindplane Server se puede ejecutar de forma local o en la nube de Bindplane. Para obtener más información sobre el servidor, consulta Servidor Bindplane.

    Este componente también se puede denominar consola de gestión de la canalización de observabilidad (OP) de Bindplane 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.

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

Para empezar a instalar y autohostear Bindplane (Google Edition) o generar tu clave para un servidor Bindplane local, consulta Bindplane (Google Edition).

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:

Tema o función 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 los colectores), colectores de Bindplane, servidor de Bindplane (capa de gestión de Bindplane) on-premise o alojado en la nube, todas las fuentes, monitorización de hosts silenciosos a través del procesador de Google SecOps, cola persistente, enriquecimiento de telemetría, alta disponibilidad, control de acceso basado en roles, compatibilidad con las APIs de ingesta de Google SecOps, ofuscación de credenciales y gestión avanzada de flotas, incluida la agrupación de colectores y la asignación dinámica de tipos de registro. Todas las funciones admitidas en Bindplane (edición de Google)

Arquitectura del recopilador de Bindplane

Bindplane usa el recopilador BDOT, al que se hace referencia de forma genérica como recopilador, 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.

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

Para obtener más información sobre la arquitectura de implementación de los colectores de Bindplane OpenTelemetry, consulta Implementación.

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

Los colectores envían registros a un colector que actúa como pasarela

En las implementaciones a gran escala, te recomendamos que uses colectores de Bindplane Enterprise (Google Edition) 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 recopilador que actúa como una pasarela usa el mismo archivo binario que todos los demás recopiladores.

En el siguiente diagrama se muestra cómo envían los colectores los registros a un colector que actúa como pasarela:

Los colectores envían registros a un colector que actúa como pasarela

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

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

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

Los colectores envían registros directamente a Cloud Logging

En el siguiente diagrama se muestra cómo envían los colectores los registros directamente a Cloud Logging:

Los colectores envían registros directamente a Cloud Logging

Los colectores envían registros a varios destinos

En el siguiente diagrama se muestran colectores que envían registros a varios destinos:

El recopilador envía registros a varios destinos

Servidor de Bindplane

El servidor de Bindplane ofrece las siguientes funciones clave:

  • Gestión centralizada. El servidor te permite gestionar todos tus despliegues de recopiladores de OTel en Google Cloud. Puede ver el estado de cada implementación y realizar tareas de gestión habituales, como iniciar, detener y reiniciar recopiladores.
  • Monitorización en tiempo real. El servidor proporciona una monitorización en tiempo real de tus implementaciones de recopiladores de OTel. Puedes monitorizar métricas como el uso de la CPU, el uso de la memoria y el rendimiento. También puedes ver los registros y los rastreos para solucionar problemas.
  • Alertas y notificaciones. El servidor te permite configurar alertas y notificaciones para eventos importantes, como cuando un recolector deja de funcionar o cuando se supera un umbral de métrica.
  • Gestión de la configuración. El servidor te permite gestionar de forma centralizada la configuración de tus recopiladores 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 el servidor para acceder a tus recursos de Google Cloud .

Bindplane ofrece opciones de implementación en la nube y on-premise. Para obtener más información, consulta Usar el servidor Bindplane.

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 a través del 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

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

Cuando ejecutes colectores de Bindplane en modo de pasarela, te recomendamos que los emparejes con un balanceador de carga para proporcionar tolerancia a fallos y escalado horizontal.

Calcular cuántos colectores necesitas

Cuando calcule el número de colectores que necesita para su carga de trabajo, tenga en cuenta el rendimiento o la tasa de registros previstos y consulte 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

Cuando ejecutes colectores de Bindplane en modo de pasarela, te recomendamos que planifiques 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 cuando se utiliza Bindplane en modo de alta disponibilidad.

Cuando ejecute colectores de Bindplane en modo de pasarela, use un balanceador 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 recolector de Bindplane puede funcionar con una amplia gama de balanceadores de carga.

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 usas Bindplane 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 usas Bindplane 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 que haya entre el recolector e Internet deben tener 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 operar 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:

Usar el servidor Bindplane

La mayoría de los clientes de Google SecOps usan el servidor Bindplane, pero su uso es opcional. Si vas a instalar el servidor de Bindplane, debes tener acceso a storage.googleapis.com. Si solo vas a instalar un recolector, no es necesario que concedas este acceso.

Para ver una demostración de cómo configurar el servidor de Bindplane para estandarizar los registros y exportarlos a Google SecOps, ve a [esta página)[https://bindplane.com/use-case-demo) y, a continuación, selecciona Configuración de Google SecOps.

Usar el servidor de Bindplane Cloud

Bindplane Cloud está disponible para los clientes de Google.

Inicia sesión en la edición de Google.

Si tiene algún problema relacionado con el servidor de Bindplane Cloud, póngase en contacto con el equipo de Asistencia de Bindplane. Si tienes algún problema relacionado con Bindplane Server local, ponte en contacto con el equipo de Asistencia de SecOps de Google.

Usar el servidor Bindplane en tu Google Cloud

Para obtener información sobre cómo ejecutar el servidor Bindplane en tu Google Cloud, consulta Bindplane Enterprise Edition.

Usar el servidor local de Bindplane

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

Instalar el servidor local en 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, sigue estos pasos:

  1. Descarga uno de los siguientes archivos:

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

Distribuciones de Linux compatibles:
  • 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:

Despliegues locales de Docker

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

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.

Instalar el recopilador de Bindplane

En esta sección se describe cómo instalar el recopilador de Bindplane para Google SecOps en varios sistemas.

Los recolectores 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 información sobre cómo instalar el recolector (es decir, el agente de OTel), consulta Recolector de OTel de Bindplane.

También puedes consultar la documentación de GitHub sobre bindplane-otel-collector.

Para instalar el recolector, necesitas lo siguiente:

  • Archivo de autenticación de 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 recopilador de Bindplane en Windows

Para instalar el recopilador 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 recopilador de Bindplane.

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

Instalar el recopilador de Bindplane en Linux

Puedes instalar el recolector 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

Instalación desde un paquete local

Para instalar el recolector 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.

Configurar el recopilador de Bindplane

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

Puedes configurar el recopilador manualmente o mediante el servidor Bindplane.

Si configuras el recopilador manualmente, debes actualizar los parámetros del exportador para asegurarte de que el recopilador 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 recolector registra los datos en C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log de forma predeterminada.

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

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 recolector para que se apliquen los cambios en la configuración

Cuando cambies la configuración, debes reiniciar el servicio del recolector 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 un recopilador se encuentra en C:\Program Files\observIQ OpenTelemetry Collector\config.yaml.

Para descargar un archivo de configuración de ejemplo y un token de autenticación que utiliza el colector, sigue estos pasos:

  • Abre la consola de Google SecOps y ve a Configuración de SIEM > Agente de recogida.

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

  • Receptor: especifica qué registros debe recoger el recopilador y enviar a Google SecOps.
  • Exportador: especifica el destino al que el recopilador 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 fallos 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 colectores de terceros

Aunque Bindplane es más potente cuando se usa el recopilador 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 colectores de terceros

Para obtener información sobre las integraciones de Bindplane con colectores 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

La monitorización silenciosa de hosts de Google Security Operations te permite crear alertas para los cambios en la tasa de ingestión mediante Google Cloud Monitoring. Genera alertas por recopilador y te avisa cuando la tasa de ingestión está por debajo del umbral definido, lo que indica posibles interrupciones del recopilador.

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 cómo monitorizar Bindplane, consulta Monitorización de Bindplane.

Monitorizar Kubernetes en BindPlane

Para obtener información sobre cómo monitorizar Kubernetes en Bindplane, consulta Monitorización de Kubernetes.

Documentación 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.