Usa BindPlane con Google SecOps
En este documento, se describe Bindplane para Google Security Operations.
BindPlane es una canalización de telemetría que puede recopilar, definir mejor y exportar registros de cualquier fuente a Google SecOps.
Bindplane ofrece dos ediciones especialmente para Google.
Bindplane incluye los siguientes componentes principales:
- Bindplane Collector Un agente de código abierto basado en el recopilador de OpenTelemetry (OTel). Recopila registros de varias fuentes, incluidos los registros de eventos de Microsoft Windows, y los envía a Google SecOps. Puedes instalar los recopiladores de forma local o en la nube. Este componente también se conoce como agente de Bindplane del recopilador de Bindplane Distribution for OpenTelemetry (BDOT), agente de recopilación, recopilador o agente.
- Servidor de BindPlane Es una plataforma integral y unificada para administrar tus implementaciones de recopiladores de OTel. Estas implementaciones pueden residir en Google SecOps y Google Cloud. El servidor de Bindplane puede ejecutarse de forma local o en la nube de Bindplane. Para obtener más información sobre la consola, consulta Consola de administración de Bindplane. Este componente también se conoce como consola de administración de la canalización de observabilidad (OP) de Bindplane o consola de administración de Bindplane.
Ediciones de Google de BindPlane
BindPlane ofrece dos ediciones especialmente para Google: BindPlane (Google Edition) y BindPlane Enterprise (Google Edition).
BindPlane (edición de Google)
Bindplane (Google Edition) se proporciona a todos los clientes de Google SecOps.
Para obtener orientación adicional, consulta los siguientes recursos:
- Para obtener información sobre las instalaciones locales, consulta Implementaciones locales.
- Para obtener más información, consulta Observabilidad y seguridad líderes en la industria con tecnología de OpenTelemetry.
Puedes usar Bindplane (Google Edition) de forma autónoma en la nube de Bindplane.
Para obtener información sobre cómo comenzar a instalar y alojar por tu cuenta BindPlane (edición de Google), consulta BindPlane (edición de Google).
Bindplane Enterprise (Google Edition): Para clientes de Google SecOps Enterprise Plus
Bindplane Enterprise (Google Edition) se incluye para los clientes de Google SecOps Enterprise Plus.
Se recomienda Bindplane Enterprise (edición de Google) para implementaciones a gran escala.
Comunícate con el equipo de tu Cuenta de Google para obtener la clave de licencia de Bindplane Enterprise (edición de Google).
Ediciones de BindPlane de Google: diferencias
En la siguiente tabla, se enumeran las diferencias entre las ediciones de Bindplane Google:
Funciones | BindPlane (edición de Google) | BindPlane Enterprise (edición de Google) |
---|---|---|
Costo | Se incluye sin cargo adicional para todos los clientes de Google SecOps | Se incluye sin cargo 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 |
Filtros | Filtro básico con expresión regular | Procesadores de filtrado avanzado (por ejemplo, filtrar por condición, campo, gravedad, etcétera), reducción de datos, muestreo de registros, eliminación de duplicados |
Ocultamiento | N/A | Enmascaramiento de PII |
Transformación | Agregar campo, mover campo, analizar datos (KV, JSON, CSV, XML, marca de tiempo, análisis por expresión regular), cambiar nombre de campo, separador de eventos | Incluye todas las capacidades compatibles con Bindplane (edición de Google) y los campos borrar, borrar valores vacíos y coalescer. |
Funciones generales a nivel de la plataforma | Puerta de enlace (agrega datos de los agentes), agentes de Bindplane para la recopilación, capa de administración de Bindplane para la recopilación local o alojada en la nube, todas las fuentes, supervisión silenciosa del host a través del procesador de SecOps, cola persistente, enriquecimiento de la telemetría, HA, RBAC, compatibilidad con ambas APIs de ingestión de SecOps, ofuscación de credenciales, administración avanzada de la flota, incluido el agrupamiento de agentes, asignación dinámica de tipos de registros | Todas las capacidades admitidas en BindPlane (edición de Google) |
Consola de administración de Bindplane
El uso de la consola de Bindplane Management es opcional. Muchos clientes de Google SecOps usan BindPlane Server.
La consola de administración de BindPlane ofrece las siguientes funciones clave:
- Administración centralizada La consola te permite administrar todas tus implementaciones del recopilador de OTel en Google Cloud. Puedes ver el estado de cada implementación, así como realizar tareas de administración comunes, como iniciar, detener y reiniciar recopiladores.
- Supervisión en tiempo real La consola proporciona supervisión en tiempo real de tus implementaciones del recopilador de OTel. Puedes hacer un seguimiento de métricas como el uso de CPU, el uso de memoria y la capacidad de procesamiento, así como ver registros y seguimientos para solucionar problemas.
- Alertas y notificaciones. La consola te permite configurar alertas y notificaciones para eventos importantes, como cuando un recopilador deja de funcionar o cuando se supera un umbral de métricas.
- Administración de configuración La consola te permite administrar de forma centralizada la configuración de tus recopiladores de OTel. Puedes editar archivos de configuración, establecer variables de entorno y aplicar políticas de seguridad a todas tus implementaciones.
- Integración con Google Cloud Puedes crear y administrar implementaciones de recopiladores de OTel en Google Cloud y usar la consola para acceder a tus recursos de Google Cloud . Google Cloud
Arquitectura del agente de BindPlane
El agente de Bindplane se puede ejecutar en Linux o Docker como un servidor web ligero sin dependencias externas.
BindPlane usa el recopilador de BDOT para estandarizar la administración de telemetría con el Protocolo de administración de agentes abierto (OpAMP). También puedes crear y administrar distribuciones personalizadas de OpenTelemetry Collector con Bindplane.
Para obtener más información sobre la arquitectura de implementación de los recopiladores de OpenTelemetry de Bindplane, consulta Recopilador de OTel de Bindplane.
En las siguientes secciones, se describen las opciones de arquitectura disponibles.
Los agentes de recopilación envían registros a un agente de recopilación que actúa como puerta de enlace.
Para implementaciones a gran escala, te recomendamos que uses agentes de Bindplane Enterprise (edición de Google) que actúen como puertas de enlace. Estas puertas de enlace reciben datos de telemetría de otros recopiladores a través de la red, realizan un procesamiento adicional opcional y enrutan los datos a Google SecOps.
Un agente de recopilación que actúa como puerta de enlace usa el mismo archivo binario que todos los demás agentes de recopilación.
En el siguiente diagrama, se muestran los agentes de recopilación que envían registros a un agente de recopilación que actúa como puerta de enlace.
Los agentes de recopilación envían registros directamente a la API de transferencia de Google SecOps
En el siguiente diagrama, se muestran los agentes de recopilación que envían registros directamente a la API de transferencia de SecOps de Google.
Los agentes de recopilación envían registros directamente a Cloud Logging
En el siguiente diagrama, se muestran los agentes de recopilación que envían registros directamente a Cloud Logging.
Los agentes de recopilación envían registros a varios destinos
En el siguiente diagrama, se muestran los agentes de recopilación que envían registros a varios destinos.
Tipos de implementación de Bindplane
Bindplane ofrece opciones de implementación en la nube y en las instalaciones.
Implementaciones locales
El uso del servidor de Bindplane local se rige por las Condiciones del Servicio deGoogle Cloud existentes.
Implementaciones locales de Linux
Puedes instalar el servidor de Bindplane local en Linux ejecutando una secuencia de comandos (recomendado) o descargando un archivo binario y realizando la instalación de forma manual. Para obtener más información, consulta Cómo instalar Bindplane Server.
Para instalar el servidor de Bindplane local en Linux con una secuencia de comandos, haz lo siguiente:
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 que te guiarán por la inicialización del servidor.
Para instalar el servidor de Bindplane local en Linux con un archivo binario, haz lo siguiente:
Descarga uno de los siguientes archivos:
Actualiza el archivo de configuración según las instrucciones que se indican en Cómo configurar el servidor de Bindplane.
Implementaciones locales de Docker
Para obtener más información, consulta Cómo instalar Bindplane Server.
Linux
Distribuciones de Linux:
- Red Hat, CentOS, Oracle Linux 7, 8 y 9
- Debian 11 y 12
- Ubuntu LTS 20.04 y 22.04
- SUSE Linux 12 y 15
- Alma y Rocky Linux
Para obtener más información, consulta lo siguiente:
Imágenes de contenedores de Docker
Puedes encontrar imágenes de contenedores de 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, la versión v1.35.0 tendrá la etiqueta observiq/bindplane-ee:1.35.0
.
Requisitos y recomendaciones técnicos
En esta sección, se describen los requisitos y las recomendaciones técnicos para instalar y ejecutar Bindplane con Google SecOps.
Requisitos de ancho de banda
Bindplane mantiene conexiones de red para lo siguiente:
- Administración de recopiladores
- Mediciones de la capacidad de procesamiento del recopilador
- Interfaces de usuario web y de línea de comandos
Requisitos de conectividad
De forma predeterminada, Bindplane escucha en el puerto 3001. Este puerto se puede configurar.
El puerto de Bindplane se usa para lo siguiente:
- Comando y control del recopilador con OpAMP (WebSocket)
- Solicitudes de medición del rendimiento del recopilador (solicitud HTTP
POST
) - Usuarios del navegador y la CLI (HTTP y WebSocket)
Los recopiladores deben poder iniciar conexiones a Bindplane para OpAMP (WebSocket) y mediciones de rendimiento (HTTP).
Bindplane nunca inicia conexiones con los recopiladores. Puedes configurar un firewall para evitar que Bindplane llegue a las redes de recopiladores. Sin embargo, las redes de recopiladores deben poder llegar a Bindplane en el puerto configurado.
Requisitos técnicos generales del recopilador de Bindplane
Para obtener información sobre los requisitos técnicos generales del recopilador de BindPlane, consulta lo siguiente:
- Bindplane OTel collector en GitHub
- Instala y desinstala colectores de BindPlane
- Requisitos previos para la instalación
- Lineamientos para el ajuste de tamaño y el escalamiento de recopiladores
Requisitos de recursos del recopilador
Los requisitos de recursos de Bindplane varían según la cantidad de recopiladores administrados. A medida que aumenta la cantidad de recopiladores administrados, también aumentan el uso de CPU, la memoria, la capacidad de procesamiento/IOPS del disco y el consumo de red.
Usa la siguiente tabla para determinar el tamaño de la capacidad de CPU, memoria y almacenamiento:
Recuento de recopiladores | Nodos de Bindplane | Tolerancia a errores | Núcleos de CPU | Memoria | Base de datos |
---|---|---|---|---|---|
Entre 1 y 100 | 1 | N/A | 2 | 4 GB | bbolt |
De 100 a 25,000 | 1 | N/A | 4 | 16 GB | postgres |
1-60,000 | 3 | 1 | 2 | 8 GB | postgres |
De 60,001 a 125,000 | 5 | 1 | 2 | 8 GB | postgres |
De 125,001 a 250,000 | 10 | 2 | 2 | 8 GB | postgres |
Planifica la instalación y la implementación
En las siguientes secciones, se incluyen recomendaciones y prácticas recomendadas que debes tener en cuenta cuando planifiques la implementación de Bindplane.
Considera la escalabilidad y la tolerancia a errores
Los recopiladores de puerta de enlace reciben datos de telemetría a través de la red. Te recomendamos que los vincules con un balanceador de cargas para proporcionar tolerancia a fallas y escalamiento horizontal.
Se prefiere el ajuste de escala horizontal porque proporciona tolerancia a errores y puede eliminar los cuellos de botella del exportador.
Calcula cuántos recolectores necesitas
Cuando calcules la cantidad de recopiladores necesarios para tu carga de trabajo, ten en cuenta el rendimiento o la tasa de registros previstos, y usa la siguiente tabla. En esta tabla, se supone que cada recopilador tiene cuatro núcleos de CPU y 16 GB de memoria. La tabla no incluye cálculos con procesadores; cuando se agregan procesadores, aumentan los requisitos de procesamiento.
Capacidad de procesamiento de la telemetría | Registros por segundo | Recopiladores |
---|---|---|
5 GB/m | 250,000 | 2 |
10 GB/m | 500,000 | 3 |
20 GB/m | 1,000,000 | 5 |
100 GB/m | 5,000,000 | 25 |
Aprovisiona en exceso la flota de recopiladores para lograr tolerancia a errores
Aprovisiona en exceso la flota de recopiladores para garantizar la tolerancia a errores. En caso de que uno o más sistemas recopiladores fallen o se desconecten para realizar tareas de mantenimiento, los recopiladores restantes deben tener suficiente capacidad para administrar el rendimiento de la telemetría.
Si trabajas con una cantidad fija de recopiladores, puedes implementar el ajuste de escala vertical de su CPU y memoria para aumentar el rendimiento.
Reducir la sobrecarga de procesamiento
En general, es mejor que tus recopiladores realicen la menor cantidad de trabajo posible. Si tienes requisitos de procesamiento exigentes, puede ser útil descargar ese procesamiento en una flota de recopiladores de puerta de enlace. Por ejemplo, en lugar de filtrar la telemetría con una operación costosa de expresión regular, puedes hacer que los recopiladores de la puerta de enlace realicen esa tarea. Por lo general, los recopiladores de puerta de enlace se ejecutan en un sistema dedicado. Esto justifica la sobrecarga de procesamiento, ya que no consume la potencia de procesamiento de otros servicios que se ejecutan en el mismo sistema, a diferencia de un recopilador que no es de puerta de enlace y que puede ejecutarse en un servidor de bases de datos.
Prácticas recomendadas para el modo de puerta de enlace
Cuando usas un agente de recopilación de Bindplane como puerta de enlace, es decir, en el modo de puerta de enlace, planifica tu implementación con las siguientes prácticas recomendadas:
- Coloca al menos dos recopiladores detrás de un balanceador de cargas.
- Cada recopilador debe tener un mínimo de dos núcleos.
- Cada recopilador debe tener un mínimo de 8 GB de memoria.
- Cada recopilador debe tener 60 GB de espacio utilizable para una cola persistente.
Usa un balanceador de cargas cuando sea necesario
Se requiere un balanceador de cargas cuando Bindplane se opera en modo de alta disponibilidad.
Cuando usas un agente de recopilación de Bindplane en el modo de puerta de enlace, usa un balanceador de cargas para aumentar el rendimiento y la redundancia. El balanceo de cargas también permite el escalamiento horizontal de tu flota de puertas de enlace y la capacidad de resistir fallas sin causar interrupciones.
El agente de recopilación de Bindplane puede funcionar con una amplia variedad de balanceadores de cargas cuando opera en el modo de puerta de enlace. En este documento, no se analizan opciones específicas, ya que la mayoría de las soluciones de balanceo de cargas populares admiten las funciones necesarias para operar de manera confiable varios recopiladores.
Para obtener más información, consulta Load Balancer.
Puerto y protocolos de balanceo de cargas
De forma predeterminada, Bindplane escucha en el puerto 3001.
Para admitir la amplia variedad de receptores basados en la red en OpenTelemetry, el balanceador de cargas debe admitir lo siguiente:
- Protocolos de transporte TCP/UDP
- Protocolos de aplicación HTTP y gRPC
Dimensionamiento del balanceo de cargas
Para lograr la máxima tolerancia a fallas, los nodos de Bindplane no deben administrar más de 30,000 recopiladores. Cada recopilador abre dos conexiones a Bindplane (una para la administración remota de OpAMP y otra para publicar métricas de rendimiento). Este límite ayuda a garantizar que no superes el límite de conexiones de aproximadamente 65,535 por instancia de backend que imponen la mayoría de los balanceadores de cargas.
Si una organización tiene 100,000 recopiladores, un tamaño de clúster de tres sería insuficiente. Cada nodo sería responsable de aproximadamente 33,000 recopiladores, lo que se traduce en 66,000 conexiones TCP por instancia de Bindplane. Esta situación empeora si se desconecta un nodo para realizar tareas de mantenimiento, ya que cada instancia restante de Bindplane administraría 50,000 recopiladores o 100,000 conexiones TCP.
Prácticas recomendadas para determinar el tamaño del balanceo de cargas
- Implementa verificaciones de estado. Configura el balanceador de cargas para asegurarte de que el recopilador esté listo para recibir tráfico.
- Distribuye las conexiones de manera uniforme. Las conexiones deben distribuirse de manera uniforme entre los colectores.
Admite los protocolos necesarios. Para admitir la amplia variedad de receptores basados en la red en OpenTelemetry, el balanceador de cargas 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 recopilador.
Balanceo de cargas basado en el tipo de fuente
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 cargas, incluidos los siguientes:
- OTLP
- Syslog
- TCP/UDP
- HEC de Splunk
- Fluent Forward
Usa el modo de alta disponibilidad en entornos de producción
Puedes implementar una instancia de Bindplane en una configuración de instancia única o de varias instancias. Para las implementaciones de producción que requieren alta disponibilidad (HA) y resiliencia, te recomendamos que uses un modelo de implementación de varias instancias (HA).
Cuando Bindplane administra más de 25,000 recopiladores, te recomendamos que lo ejecutes en modo de alta disponibilidad (HA).
Para obtener más información sobre la HA en BindPlane, consulta Alta disponibilidad.
Calcula la cantidad de recopiladores y servidores de Bindplane para la HA
Cuando ejecutas BindPlane en modo de HA, debes tener en cuenta cuántos recopiladores esperas que controle cada servidor de BindPlane.
Toma la cantidad total de instancias de Bindplane y réstale la cantidad máxima de nodos que esperas que dejen de estar disponibles debido al mantenimiento. Asegúrate de que cada nodo administre no más de 30,000 recopiladores durante una interrupción del nodo.
Postgres para HA
Postgres es un requisito previo cuando ejecutas Bindplane en modo de HA.
Prometheus para HA
Prometheus es obligatorio cuando ejecutas Bindplane en modo de HA.
Para obtener más información, consulta Prometheus.
Bus de eventos para HA
Bindplane usa un bus de eventos para comunicarse entre los componentes dentro de Bindplane. Cuando ejecutas BindPlane en modo de HA, puedes usar el bus de eventos para enviar eventos entre los servidores de BindPlane.
Para obtener más información, consulta Event Bus.
Usa una implementación de una sola instancia para un entorno de pruebas o una prueba de concepto
Para un entorno de prueba 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 tus sistemas de recopilación, puedes mantenerlas exclusivamente en los recopiladores de la puerta de enlace. Esto simplifica la rotación de credenciales y reduce la superficie de ataque de seguridad, ya que limita la implementación de credenciales a un subconjunto de tus sistemas.
Protege con firewall los recopiladores de la puerta de enlace
Puedes colocar recopiladores de puerta de enlace dentro de una red perimetral, protegida por un firewall de la red interna. Puedes configurar tu red para permitir que tus otros recopiladores reenvíen datos a los recopiladores de puerta de enlace y, al mismo tiempo, bloquear el acceso de los recopiladores de puerta de enlace a la red de tu aplicación. Esto te permite enviar telemetría a un backend basado en la nube sin otorgar a tus extremos acceso directo a Internet.
El firewall debe permitir que el tráfico HTTP llegue a Bindplane en el puerto configurado.
Verifica la configuración del firewall
Cualquier firewall o proxy autenticado entre el agente y la Internet requiere 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 |
Usa 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 HA.
La cantidad de núcleos de CPU y la memoria disponible suelen limitar el rendimiento de los back-ends de almacenamiento de PostgreSQL. Recomendamos respaldar el almacenamiento de PostgreSQL con almacenamiento de baja latencia y alta capacidad de procesamiento, como unidades de estado sólido (SSD).
Recuento de recopiladores | Núcleos de CPU | Memoria |
---|---|---|
1-60,000 | 4 | 16 GB |
De 60,001 a 125,000 | 8 | 32 GB |
De 125,001 a 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 del almacén de Postgres
- Configuración de TLS de Postgres
Implementa 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 LDAP de Azure y Cómo 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.
Instala la consola de administración de BindPlane
La mayoría de los clientes de SecOps de Google usan la consola de Bindplane Management. Si la vas a instalar, debes tener acceso a storage.googleapis.com
. Si solo instalas el agente, no se requiere este acceso.
Bindplane Cloud también está disponible para los clientes de Google. Descarga la versión gratuita y envía un correo electrónico a support@bindplane.com para solicitar una actualización a la versión compatible con Google.
Existen tres formas de implementar la consola de administración de Bindplane:
- Bindplane Cloud: Es la oferta de SaaS de Bindplane para Bindplane Server.
- Descarga e instala en un host de Linux: Disponible como paquete DEB, paquete RPM o imagen de Docker.
- Instala y aprovisiona desde Google Cloud Marketplace.
Instala el agente de BindPlane
En esta sección, se describe cómo instalar el agente de Bindplane para Google SecOps en diferentes sistemas operativos del host.
Por lo general, los recopiladores de agentes usan recursos mínimos. Sin embargo, cuando manejes grandes volúmenes de registros, ten en cuenta el consumo de recursos para evitar afectar otros servicios. Para obtener más información, consulta Requisitos y recomendaciones técnicos, Planifica tu instalación y tu implementación y Tamaño y escalamiento del agente.
Para obtener más información sobre cómo instalar el agente de OTel, consulta Instala y desinstala colectores de BindPlane.
Para instalar el agente, necesitas lo siguiente:
Archivo de autenticación de transferencia de Google SecOps
Para descargar el archivo de autenticación, sigue estos pasos:
- Abre la consola de Google SecOps.
- Ve a Configuración del SIEM > Agente de recopilación.
- Descarga el archivo de autenticación de transferencia de Google SecOps.
ID de cliente de Google SecOps
Para encontrar el ID del cliente, sigue estos pasos:
- Abre la consola de Google SecOps.
- Ve a SIEM Settings > Profile.
- Copia el ID del cliente de la sección Detalles de la organización.
Windows 2012 SP2 o versiones posteriores o host de Linux con systemd
Conexión a Internet
Acceso a GitHub
Herramientas de implementación
En esta sección, se describen las herramientas de implementación de Bindplane.
GitOps
Implementa recursos de Bindplane con un modelo de 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
- Cómo exportar recursos existentes
- Administra valores sensibles
- Cómo establecer un flujo de trabajo de GitHub Actions
- Instrucciones paso a paso para confirmar y probar la configuración, habilitar lanzamientos automáticos y actualizar recursos con ediciones directas o el método de exportación de la IU
- Actualización de valores sensibles y uso de RBAC
Para obtener más información, consulta GitOps.
Ansible
Para obtener información sobre la implementación de Bindplane con Ansible, consulta bindplane-agent-ansible.
CLI de Bindplane
Para obtener información sobre la CLI de Bindplane, consulta GitOps.
Terraform
Si deseas obtener información para usar Terraform y configurar tus recursos de Bindplane, consulta Bindplane Provider.
Kubernetes
Para obtener información sobre Kubernetes con Bindplane, consulta lo siguiente:
Instala el agente de Bindplane en Windows
Para instalar el agente de Bindplane en Windows, ejecuta el siguiente comando de PowerShell:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
También puedes descargar el instalador más reciente para Windows si quieres instalarlo con un asistente de instalación. Después de descargar el instalador, abre el asistente de instalación y sigue las instrucciones para configurar e instalar el agente de Bindplane.
Para obtener más información sobre la instalación del agente de BindPlane en Windows, consulta Instalación en Windows.
Instala el agente de BindPlane en Linux
Puedes instalar el agente en Linux con 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 existente.
Para instalar con la secuencia de comandos de instalación, ejecuta la siguiente secuencia de comandos:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Para obtener más información sobre cómo configurar el recopilador, consulta bindplane-otel-collect.
Instalación desde un paquete local
Para instalar el agente desde un paquete local, usa -f
con la ruta de acceso 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 para tu arquitectura desde la página de versiones y, luego, 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
Reemplaza VERSION
por la versión del paquete que descargaste.
Instalación de DEB
Descarga el paquete DEB para tu arquitectura desde la página de versiones y, luego, instálalo 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
Reemplaza VERSION
por la versión del paquete que descargaste.
Para obtener más información, consulta Instalación del agente de Bindplane.
Configura el agente de BindPlane
Después de instalar el agente, se ejecuta el servicio observiq-otel-collector
y está listo para la configuración.
Puedes configurar el agente de forma manual o con la consola de Bindplane Management.
Si configuras el agente de forma manual, debes actualizar los parámetros del exportador para asegurarte de que el agente se autentique con Google SecOps.
Archivo de configuración del recopilador de OTel
En Linux, el archivo de configuración del recopilador se encuentra en /opt/observiq-otel-collector/config.yaml
.
Servicio y registros del recopilador de OTel
De forma predeterminada, el agente registra en C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log
.
El registro de errores estándar para el proceso del agente se puede encontrar en C:\Program Files\observIQ OpenTelemetry Collector\log\observiq_collector.err
.
Para obtener más información sobre cómo configurar el recopilador, consulta bindplane-otel-collect.
En Linux, para ver los registros del recopilador, ejecuta sudo tail -F /opt/observiq-otel-collector/log/collector.log
.
Comandos comunes del servicio del recopilador de OTel de Linux:
Para detener el servicio del recopilador 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 recopilador de OTel, ejecuta
sudo systemctl restart observiq-otel-collector
.Para habilitar el servicio del recopilador de OTel en el inicio, ejecuta
sudo systemctl enable observiq-otel-collector
.
Reinicia el servicio del agente para aplicar los cambios en la configuración
Cuando cambies la configuración, debes reiniciar el servicio del agente para que los cambios de configuración surtan efecto (sudo systemctl restart observiq-otel-collector
).
Usa un archivo de configuración de muestra predeterminado
De forma predeterminada, el archivo de configuración del agente se encuentra en C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
.
Puedes descargar un archivo de configuración de muestra y un token de autenticación que usa el agente desde la consola de Google SecOps > SIEM Settings > Collection Agent.
Personaliza las siguientes dos secciones en el archivo de configuración:
- Receptor: Especifica qué registros debe recopilar el agente y enviar a Google SecOps.
- Exporter: Especifica el destino al que el agente envía los registros.
Se admiten los siguientes exportadores:
- Exportador de Google SecOps: Envía registros directamente a la API de transferencia de Google SecOps.
- Google SecOps forwarder exporter: Envía registros al reenvío de Google SecOps.
- Exportador de Cloud Logging: Envía registros a Cloud Logging.
En el exportador, personaliza lo siguiente:
customer_id
: Es tu ID de cliente de Google SecOps.endpoint
: Es tu extremo regional de Google SecOps.creds
: Es tu token de autenticación.Como alternativa, puedes usar
creds_file_path
para hacer referencia al archivo de credenciales directamente. Para la configuración de Windows, escapa la ruta de acceso con barras inversas.log_type
: Tipo de registro. Te recomendamos que selecciones WINDOWS_DNS como el Tipo de registro.ingestion_labels
: Etiquetas de transferencia. Estas etiquetas identifican los registros en Google SecOps.namespace
: Es un espacio de nombres opcional.Cada tipo de registro requiere que configures un exportador.
Muestras de configuración de recopilación de registros
En las siguientes secciones, se incluyen muestras de configuración para la recopilación de registros.
Envía eventos de Windows y Sysmon directamente a Google SecOps
Configura estos parámetros en la muestra:
-
namespace
ingestion_labels
log_type
customer_id
creds
Configuración de ejemplo
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]
Envía eventos de Windows y syslog directamente a Google SecOps
Configura estos parámetros en la muestra:
windowseventlogreceiver
tcplogreceiver
listen_address
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
creds
Configuración de ejemplo
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
Envía eventos de Windows y syslog al reenvío de Google SecOps
Configura estos parámetros en la muestra:
windowseventlogreceiver
tcplogreceiver
listen_address
chronicleforwarder
endpoint
Configuración de ejemplo
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
Envía registros del sistema directamente a Google SecOps
Configura estos parámetros en la muestra:
tcplogreceiver
listen_address
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
Creds
Configuración de ejemplo
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
Recopila eventos de Windows de forma remota y envíalos directamente a Google SecOps
Configura estos parámetros en la muestra:
windowseventlogreceiver
username
password
server
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
creds
Configuración de ejemplo
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
Envía datos a Cloud Logging
Configura el parámetro credentials_file
en la muestra.
Configuración de ejemplo
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 la muestra:
sqlqueryreceiver
chronicleexporter
namespace
ingestion_labels
log_type
customer_id
creds
Configuración de ejemplo
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
Descarta los registros que coinciden con una expresión regular
Puedes configurar el recopilador para que descarte los registros que coincidan con una expresión regular. Esto es ú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, agrega 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 en función de la expresión regular. Si la función devuelve true
, se descarta el registro.
En el siguiente ejemplo de configuración, se descartan 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 cualquier patrón que necesites. La función IsMatch
usa la sintaxis de expresión regular RE2.
Configuración de ejemplo
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 agrega 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]
Operación y mantenimiento de BindPlane
En esta sección, se describen las acciones de operación y mantenimiento de rutina.
Verifica una configuración de OTel
Para obtener información sobre cómo verificar la configuración de OTel de Bindplane, consulta OTelBin.
Actualizaciones de lanzamientos de recopiladores
BindPlane puede sondear bindplane-otel-collector/releases para detectar nuevas versiones del recopilador. Esta función es opcional.
Puedes inhabilitar la sondeo de GitHub configurando agentVersions.syncInterval
como 0
en tu configuración de Bindplane:
agentVersions:
syncInterval: 0
Copia de seguridad y recuperación ante desastres
Para obtener información sobre la copia de seguridad y la recuperación ante desastres con BindPlane, consulta Recursos de BindPlane.
Copia de seguridad y recuperación ante desastres de PostgreSQL
Para obtener información sobre la copia de seguridad y la recuperación ante desastres de PostgreSQL con Bindplane, consulta la documentación de PostgreSQL.
Copia de seguridad y recuperación ante desastres de BBolt
Para obtener información sobre la copia de seguridad y la recuperación ante desastres de BBolt (obsoleto) con BindPlane, consulta la documentación de BBolt Store.
Resiliencia y reintento
De forma predeterminada, se habilita el reintento en todos los destinos que lo admiten. De forma predeterminada, las solicitudes que fallaron se reintentan después de cinco segundos y se retiran progresivamente hasta por 30 segundos. Después de cinco minutos, las solicitudes se quitan de forma permanente.
Para obtener más información, consulta Resistencia del recopilador.
Cómo reducir el volumen de registros con el filtro de gravedad
Para obtener información sobre cómo reducir el volumen de registros, consulta Reduce el volumen de registros con el filtro de gravedad.
Integraciones de Bindplane con agentes de terceros
Si bien BindPlane es más potente cuando usas el agente de BindPlane para la recopilación en el borde, en la mayoría de los casos, BindPlane puede permanecer dentro de tu infraestructura existente. 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 los siguientes recursos:
Integraciones de Bindplane con otros agentes externos
Para obtener información sobre las integraciones de Bindplane con agentes de terceros, consulta Cómo conectar otros recopiladores de OpenTelemetry con la extensión de OpAMP.
Supervisión silenciosa del host
Para obtener información sobre el uso de Bindplane para la supervisión de hosts silenciosos, consulta lo siguiente:
- Supervisión silenciosa de hosts de Google SecOps
- Configura BindPlane para SHM con Google Cloud Monitoring
Actualiza Bindplane en Linux
Ejecutar el comando de instalación sin la marca --init
al final es suficiente para actualizar Bindplane. Ejecuta este script en tu servidor de Bindplane para actualizar Bindplane. Para obtener más información, consulta Cómo actualizar, cambiar a una versión anterior o desinstalar Bindplane Server.
Supervisa Bindplane
Para obtener información sobre cómo supervisar BindPlane, consulta Supervisión de BindPlane.
Supervisión de Kubernetes
Para obtener información sobre la supervisión de Kubernetes en Bindplane, consulta Supervisión de Kubernetes.
Documentación de referencia adicional
Para obtener más información sobre Bindplane (antes conocido como observIQ), consulta los siguientes recursos:
- Uso de Google SecOps con prácticas recomendadas de Bindplane
- Bindplane Solutions
- Guía de inicio rápido de Bindplane
- Tipos de registros admitidos para Google Cloud
- Filter by Condition Processor
- Fuentes disponibles para BindPlane
¿Necesitas más ayuda? Obtén respuestas de miembros de la comunidad y profesionales de Google SecOps.