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 agente de Bindplane de la distribución de Bindplane para OpenTelemetry (BDOT), agente de recogida, recogedor o agente.
- Servidor de Bindplane. Una plataforma integral y unificada para gestionar tus implementaciones de colectores de OTel. Estas implementaciones pueden residir en Google SecOps y Google Cloud. Bindplane Server se puede ejecutar de forma local o en la nube de Bindplane. Para obtener más información sobre la consola, consulta Consola de gestión de Bindplane. Este componente también se conoce como consola de gestión de la canalización de observabilidad de Bindplane (OP) o consola de gestión de Bindplane.
Ediciones de Google de Bindplane
Bindplane ofrece dos ediciones especialmente diseñadas para Google: Bindplane (Google Edition) y Bindplane Enterprise (Google Edition).
Bindplane (edición de Google)
Bindplane (edición de Google) se ofrece a todos los clientes de Google SecOps.
Para obtener más información, consulta los siguientes recursos:
- Para obtener información sobre las instalaciones locales, consulta Despliegues locales.
- Para obtener más información, consulta Observabilidad y seguridad líderes del sector con la tecnología de OpenTelemetry.
Puedes usar Bindplane (edición de Google) en la nube de Bindplane.
Para saber cómo empezar a instalar y autohostear Bindplane (edición de Google), consulta Bindplane (edición de Google).
Bindplane Enterprise (edición de Google): para clientes de Google SecOps Enterprise Plus
Bindplane Enterprise (edición de Google) se incluye para los clientes de Google SecOps Enterprise Plus.
Bindplane Enterprise (Google Edition) se recomienda para implementaciones a gran escala.
Ponte en contacto con el equipo de tu cuenta de Google para obtener la clave de licencia de Bindplane Enterprise (edición de Google).
Ediciones de Google de Bindplane: diferencias
En la siguiente tabla se enumeran las diferencias entre las ediciones de Google de Bindplane:
Funciones | Bindplane (edición de Google) | Bindplane Enterprise (edición de Google) |
---|---|---|
Coste | Incluido sin coste adicional para todos los clientes de Google SecOps | Incluido sin coste adicional para los clientes de Google SecOps Enterprise Plus |
Rutas y destinos | Solo Google, incluidos Google SecOps, Cloud Logging, BigQuery y Cloud Storage a través de Google SecOps | Google, incluidos 12 meses de enrutamiento a un destino que no sea de Google para las migraciones de SIEM |
Filtrar | Filtro básico con expresión regular | Procesadores de filtrado avanzado (por ejemplo, filtrar por condición, campo, gravedad, etc.), reducción de datos, muestreo de registros y desduplicación |
Redacción | N/A | Enmascaramiento de IIP |
Transformación | Añadir campo, mover campo, analizar datos (clave-valor, JSON, CSV, XML, marca de tiempo, analizar por expresión regular), cambiar nombre de campo, separador de eventos | Incluye todas las funciones compatibles con Bindplane (edición de Google) más los campos de eliminación, los valores vacíos y la fusión. |
Funciones generales a nivel de plataforma | Gateway (agrega datos de agentes), agentes de Bindplane para la recogida, capa de gestión de Bindplane para entornos on-premise o alojados en la nube, todas las fuentes, monitorización de hosts silenciosos a través del procesador de SecOps, cola persistente, enriquecimiento de telemetría, alta disponibilidad, control de acceso basado en roles, compatibilidad con ambas APIs de ingestión de SecOps, ofuscación de credenciales y gestión avanzada de flotas, incluida la agrupación de agentes y la asignación dinámica de tipos de registro. | Todas las funciones admitidas en Bindplane (edición de Google) |
Consola de gestión de Bindplane
El uso de la consola de gestión de Bindplane es opcional. Muchos clientes de Google SecOps usan Bindplane Server.
La consola de gestión de Bindplane ofrece las siguientes funciones clave:
- Gestión centralizada. La consola te permite gestionar todas tus implementaciones de colectores de OTel en Google Cloud. Puedes ver el estado de cada implementación, así como realizar tareas de gestión habituales, como iniciar, detener y reiniciar colectores.
- Monitorización en tiempo real. La consola proporciona una monitorización en tiempo real de tus implementaciones de colectores de OTel. Puedes monitorizar métricas como el uso de la CPU, el uso de la memoria y el rendimiento, así como ver registros y trazas para solucionar problemas.
- Alertas y notificaciones. La consola te permite configurar alertas y notificaciones para eventos importantes, como cuando un recopilador deja de funcionar o cuando se supera un umbral de métrica.
- Gestión de la configuración. La consola te permite gestionar de forma centralizada la configuración de tus colectores de OTel. Puedes editar archivos de configuración, definir variables de entorno y aplicar políticas de seguridad a todas tus implementaciones.
- Integración con Google Cloud Puedes crear y gestionar implementaciones del recolector de OTel en Google Cloud y usar la consola para acceder a tus recursos de Google Cloud .
Arquitectura del agente de Bindplane
Bindplane Agent se puede ejecutar en Linux o Docker como un servidor web ligero sin dependencias externas.
Bindplane usa el recopilador de BDOT para estandarizar la gestión de la telemetría con el protocolo de gestión de agentes abierto (OpAMP). También puedes crear y gestionar distribuciones personalizadas de OpenTelemetry Collector con Bindplane.
Para obtener más información sobre la arquitectura de implementación de los recopiladores de Bindplane OpenTelemetry, consulta Recopilador de Bindplane OTel.
En las siguientes secciones se describen las opciones de arquitectura disponibles.
Los agentes de recogida envían registros a un agente de recogida que actúa como pasarela
En las implementaciones a gran escala, te recomendamos que utilices agentes de Bindplane Enterprise (edición de Google) que actúen como pasarelas. Estas pasarelas reciben telemetría de otros colectores a través de la red, realizan un procesamiento adicional (opcional) y dirigen los datos a Google SecOps.
Un agente de recogida que actúa como una pasarela usa el mismo archivo binario que todos los demás agentes de recogida.
En el siguiente diagrama se muestra cómo los agentes de recogida envían registros a un agente de recogida que actúa como pasarela.
Los agentes de recogida envían registros directamente a la API de ingestión de Google SecOps
En el siguiente diagrama se muestra cómo los agentes de recogida envían registros directamente a la API de ingestión de Google SecOps.
Los agentes de recogida envían registros directamente a Cloud Logging
En el siguiente diagrama se muestra cómo los agentes de recogida envían registros directamente a Cloud Logging.
Los agentes de recogida envían registros a varios destinos
En el siguiente diagrama se muestran agentes de recogida que envían registros a varios destinos.
Tipos de implementación de Bindplane
Bindplane ofrece opciones de implementación en la nube y on-premise.
Despliegues on-premise
El uso del servidor Bindplane local se rige por los Google Cloud Términos del Servicio.
Despliegues on-premise de Linux
Puedes instalar el servidor Bindplane local en Linux ejecutando una secuencia de comandos (recomendado) o descargando un archivo binario e instalándolo manualmente. Para obtener más información, consulta Instalar Bindplane Server.
Para instalar el servidor Bindplane local en Linux con una secuencia de comandos, sigue estos pasos:
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, haz lo siguiente:
Descarga uno de los siguientes archivos:
Actualice el archivo de configuración siguiendo las instrucciones de Configurar el servidor de Bindplane.
Despliegues locales de Docker
Para obtener más información, consulta Instalar Bindplane Server.
Linux
Distribuciones de Linux:
- Red Hat, CentOS y Oracle Linux 7, 8 y 9
- Debian 11 y 12
- Ubuntu LTS 20.04 y 22.04
- SUSE Linux 12 y 15
- Alma y Rocky Linux
Para obtener más información, consulta lo siguiente:
Imágenes de contenedor Docker
Puede encontrar imágenes de contenedor Docker de Bindplane en las siguientes ubicaciones:
- Paquetes de GitHub:
ghcr.io/observiq/Bindplane-ee
- Repositorio de artefactos de Google:
us-central1-docker.pkg.dev/observiq-containers/bindplane/bindplane-ee
- Docker Hub:
observiq/bindplane-ee
Las imágenes de contenedor se etiquetan con la versión de lanzamiento. Por ejemplo, el lanzamiento v1.35.0 tendrá la etiqueta observiq/bindplane-ee:1.35.0
.
Requisitos y recomendaciones técnicas
En esta sección se describen los requisitos técnicos y las recomendaciones para instalar y ejecutar Bindplane con Google SecOps.
Requisitos de ancho de banda
Bindplane mantiene conexiones de red para lo siguiente:
- Gestión de recopiladores
- Mediciones del rendimiento del recopilador
- Interfaces de usuario web y de línea de comandos
Requisitos de conectividad
Bindplane escucha en el puerto 3001 de forma predeterminada. Este puerto se puede configurar.
El puerto de Bindplane se usa para lo siguiente:
- Comandos y control de recopiladores mediante OpAMP (WebSocket)
- Solicitudes de medición del rendimiento del recolector (solicitud HTTP
POST
) - Usuarios de navegadores y CLIs (HTTP y WebSocket)
Los colectores deben poder iniciar conexiones con Bindplane para OpAMP (WebSocket) y mediciones de rendimiento (HTTP).
Bindplane nunca inicia conexiones con los colectores. Puedes configurar un cortafuegos para impedir que Bindplane llegue a las redes del recopilador. Sin embargo, las redes del recopilador deben poder acceder a Bindplane en el puerto configurado.
Requisitos técnicos generales del recopilador de Bindplane
Para obtener información sobre los requisitos técnicos generales del recopilador de Bindplane, consulta lo siguiente:
- 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
Los colectores de la pasarela reciben datos de telemetría a través de la red. Te recomendamos que los emparejes con un balanceador de carga para proporcionar tolerancia a fallos y escalado horizontal.
Es preferible el escalado horizontal, ya que proporciona tolerancia a fallos y puede eliminar los cuellos de botella de los exportadores.
Calcular cuántos colectores necesitas
Cuando calcules el número de colectores que necesitas para tu carga de trabajo, ten en cuenta el rendimiento o la tasa de registros previstos y consulta la siguiente tabla. En esta tabla se presupone que cada recopilador tiene cuatro núcleos de CPU y 16 GB de memoria. La tabla no incluye cálculos con procesadores. Cuando se añaden procesadores, los requisitos de computación aumentan.
Rendimiento de la telemetría | Registros/segundo | Recopiladores |
---|---|---|
5 GB/m | 250.000 | 2 |
10 GB/m | 500.000 | 3 |
20 GB/m | 1.000.000 | 5 |
100 GB al mes | 5.000.000 | 25 |
Aprovisionar en exceso la flota de recopiladores para mejorar la tolerancia a fallos
Aprovisiona en exceso la flota de recolectores para asegurar la tolerancia a fallos. Si uno o varios sistemas de recolección fallan o se desconectan para realizar tareas de mantenimiento, los recolectores restantes deben tener capacidad suficiente para gestionar el volumen de telemetría.
Si trabajas con un número fijo de recolectores, puedes implementar un escalado vertical de su CPU y memoria para aumentar el rendimiento.
Reducir la sobrecarga de procesamiento
Por lo general, es recomendable que los recolectores hagan el menor trabajo posible. Si tienes requisitos de procesamiento elevados, puede ser útil delegar ese procesamiento en una flota de recopiladores de puerta de enlace. Por ejemplo, en lugar de filtrar la telemetría con una operación de expresión regular costosa, puede hacer que los colectores de la pasarela realicen esa tarea. Por lo general, los colectores de pasarela se ejecutan en un sistema dedicado. Esto justifica la sobrecarga del procesamiento, ya que no consume la potencia de cálculo de otros servicios que se ejecutan en el mismo sistema, a diferencia de un recopilador que no sea de puerta de enlace y que se pueda ejecutar en un servidor de bases de datos.
Prácticas recomendadas para el modo de pasarela
Si usas un agente de recogida de Bindplane como pasarela (es decir, en modo pasarela), planifica tu implementación siguiendo estas prácticas recomendadas:
- Coloca al menos dos recopiladores detrás de un balanceador de carga.
- Cada recolector debe tener un mínimo de dos núcleos.
- Cada recopilador debe tener un mínimo de 8 GB de memoria.
- Cada recolector debe tener 60 GB de espacio utilizable para una cola persistente.
Usar un balanceador de carga cuando sea necesario
Se necesita un balanceador de carga para usar Bindplane en modo de alta disponibilidad.
Cuando uses un agente de recogida de Bindplane en modo de pasarela, utiliza un equilibrador de carga para aumentar el rendimiento y la redundancia. El balanceo de carga también permite el escalado horizontal de tu flota de pasarelas y la capacidad de resistir fallos sin provocar interrupciones.
El agente de recogida de Bindplane puede funcionar con una amplia gama de balanceadores de carga cuando opera en modo de pasarela. En este documento no se describen opciones específicas, ya que la mayoría de las soluciones de balanceo de carga más populares admiten las funciones necesarias para operar de forma fiable varios colectores.
Para obtener más información, consulta Balanceador de carga.
Puertos y protocolos de balanceo de carga
Bindplane escucha en el puerto 3001 de forma predeterminada.
Para admitir la amplia gama de receptores basados en redes de OpenTelemetry, el balanceador de carga debe admitir lo siguiente:
- Protocolos de transporte TCP/UDP
- Protocolos de aplicación HTTP y gRPC
Dimensionamiento del balanceo de carga
Los nodos de Bindplane no deben gestionar más de 30.000 colectores para maximizar la tolerancia a fallos. Cada recopilador abre dos conexiones a Bindplane (una para la gestión remota de OpAMP y otra para publicar métricas de rendimiento). Este límite ayuda a asegurarse de que no se supere el límite de conexiones de aproximadamente 65.535 por instancia de backend que imponen la mayoría de los balanceadores de carga.
Si una organización tiene 100.000 colectores, un tamaño de clúster de tres sería insuficiente. Cada nodo sería responsable de aproximadamente 33.000 colectores, lo que se traduce en 66.000 conexiones TCP por instancia de Bindplane. Esta situación empeora si se desactiva un nodo para realizar tareas de mantenimiento, ya que cada instancia de Bindplane restante gestionaría 50.000 colectores o 100.000 conexiones TCP.
Prácticas recomendadas para determinar el tamaño del balanceo de carga
- Implementa comprobaciones del estado. Configura el balanceador de carga para asegurarte de que el recopilador esté listo para recibir tráfico.
- Distribuir las conexiones de forma uniforme. Las conexiones deben distribuirse de forma uniforme entre los recolectores.
Admite los protocolos necesarios. Para admitir la amplia gama de receptores basados en redes de OpenTelemetry, el balanceador de carga debe admitir lo siguiente:
- Protocolos de transporte TCP/UDP
- Protocolos de aplicación HTTP y gRPC
Para obtener más información, consulta Resistencia del recolector.
Balanceo de carga por tipo de origen
Cualquier tipo de fuente que reciba telemetría de sistemas remotos a través de la red es un candidato adecuado para el balanceo de carga, incluidos los siguientes:
- OTLP
- Syslog
- TCP/UDP
- Splunk HEC
- Fluent Forward
Usar el modo de alta disponibilidad en entornos de producción
Puedes implementar una instancia de Bindplane en una configuración de una sola instancia o de varias instancias. En las implementaciones de producción que requieren alta disponibilidad y resiliencia, te recomendamos que utilices un modelo de implementación de alta disponibilidad con varias instancias.
Cuando Bindplane gestiona más de 25.000 colectores, te recomendamos que lo utilices en modo de alta disponibilidad.
Para obtener información sobre la alta disponibilidad en Bindplane, consulta Alta disponibilidad.
Calcula el número de colectores y servidores de Bindplane para la alta disponibilidad
Cuando Bindplane funciona en modo de alta disponibilidad, debes tener en cuenta cuántos colectores quieres que gestione cada servidor de Bindplane.
Toma el número total de instancias de Bindplane y resta el número máximo de nodos que crees que no estarán disponibles debido al mantenimiento. Asegúrate de que cada nodo gestione un máximo de 30.000 colectores durante una interrupción del nodo.
Postgres para alta disponibilidad
Postgres es un requisito previo cuando se utiliza Bindplane en modo de alta disponibilidad.
Prometheus para alta disponibilidad
Prometheus es obligatorio cuando se utiliza Bindplane en modo de alta disponibilidad.
Para obtener más información, consulta Prometheus.
Bus de eventos para alta disponibilidad
Bindplane usa un bus de eventos para comunicarse entre los componentes de Bindplane. Cuando Bindplane funciona en modo de alta disponibilidad, puedes usar el bus de eventos para enviar eventos entre servidores de Bindplane.
Para obtener más información, consulta Event Bus.
Usar una implementación de una sola instancia en un entorno de prueba o una prueba de concepto
En un entorno de pruebas o una prueba de concepto, te recomendamos que uses una implementación de una sola instancia.
Para obtener más información, consulta Instancia única.
Aísla las credenciales de backend
En lugar de implementar credenciales en todos los sistemas de recogida, puede mantenerlas exclusivamente en los colectores de la pasarela. De esta forma, se simplifica la rotación de credenciales y se reduce la superficie de ataque de seguridad, ya que la implementación de credenciales se limita a un subconjunto de tus sistemas.
Protege con un cortafuegos tus colectores de pasarela
Puedes colocar colectores de la pasarela en una red perimetral, protegida por un cortafuegos de la red interna. Puede configurar su red para permitir que sus otros recolectores reenvíen datos a los recolectores de la pasarela y, al mismo tiempo, impedir que los recolectores de la pasarela accedan a la red de su aplicación. De esta forma, puedes enviar telemetría a un backend basado en la nube sin conceder a tus endpoints acceso directo a Internet.
El cortafuegos debe permitir que el tráfico HTTP llegue a Bindplane en el puerto configurado.
Verificar la configuración del cortafuegos
Los cortafuegos o proxies autenticados entre el agente e Internet requieren reglas para abrir el acceso a los siguientes hosts:
Tipo de conexión | Destino | Puerto |
---|---|---|
TCP | malachiteingestion-pa.googleapis.com | 443 |
TCP | asia-northeast1-malachiteingestion-pa.googleapis.com | 443 |
TCP | asia-south1-malachiteingestion-pa.googleapis.com | 443 |
TCP | asia-southeast1-malachiteingestion-pa.googleapis.com | 443 |
TCP | australia-southeast1-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west2-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west3-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west6-malachiteingestion-pa.googleapis.com | 443 |
TCP | europe-west12-malachiteingestion-pa.googleapis.com | 443 |
TCP | me-central1-malachiteingestion-pa.googleapis.com | 443 |
TCP | me-central2-malachiteingestion-pa.googleapis.com | 443 |
TCP | me-west1-malachiteingestion-pa.googleapis.com | 443 |
TCP | northamerica-northeast2-malachiteingestion-pa.googleapis.com | 443 |
TCP | accounts.google.com | 443 |
TCP | oauth2.googleapis.com | 443 |
Usar PostgreSQL para las implementaciones de producción
Postgres es obligatorio para las implementaciones de producción de Bindplane.
Postgres es un requisito previo para usar Bindplane en modo de alta disponibilidad.
El número de núcleos de CPU y la memoria disponible suelen limitar el rendimiento de los back-ends de almacenamiento de PostgreSQL. Te recomendamos que hagas una copia de seguridad del almacenamiento de PostgreSQL con un almacenamiento de baja latencia y alto rendimiento, como las unidades de estado sólido (SSD).
Número de recopiladores | Núcleos de CPU | Memoria |
---|---|---|
Entre 1 y 60.000 | 4 | 16 GB |
60.001-125.000 | 8 | 32 GB |
125.001-250.000 | 16 | 64 GB |
Para obtener más información, consulta lo siguiente:
- 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.
Instalar la consola de gestión de Bindplane
La mayoría de los clientes de Google SecOps usan la consola de gestión de Bindplane. Si vas a instalarla, necesitas acceso a storage.googleapis.com
. Si solo vas a instalar el agente, no es necesario que concedas este acceso.
Bindplane Cloud también está disponible para los clientes de Google. Descarga la versión gratuita y envía un correo a support@bindplane.com para solicitar una actualización a la versión compatible con Google.
Hay tres formas de desplegar la consola de gestión de Bindplane:
- Bindplane Cloud: la oferta de SaaS de Bindplane para Bindplane Server.
- Descarga e instala en un host Linux: disponible como paquete DEB, paquete RPM o imagen Docker.
- Instalar y aprovisionar desde Google Cloud Marketplace.
Instalar el agente de Bindplane
En esta sección se describe cómo instalar el agente de Bindplane para Google SecOps en diferentes sistemas operativos host.
Los colectores de agentes suelen usar recursos mínimos. Sin embargo, cuando se gestionan grandes volúmenes de registros, se debe tener en cuenta el consumo de recursos para evitar que afecte a otros servicios. Para obtener más información, consulta Requisitos técnicos y recomendaciones, Planificar la instalación y la implementación y Tamaño y escalado de los agentes.
Para obtener más información sobre cómo instalar el agente de OTel, consulta Instalar y desinstalar colectores de Bindplane.
Para instalar el agente, necesitas lo siguiente:
Archivo de autenticación de la ingestión de Google SecOps
Para descargar el archivo de autenticación, sigue estos pasos:
- 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 agente de Bindplane en Windows
Para instalar el agente de Bindplane en Windows, ejecuta el siguiente comando de PowerShell:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
También puedes usar un asistente de instalación. Para ello, descarga el instalador más reciente para Windows. Después de descargar el instalador, abre el asistente de instalación y sigue las instrucciones para configurar e instalar el agente de Bindplane.
Para obtener más información sobre cómo instalar el agente de Bindplane en Windows, consulta Instalación en Windows.
Instalar el agente de Bindplane en Linux
Puede instalar el agente en Linux mediante una secuencia de comandos que determina automáticamente qué paquete instalar. También puedes usar la misma secuencia de comandos para actualizar una instalación.
Para instalarlo con la secuencia de comandos de instalación, ejecuta la siguiente secuencia de comandos:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Para obtener más información sobre cómo configurar el recolector, consulte bindplane-otel-collect.
Instalación desde un paquete local
Para instalar el agente desde un paquete local, usa -f
con la ruta al paquete.
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh -f path_to_package
Instalación de RPM
Descarga el paquete RPM de tu arquitectura desde la página de lanzamientos e instálalo con rpm
. Consulta el siguiente ejemplo para instalar el paquete amd64
:
sudo rpm -U ./observiq-otel-collector_v${VERSION}_linux_amd64.rpm sudo systemctl enable --now observiq-otel-collector
Sustituye VERSION
por la versión del paquete que has descargado.
Instalación de DEB
Descarga el paquete DEB de tu arquitectura desde la página de lanzamientos e instala el paquete con dpkg
. Consulta el siguiente ejemplo para instalar el paquete amd64
:
sudo dpkg -i --force-overwrite ./observiq-otel-collector_v${VERSION}_linux_amd64.deb sudo systemctl enable --now observiq-otel-collector
Sustituye VERSION
por la versión del paquete que has descargado.
Para obtener más información, consulta Instalación del agente de Bindplane.
Configurar el agente de BindPlane
Después de instalar el agente, el servicio observiq-otel-collector
se ejecuta y está listo para configurarse.
Puedes configurar el agente manualmente o mediante la consola de gestión de Bindplane.
Si configuras el agente manualmente, debes actualizar los parámetros del exportador para asegurarte de que el agente se autentica con Google SecOps.
Archivo de configuración del recopilador de OTel
En Linux, el archivo de configuración del recolector se encuentra en /opt/observiq-otel-collector/config.yaml
.
Servicio de recopilador de OTel y registros
El agente registra la información en C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log
de forma predeterminada.
El registro de errores estándar del proceso del agente se encuentra en C:\Program Files\observIQ OpenTelemetry Collector\log\observiq_collector.err
.
Para obtener más información sobre cómo configurar el recolector, consulta bindplane-otel-collect.
En Linux, para ver los registros del recopilador, ejecuta sudo tail -F /opt/observiq-otel-collector/log/collector.log
.
Comandos de servicio habituales del recolector de OTel de Linux:
Para detener el servicio del recolector de OTel, ejecuta
sudo systemctl stop observiq-otel-collector
.Para iniciar el servicio del recopilador de OTel, ejecuta
sudo systemctl start observiq-otel-collector
.Para reiniciar el servicio del recolector de OTel, ejecuta
sudo systemctl restart observiq-otel-collector
.Para habilitar el servicio del recopilador de OTel al inicio, ejecuta
sudo systemctl enable observiq-otel-collector
.
Reinicia el servicio del agente para que se apliquen los cambios en la configuración
Cuando cambies la configuración, debes reiniciar el servicio del agente para que los cambios surtan efecto (sudo systemctl restart observiq-otel-collector
).
Usar un archivo de configuración de ejemplo predeterminado
De forma predeterminada, un archivo de configuración de agente se encuentra en
C:\Program Files\observIQ OpenTelemetry Collector\config.yaml
.
Puedes descargar un archivo de configuración de ejemplo y un token de autenticación que utiliza el agente desde la consola de Google SecOps > Configuración de SIEM > Agente de recogida.
Personalice las dos secciones siguientes del archivo de configuración:
- Receptor: especifica qué registros debe recoger el agente y enviar a Google SecOps.
- Exportador: especifica el destino al que el agente envía los registros.
Se admiten los siguientes exportadores:
- Exportador de Google SecOps: envía registros directamente a la API de ingestión de Google SecOps.
- Exportador de reenvío de Google SecOps: envía registros al reenviador de Google SecOps.
- Exportador de Cloud Logging: envía registros a Cloud Logging.
En el exportador, personaliza lo siguiente:
customer_id
: tu ID de cliente de Google SecOps.endpoint
: tu endpoint regional de Google SecOps.creds
: tu token de autenticación.También puedes usar
creds_file_path
para hacer referencia al archivo de credenciales directamente. En la configuración de Windows, escapa la ruta con barras invertidas.log_type
: tipo de registro. Te recomendamos que selecciones WINDOWS_DNS como Tipo de registro.ingestion_labels
: etiquetas de ingestión. Estas etiquetas identifican los registros en Google SecOps.namespace
: espacio de nombres opcional.Para cada tipo de registro, debe configurar un exportador.
Ejemplos de configuración de recogida de registros
En las siguientes secciones se incluyen ejemplos de configuración para la recogida de registros.
Enviar eventos de Windows y Sysmon directamente a Google SecOps
Configura estos parámetros en el ejemplo:
-
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 desastres de BBolt (obsoleto) con Bindplane, consulta la documentación de BBolt Store.
Resiliencia y reintentos
La opción de reintento está habilitada de forma predeterminada en todos los destinos que la admiten. De forma predeterminada, las solicitudes fallidas se vuelven a intentar después de cinco segundos y se retiran progresivamente hasta un máximo de 30 segundos. Después de cinco minutos, las solicitudes se omiten de forma permanente.
Para obtener más información, consulta Resistencia del recolector.
Reducir el volumen de registros con el filtro de gravedad
Para saber cómo reducir el volumen de los registros, consulta Reducir el volumen de los registros con el filtro de gravedad.
Integraciones de Bindplane con agentes de terceros
Aunque Bindplane es más potente cuando se usa el agente de Bindplane para la recogida en el extremo, en la mayoría de los casos, Bindplane puede permanecer en tu infraestructura. Por ejemplo, si ya usas Fluent Bit o Splunk Universal Forwarders, puedes seguir haciéndolo.
Integración de Bindplane con Splunk
Para obtener información sobre Splunk con Bindplane, consulta lo siguiente:
Integraciones de Bindplane con otros agentes de terceros
Para obtener información sobre las integraciones de Bindplane con agentes de terceros, consulta Connecting Other OpenTelemetry Collectors Using the OpAMP Extension (Conectar otros colectores de OpenTelemetry mediante la extensión OpAMP).
Monitorización silenciosa de hosts
Para obtener información sobre cómo usar Bindplane para la monitorización silenciosa de hosts, consulta lo siguiente:
- Monitorización silenciosa de hosts de Google SecOps
- Configurar Bindplane para SHM 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 la monitorización de Bindplane, consulta Monitorizar Bindplane.
Monitorización de Kubernetes
Para obtener información sobre la monitorización de Kubernetes en Bindplane, consulta Monitorización de Kubernetes.
Documentación de referencia adicional
Para obtener más información sobre Bindplane (antes observIQ), consulta lo siguiente:
- Usar Google SecOps con las prácticas recomendadas de Bindplane
- Soluciones de Bindplane
- Guía de inicio rápido de 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.