Usar Bindplane con Google SecOps
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 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 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 a varios destinos
En el siguiente diagrama se muestran colectores que envían 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:
- Colector OTel de Bindplane en GitHub
- Instalar y desinstalar colectores de Bindplane
- Requisitos previos para la instalación
- Directrices sobre el tamaño y el escalado de los recolectores
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:
- Documentación de PostgreSQL
- Guía de configuración de Postgres
- Configuración de Postgres Store
- Configuración de TLS de Postgres
Implementar la autenticación adecuada
Bindplane admite la autenticación con los siguientes protocolos y servicios. Asegúrate de que estén implementados correctamente:
- LDAP de Azure Entra. Para obtener más información, consulta Azure LDAP y Cambiar el tipo de autenticación de Bindplane.
- LDAP.
- OpenID Connect (OIDC).
- Local.
- SAML.
- TLS de Postgres. Para obtener más información, consulta TLS de Postgres.
- Kubernetes. Para obtener más información, consulta Workload Identity de GKE.
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:
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
Sigue las instrucciones para inicializar el servidor.
Para instalar el servidor Bindplane local en Linux con un archivo binario, sigue estos pasos:
Descarga uno de los siguientes archivos:
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:
- Abre la consola de Google SecOps.
- Ve a Configuración de SIEM > Agente de recogida.
- 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:
- Abre la consola de Google SecOps.
- Ve a Configuración de SIEM > Perfil.
- 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:
-
namespace
ingestion_labels
log_type
customer_id
creds
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:
windowseventlogreceiver
tcplogreceiver
listen_address
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
creds
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:
windowseventlogreceiver
tcplogreceiver
listen_address
chronicleforwarder
endpoint
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:
tcplogreceiver
listen_address
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
Creds
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:
sqlqueryreceiver
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
creds
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:
- Monitorización silenciosa de hosts de Google SecOps
- Configurar Bindplane para la monitorización silenciosa de hosts con Google Cloud Monitoring
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:
- Observabilidad y seguridad líderes en el sector con la tecnología de OpenTelemetry
- Usar Google SecOps con las prácticas recomendadas de Bindplane
- Soluciones de Bindplane
- Empezar a usar Bindplane
- Tipos de registros admitidos para Google Cloud
- Filtrar por procesador de condiciones
- Fuentes disponibles para Bindplane
¿Necesitas más ayuda? Recibe respuestas de los miembros de la comunidad y de los profesionales de Google SecOps.