Esegui il deployment dell'agente Bindplane per la raccolta

Supportata in:

Questo documento descrive Bindplane per Google Security Operations.

Bindplane è una pipeline di telemetria che può raccogliere, perfezionare ed esportare i log da qualsiasi origine in Google SecOps.

Bindplane offre due versioni appositamente per Google.

Bindplane include i seguenti componenti principali:

  • Raccoglitore Bindplane. Un agente open source, basato sul Collector OpenTelemetry (OTel). Raccoglie i log da varie origini, inclusi i log eventi di Microsoft Windows, e li invia a Google SecOps. Puoi installare i raccoglitori on-premise o nel cloud.

    Questo componente può anche essere chiamato Bindplane Distribution for OpenTelemetry (BDOT) Collector, agente Bindplane, agente di raccolta, agente di raccolta o agente.

  • Bindplane Server. Una piattaforma completa e unificata per la gestione dei deployment dei collector OTel. Questi deployment possono risiedere in Google SecOps e Google Cloud. Molti clienti di Google SecOps utilizzano Bindplane Server, ma il suo utilizzo è facoltativo. Bindplane Server può essere eseguito on-premise o nel cloud Bindplane. Per saperne di più sul server, consulta Server Bindplane.

    Questo componente può anche essere chiamato Console di gestione della pipeline di osservabilità (OP) di Bindplane o Console di gestione di Bindplane.

Versioni Google di Bindplane

Bindplane offre due versioni appositamente per Google: Bindplane (Google Edition) e Bindplane Enterprise (Google Edition).

Bindplane (Google Edition)

Bindplane (Google Edition) viene fornito a tutti i clienti Google SecOps.

Puoi eseguire il self-service di Bindplane (Google Edition) sul cloud Bindplane.

Per iniziare a installare e ospitare autonomamente Bindplane (Google Edition) o generare la chiave per un server Bindplane on-premise, consulta Bindplane (Google Edition).

Bindplane Enterprise (Google Edition): per i clienti di Google SecOps Enterprise Plus e Google Unified Security (GUS)

Bindplane Enterprise (Google Edition) è incluso per i clienti Google SecOps Enterprise Plus e GUS.

Bindplane Enterprise (Google Edition) è consigliato per i deployment su larga scala.

Scarica il codice licenza di Bindplane Enterprise

I clienti Google SecOps Enterprise Plus e GUS possono scaricare il codice licenza di Bindplane Enterprise (Google Edition) direttamente dalla console della piattaforma:

  1. Nella console Google SecOps, vai a Impostazioni > Gestione dei dati > Agenti di raccolta.
  2. Nella scheda Licenza Bindplane, fai clic su Scarica licenza per salvare il file del codice licenza.
  3. Applica il codice licenza scaricato all'installazione di Bindplane Server. Per maggiori dettagli, consulta Applica una licenza Bindplane.

Differenze tra le versioni di Bindplane per Google

La tabella seguente elenca le differenze tra le versioni di Bindplane Google:

Argomento/funzionalità Bindplane (Google Edition) Bindplane Enterprise (Google Edition)
Costo Incluso senza costi aggiuntivi per tutti i clienti di Google SecOps Incluso senza costi per i clienti Google SecOps Enterprise Plus
Routing/Destinations Solo Google, inclusi Google SecOps, Cloud Logging, BigQuery e Cloud Storage tramite Google SecOps Google, inclusi 12 mesi di routing verso una destinazione non Google per le migrazioni SIEM
Filtri Filtro di base con espressione regolare Processori di filtro avanzati (ad esempio, filtro per condizione, campo, gravità e così via), riduzione dei dati, campionamento dei log, deduplicazione
Oscuramento N/D Mascheramento delle PII
Trasformazione Aggiungi campo, sposta campo, analizza dati (KV, JSON, CSV, XML, timestamp, analizza per espressione regolare), rinomina campo, interruttore di eventi Include tutte le funzionalità supportate in Bindplane (Google Edition) più i campi di eliminazione, eliminazione dei valori vuoti, unione
Funzionalità generali a livello di piattaforma Gateway (aggregazione dei dati dai raccoglitori), raccoglitori Bindplane, server Bindplane (livello di gestione Bindplane) on-premise o in hosting sul cloud, tutte le origini, monitoraggio silenzioso dell'host tramite il processore Google SecOps, coda permanente, arricchimento della telemetria, alta affidabilità, RBAC, entrambe le API di importazione di Google SecOps supportate, offuscamento delle credenziali, gestione avanzata del parco risorse, incluso il raggruppamento dei raccoglitori, assegnazione dinamica del tipo di log Tutte le funzionalità supportate in Bindplane (Google Edition)

Architettura del raccoglitore BindPlane

Bindplane utilizza il raccoglitore BDOT, generalmente denominato raccoglitore, per standardizzare la gestione della telemetria con Open Agent Management Protocol (OpAMP). Puoi anche creare e gestire distribuzioni personalizzate di OpenTelemetry Collector con Bindplane.

Il raccoglitore può essere eseguito in Linux o Docker come server web leggero senza dipendenze esterne.

Per scoprire di più sull'architettura di deployment dei raccoglitori OpenTelemetry di Bindplane, consulta Deployment.

Le sezioni seguenti descrivono le opzioni di architettura disponibili.

I raccoglitori inviano i log a un raccoglitore che funge da gateway

Per i deployment su larga scala, ti consigliamo di utilizzare i raccoglitori che fungono da gateway. Questi gateway ricevono la telemetria da altri raccoglitori sulla rete, eseguono facoltativamente un'elaborazione aggiuntiva e indirizzano i dati a Google SecOps.

Un raccoglitore che funge da gateway utilizza lo stesso binario di tutti gli altri raccoglitori.

Il seguente diagramma mostra i raccoglitori che inviano i log a un raccoglitore che funge da gateway:

I raccoglitori inviano i log a un raccoglitore che funge da gateway

I raccoglitori inviano i log direttamente all'API di importazione di Google SecOps

Il seguente diagramma mostra i raccoglitori che inviano i log direttamente all'API di importazione di Google SecOps:

I raccoglitori inviano i log direttamente all'API di importazione di Google SecOps

I raccoglitori inviano i log direttamente a Cloud Logging

Il seguente diagramma mostra i raccoglitori che inviano i log direttamente a Cloud Logging:

I raccoglitori inviano i log direttamente a Cloud Logging

I raccoglitori inviano i log a più destinazioni

Il seguente diagramma mostra i raccoglitori che inviano i log a più destinazioni:

Il raccoglitore invia i log a più destinazioni

Server Bindplane

Il server Bindplane offre le seguenti funzionalità principali:

  • Gestione centralizzata. Il server ti consente di gestire tutti i deployment dei raccoglitori OTel in Google Cloud. Puoi visualizzare lo stato di ogni deployment ed eseguire attività di gestione comuni, come l'avvio, l'arresto e il riavvio dei raccoglitori.
  • Monitoraggio in tempo reale. Il server fornisce il monitoraggio in tempo reale dei deployment del raccoglitore OTel. Puoi monitorare metriche come l'utilizzo della CPU, la memoria utilizzata e la velocità effettiva. Puoi anche visualizzare log e tracce per risolvere i problemi.
  • Avvisi e notifiche. Il server ti consente di configurare avvisi e notifiche per eventi importanti, ad esempio quando un raccoglitore non è disponibile o quando viene superata una soglia di metrica.
  • Gestione delle configurazioni. Il server ti consente di gestire centralmente la configurazione dei tuoi raccoglitori OTel. Puoi modificare i file di configurazione, impostare le variabili di ambiente e applicare policy di sicurezza a tutti i tuoi deployment.
  • Integrazione con Google Cloud. Puoi creare e gestire i deployment dei raccoglitori OTel in Google Cloud e utilizzare il server per accedere alle tue risorse Google Cloud .

Bindplane offre opzioni di deployment on-premise e nel cloud. Per saperne di più, consulta Utilizza il server Bindplane.

Requisiti tecnici e consigli

Questa sezione descrive i requisiti tecnici e i consigli per l'installazione e l'esecuzione di Bindplane con Google SecOps.

Requisiti di larghezza di banda

Bindplane mantiene le connessioni di rete per:

  • Gestione dei raccoglitori
  • Misurazioni della velocità effettiva del raccoglitore
  • Interfacce utente web e a riga di comando

Requisiti di connettività

Bindplane rimane in ascolto sulla porta 3001 per impostazione predefinita. Questa porta è configurabile.

La porta Bindplane viene utilizzata per:

  • Comando e controllo del raccoglitore tramite OpAMP (WebSocket)
  • Richieste di misurazione della velocità effettiva del raccoglitore (richiesta HTTP POST)
  • Utenti di browser e CLI (HTTP e WebSocket)

I raccoglitori devono essere in grado di avviare connessioni a Bindplane per OpAMP (WebSocket) e misurazioni della velocità effettiva (HTTP).

Bindplane non avvia mai connessioni ai raccoglitori. Puoi configurare un firewall per impedire a Bindplane di raggiungere le reti dei raccoglitori; tuttavia, le reti dei raccoglitori devono essere in grado di raggiungere Bindplane sulla porta configurata.

Requisiti tecnici generali del raccoglitore BindPlane

Per informazioni sui requisiti tecnici generali per il raccoglitore Bindplane, consulta i seguenti articoli:

Requisiti delle risorse del raccoglitore

I requisiti delle risorse di Bindplane variano in base al numero di raccoglitori gestiti. Man mano che il numero di raccoglitori gestiti aumenta, aumentano anche l'utilizzo di CPU, memoria, throughput/IOPS del disco e rete.

Utilizza la tabella seguente per il dimensionamento di CPU, memoria e capacità di archiviazione:

Conteggio dei raccoglitori Nodi Bindplane Tolleranza di errore Core CPU Memoria Database
1-100 1 N/D 2 4 GB bbolt
100-25.000 1 N/D 4 16 GB postgres
1-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

Pianifica l'installazione e il deployment

Le sezioni seguenti includono consigli e best practice da considerare quando pianifichi il deployment di Bindplane.

Considera la scalabilità e la tolleranza di errore

La scalabilità orizzontale è preferibile perché fornisce tolleranza di errore e può eliminare i colli di bottiglia dell'esportatore.

Quando esegui i raccoglitori Bindplane in modalità gateway, ti consigliamo di associarli a un bilanciatore del carico per fornire tolleranza di errore e scalabilità orizzontale.

Calcola il numero di raccoglitori necessari

Per calcolare il numero di raccoglitori necessari per il tuo workload, considera la velocità effettiva o la frequenza dei log previste e utilizza la tabella seguente. Questa tabella presuppone che ogni raccoglitore abbia quattro core della CPU e 16 GB di memoria. La tabella non include i calcoli con i processori; quando vengono aggiunti i processori, i requisiti di computing aumentano.

Throughput della telemetria Log/secondo Collectors
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

Esegui l'overprovisioning del parco risorse di collector per la tolleranza di errore

Esegui l'overprovisioning del parco risorse di collector per garantire la tolleranza di errore. Nel caso in cui uno o più sistemi di raccolta non funzionino o vengano messi offline per manutenzione, i raccoglitori rimanenti devono avere una capacità sufficiente per gestire la velocità effettiva della telemetria.

Se utilizzi un numero fisso di raccoglitori, puoi implementare la scalabilità verticale della CPU e della memoria per aumentare la velocità effettiva.

Overhead di elaborazione dell'offload

In genere, è preferibile che i raccoglitori eseguano il minor lavoro possibile. Se hai requisiti di elaborazione elevati, può essere utile trasferire l'elaborazione a un gruppo di raccoglitori gateway. Ad esempio, invece di filtrare la telemetria con una costosa operazione di espressione regolare, puoi fare in modo che i collector del gateway eseguano questa attività. In genere, i raccoglitori gateway vengono eseguiti su un sistema dedicato. Questo giustifica l'overhead di elaborazione perché non consuma la potenza di calcolo di altri servizi in esecuzione sullo stesso sistema, a differenza di un raccoglitore non gateway che potrebbe essere in esecuzione su un server di database.

Best practice per la modalità gateway

Quando esegui i raccoglitori Bindplane in modalità gateway, ti consigliamo di pianificare il deployment con le seguenti best practice:

  • Posiziona almeno due raccoglitori dietro un bilanciatore del carico.
  • Ogni raccoglitore deve avere almeno due core.
  • Ogni raccoglitore deve avere almeno 8 GB di memoria.
  • Ogni raccoglitore deve avere 60 GB di spazio utilizzabile per una coda permanente.

Utilizza un bilanciatore del carico quando necessario

Un bilanciatore del carico è obbligatorio quando utilizzi Bindplane in modalità ad alta affidabilità.

Quando esegui i raccoglitori Bindplane in modalità gateway, utilizza un bilanciatore del carico per migliorare le prestazioni e la ridondanza. Il bilanciamento del carico consente inoltre la scalabilità orizzontale del parco risorse di gateway e la capacità di resistere agli errori senza causare interruzioni.

Il raccoglitore Bindplane può funzionare con un'ampia gamma di bilanciatori del carico.

Per saperne di più, consulta Configurazione del bilanciatore del carico.

Porta e protocolli di bilanciamento del carico

Per impostazione predefinita, Bindplane rimane in ascolto sulla porta 3001.

Per supportare l'ampia gamma di ricevitori basati sulla rete in OpenTelemetry, il bilanciatore del carico deve supportare:

  • Protocolli di trasporto TCP/UDP
  • Protocolli delle applicazioni HTTP e gRPC

Dimensionamento del bilanciamento del carico

I nodi Bindplane non devono gestire più di 30.000 raccoglitori per la massima tolleranza di errore. Ogni raccoglitore apre due connessioni a Bindplane (una per la gestione remota di OpAMP e una per la pubblicazione delle metriche di velocità effettiva). Questo limite contribuisce a garantire che non venga superato il limite di connessioni di circa 65.535 per istanza di backend imposto dalla maggior parte dei bilanciatori del carico.

Se un'organizzazione ha 100.000 raccoglitori, un cluster di tre nodi non sarebbe sufficiente. Ogni nodo sarebbe responsabile di circa 33.000 raccoglitori, il che si traduce in 66.000 connessioni TCP per istanza Bindplane. Questa situazione peggiora se un nodo viene disattivato per manutenzione, poiché ogni istanza Bindplane rimanente gestirebbe 50.000 raccoglitori o 100.000 connessioni TCP.

Best practice per il dimensionamento del bilanciamento del carico

  • Implementa i controlli di integrità. Configura il bilanciatore del carico per assicurarti che il raccoglitore sia pronto a ricevere il traffico.
  • Distribuisci le connessioni in modo uniforme. Le connessioni devono essere distribuite in modo uniforme tra i raccoglitori.
  • Supportare i protocolli richiesti. Per supportare l'ampia gamma di ricevitori basati sulla rete in OpenTelemetry, il bilanciatore del carico deve supportare:

    • Protocolli di trasporto TCP/UDP
    • Protocolli delle applicazioni HTTP e gRPC

Per saperne di più, consulta Resilienza del Collector.

Bilanciamento del carico in base al tipo di origine

Qualsiasi tipo di origine che riceve dati di telemetria da sistemi remoti sulla rete è un candidato idoneo per il bilanciamento del carico, tra cui:

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

Utilizza la modalità ad alta affidabilità negli ambienti di produzione

Puoi eseguire il deployment di un'istanza Bindplane in una configurazione a istanza singola o a più istanze. Per i deployment di produzione che richiedono alta affidabilità (HA) e resilienza, ti consigliamo di utilizzare un modello di deployment multi-istanza (HA).

Quando Bindplane gestisce più di 25.000 raccoglitori, ti consigliamo di utilizzare Bindplane in modalità ad alta affidabilità (HA).

Per scoprire di più sull'alta affidabilità in Bindplane, consulta Alta affidabilità.

Calcola il numero di raccoglitori e server Bindplane per l'alta affidabilità

Quando utilizzi Bindplane in modalità ad alta disponibilità, devi considerare quanti raccoglitori prevedi che ogni server Bindplane gestisca.

Prendi il numero totale di istanze Bindplane e sottrai il numero massimo di nodi che prevedi non saranno disponibili a causa della manutenzione. Assicurati che ogni nodo non gestisca più di 30.000 raccoglitori durante un'interruzione del nodo.

Postgres per l'alta disponibilità

Postgres è un prerequisito per l'utilizzo di Bindplane in modalità HA.

Prometheus per l'alta affidabilità

Prometheus è obbligatorio quando utilizzi Bindplane in modalità ad alta affidabilità.

Per scoprire di più, consulta Prometheus.

Bus di eventi per l'alta affidabilità

Bindplane utilizza un bus di eventi per comunicare tra i componenti al suo interno. Quando utilizzi Bindplane in modalità HA, puoi utilizzare il bus di eventi per inviare eventi tra i server Bindplane.

Per saperne di più, consulta Event Bus.

Utilizza un deployment a istanza singola per un ambiente di test o una proof of concept

Per un ambiente di test o un proof of concept, ti consigliamo di utilizzare un deployment a istanza singola.

Per saperne di più, consulta Istanza singola.

Isola le credenziali di backend

Anziché eseguire il deployment delle credenziali in tutti i sistemi di raccolta, puoi conservarle esclusivamente nei raccoglitori gateway. In questo modo, la rotazione delle credenziali viene semplificata e la superficie di attacco alla sicurezza viene ridotta limitando il deployment delle credenziali a un sottoinsieme dei tuoi sistemi.

Proteggi i tuoi raccoglitori gateway con un firewall

Puoi posizionare i raccoglitori gateway all'interno di una rete perimetrale, protetta da firewall dalla rete interna. Puoi configurare la rete in modo da consentire agli altri raccoglitori di inoltrare i dati ai raccoglitori gateway, impedendo al contempo ai raccoglitori gateway di accedere alla rete dell'applicazione. In questo modo puoi inviare la telemetria a un backend basato su cloud senza concedere ai tuoi endpoint l'accesso diretto a internet.

Il firewall deve consentire al traffico HTTP di raggiungere Bindplane sulla porta configurata.

Verifica la configurazione del firewall (API Ingestion)

Per tutti i firewall o i proxy autenticati tra il raccoglitore e internet sono necessarie regole per aprire l'accesso ai seguenti host:

Tipo di connessione Destinazione Porta
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

Prerequisiti per l'importazione di Google SecOps con Bindplane

Questa sezione descrive i prerequisiti necessari per importare correttamente i dati in Google SecOps utilizzando Bindplane, in particolare quando si utilizza l'API Chronicle Ingestion.

Requisiti di rete per l'API Chronicle (HTTPS)

Quando utilizzi Bindplane con l'API Chronicle Ingestion, che utilizza HTTPS, assicurati che le configurazioni di rete e firewall consentano le connessioni in uscita agli endpoint dell'API Chronicle.

Se la tua organizzazione utilizza limitazioni del firewall basate su IP, devi tenere conto della natura dinamica degli indirizzi IP di Google Cloud . Poiché Google SecOps non supporta la creazione di una lista consentita di indirizzi IP statici per le API Ingestion, l'affidamento esclusivo agli IP statici non è consigliato e può causare errori di importazione.

Per mantenere l'importazione dati continua, tieni presente quanto segue:

  • Lista consentita basata sul dominio: la best practice consigliata è configurare il firewall in modo da abilitare il traffico HTTPS in uscita (porta 443) verso l'intero dominio *.chronicle.googleapis.com.
  • Endpoint regionali: Bindplane deve essere configurato per utilizzare l'endpoint regionale appropriato per la tua istanza di Google SecOps, ad esempio us-chronicle.googleapis.com, europe-chronicle.googleapis.com e così via. Un elenco completo degli endpoint regionali è disponibile nella documentazione Esegui la migrazione dall'API SIEM legacy all'API Chronicle.
  • Aggiornamenti automatici degli IP: se il許可リスト basato sul dominio non è fattibile, devi implementare un sistema automatico per recuperare e aggiornare periodicamente gli intervalli IP associati a *.chronicle.googleapis.com. Gli intervalli IP attuali per le API di Google possono essere ottenuti dai file goog.json e cloud.json, come descritto nella documentazione relativa agli indirizzi IP di Google. Implementa un sistema per aggiornare dinamicamente le regole firewall in base a queste fonti.

Utilizza PostgreSQL per i deployment di produzione

Postgres è obbligatorio per i deployment di produzione di Bindplane.

Postgres è un prerequisito per l'utilizzo di Bindplane in modalità HA.

Il numero di core della CPU e la memoria disponibile generalmente limitano le prestazioni dei backend di archiviazione PostgreSQL. Ti consigliamo di supportare lo spazio di archiviazione di PostgreSQL con uno spazio di archiviazione a bassa latenza e throughput elevato, come le unità a stato solido (SSD).

Conteggio dei raccoglitori Core CPU Memoria
1-60.000 4 16 GB
60.001-125.000 8 32 GB
125.001-250.000 16 64 GB

Per saperne di più, consulta le seguenti risorse:

Implementa un'autenticazione corretta

Bindplane supporta l'autenticazione con i seguenti protocolli e servizi. Assicurati che siano implementati correttamente:

Utilizza il server Bindplane

La maggior parte dei clienti di Google SecOps utilizza il server Bindplane, ma il suo utilizzo è facoltativo. Se stai installando il server Bindplane, devi avere accesso a storage.googleapis.com. Se stai installando solo un raccoglitore, questo accesso non è necessario.

Per una demo che mostra come configurare il server Bindplane per standardizzare i log ed esportarli in Google SecOps, vai a Demo dei casi d'uso di Bindplane, quindi seleziona Configurazione di Google SecOps.

Utilizza il server Bindplane Cloud

Bindplane Cloud è disponibile per i clienti Google.

Accedi alla versione Google.

Per eventuali problemi relativi a Bindplane Cloud Server, contatta l'assistenza di Bindplane. Per eventuali problemi relativi al Bindplane Server on-premise, contatta l'assistenza di Google SecOps.

Utilizza il server Bindplane sul tuo Google Cloud

Per informazioni su come eseguire il server Bindplane sul tuo Google Cloud, consulta Bindplane Enterprise Edition.

Utilizza il server on-premise Bindplane

L'utilizzo del server Bindplane on-premise è regolato dai Termini di servizio diGoogle Cloud esistenti.

Installa il server on-premise su Linux

Puoi installare il server Bindplane on-premise su Linux eseguendo uno script (opzione consigliata) o scaricando un file binario e installandolo manualmente. Per saperne di più, consulta Installa Bindplane Server.

Per installare il server Bindplane on-premise su Linux con uno script, segui questi passaggi:

  1. Esegui questo script:

    curl -fsSlL https://downloads.bindplane.com/bindplane/latest/install-linux.sh -o install-linux.sh && bash install-linux.sh --init && rm install-linux.sh

  2. Segui le istruzioni, che ti guideranno nell'inizializzazione del server.

Per installare il server Bindplane on-premise su Linux con un file binario, segui questi passaggi:

  1. Scarica uno dei seguenti file:

  2. Aggiorna il file di configurazione seguendo le istruzioni riportate in Configura Bindplane Server.

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

Per saperne di più, consulta le seguenti risorse:

Deployment Docker on-premise

Per saperne di più, consulta Installa Bindplane Server.

Puoi trovare le immagini container Docker di Bindplane nelle seguenti posizioni:

  • Pacchetti GitHub: ghcr.io/observiq/Bindplane-ee
  • Repository degli artefatti Google: us-central1-docker.pkg.dev/observiq-containers/bindplane/bindplane-ee
  • Docker Hub: observiq/bindplane-ee

Le immagini container sono contrassegnate con la versione di release: ad esempio, la release v1.35.0 avrà il tag observiq/bindplane-ee:1.35.0.

Installa il raccoglitore Bindplane

Questa sezione descrive come installare il raccoglitore Bindplane per Google SecOps su vari sistemi.

I raccoglitori in genere utilizzano risorse minime. Tuttavia, quando gestisci grandi volumi di log, tieni presente il consumo di risorse per evitare di influire su altri servizi. Per saperne di più, consulta Requisiti tecnici e consigli, Pianifica l'installazione e il deployment e Dimensionamento e scalabilità dell'agente.

Per scoprire come installare il raccoglitore (ovvero l'agente OTel), consulta Bindplane OTel Collector.

Puoi anche consultare la documentazione di GitHub bindplane-otel-collector.

Per installare l'agente di raccolta, devi disporre di quanto segue:

  • File di autenticazione dell'acquisizione di Google SecOps

    Per scaricare il file di autenticazione, segui questi passaggi:

    1. Apri la console Google SecOps.
    2. Vai a Impostazioni > Gestione dei dati > Agenti di raccolta.
    3. Scarica il file di autenticazione dell'acquisizione di Google SecOps. Il passaggio successivo dipende dal metodo di trasferimento:
      • gRPC: utilizza il file di autenticazione scaricato.
      • HTTPS: crea un account di servizio nel progetto Google Cloud collegato a Google SecOps e assegnagli il ruolo Chronicle Editor.
  • ID cliente Google SecOps

    Per trovare l'ID cliente:

    1. Apri la console Google SecOps.
    2. Vai a Impostazioni > Amministrazione > Profilo.
    3. Copia l'ID cliente dalla sezione Dettagli organizzazione.
  • Windows 2012 SP2 o versioni successive o host Linux con systemd

  • Connessione a internet

  • Accesso a GitHub

Strumenti di deployment

Questa sezione descrive gli strumenti di deployment per Bindplane.

GitOps

Esegui il deployment delle risorse Bindplane utilizzando un modello GitOps, che include quanto segue:

  • Autenticazione Bindplane
  • Interfaccia a riga di comando Bindplane
  • Accesso alla rete
  • Integrazione con un repository GitHub e GitHub Actions
  • Esportazione delle risorse esistenti
  • Gestione dei valori sensibili
  • Creazione di un workflow di GitHub Actions
  • Istruzioni passo passo per eseguire il commit e testare la configurazione, attivare i rollout automatici e aggiornare le risorse utilizzando le modifiche dirette o il metodo di esportazione dell'interfaccia utente
  • Aggiornamento dei valori sensibili e utilizzo di RBAC

Per saperne di più, consulta GitOps.

Ansible

Per scoprire come eseguire il deployment di Bindplane con Ansible, consulta bindplane-agent-ansible.

Interfaccia a riga di comando Bindplane

Per scoprire di più sulla CLI di Bindplane, consulta GitOps.

Terraform

Per scoprire come utilizzare Terraform per configurare le risorse Bindplane, consulta Provider Bindplane.

Kubernetes

Per scoprire di più su Kubernetes con Bindplane, consulta quanto segue:

Installa il raccoglitore Bindplane su Windows

Per installare il raccoglitore Bindplane su Windows, esegui questo comando PowerShell:

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

In alternativa, per eseguire l'installazione utilizzando una procedura guidata, scarica il programma di installazione più recente per Windows. Dopo aver scaricato il programma di installazione, apri l'installazione guidata e segui le istruzioni per configurare e installare il raccoglitore Bindplane.

Per scoprire di più sull'installazione del raccoglitore Bindplane su Windows, consulta Installazione di Windows.

Installa il raccoglitore Bindplane su Linux

Puoi installare il raccoglitore su Linux utilizzando uno script che determina automaticamente quale pacchetto installare. Puoi anche utilizzare lo stesso script per aggiornare un'installazione esistente.

Per eseguire l'installazione utilizzando lo script di installazione, esegui questo script:

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

Installazione da un pacchetto locale

Per installare l'agente di raccolta da un pacchetto locale, utilizza -f con il percorso del pacchetto.

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

Installazione RPM

Scarica il pacchetto RPM per la tua architettura dalla pagina delle release e installalo utilizzando rpm. Consulta l'esempio seguente per installare il pacchetto amd64:

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

Sostituisci VERSION con la versione del pacchetto che hai scaricato.

Installazione DEB

Scarica il pacchetto DEB per la tua architettura dalla pagina delle release e installalo utilizzando dpkg. Consulta l'esempio seguente per l'installazione del pacchetto amd64:

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

Sostituisci VERSION con la versione del pacchetto che hai scaricato.

Configura il raccoglitore Bindplane

Dopo aver installato l'agente di raccolta, il servizio observiq-otel-collector viene eseguito ed è pronto per la configurazione.

Puoi configurare il raccoglitore manualmente o utilizzando il server Bindplane.

Se configuri il raccoglitore manualmente, devi aggiornare i parametri dell'esportatore per assicurarti che il raccoglitore esegua l'autenticazione con Google SecOps.

File di configurazione del raccoglitore OTel

In Linux, il file di configurazione del raccoglitore si trova in /opt/observiq-otel-collector/config.yaml.

Servizio e log del raccoglitore OTel

Per impostazione predefinita, il raccoglitore scrive i log in C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log.

Il log degli errori standard per il processo del raccoglitore è disponibile all'indirizzo C:\Program Files\observIQ OpenTelemetry Collector\log\observiq_collector.err.

In Linux, per visualizzare i log del raccoglitore, esegui sudo tail -F /opt/observiq-otel-collector/log/collector.log.

Comandi comuni del servizio Collector OTel di Linux:

  • Per arrestare il servizio Collector OTel, esegui sudo systemctl stop observiq-otel-collector.

  • Per avviare il servizio Collector OTel, esegui sudo systemctl start observiq-otel-collector.

  • Per riavviare il servizio Collector OTel, esegui sudo systemctl restart observiq-otel-collector.

  • Per attivare il servizio del raccoglitore OTel all'avvio, esegui sudo systemctl enable observiq-otel-collector.

Riavvia il servizio del raccoglitore per applicare le modifiche alla configurazione

Quando modifichi la configurazione, devi riavviare il servizio di raccolta affinché le modifiche alla configurazione abbiano effetto (sudo systemctl restart observiq-otel-collector).

Utilizza un file di configurazione di esempio predefinito

Per impostazione predefinita, un file di configurazione del raccoglitore si trova in C:\Program Files\observIQ OpenTelemetry Collector\config.yaml.

Per scaricare un file di configurazione di esempio e un token di autenticazione utilizzato dal raccoglitore:

  • Apri la console Google SecOps e vai a Impostazioni > Gestione dei dati > Agenti di raccolta.

Personalizza le seguenti due sezioni nel file di configurazione:

  • Receiver: specifica i log che il raccoglitore deve raccogliere e inviare a Google SecOps.
  • Exporter: specifica la destinazione a cui il raccoglitore invia i log. Sono supportati i seguenti esportatori:
    • Esportatore Google SecOps: invia i log direttamente all'API di importazione di Google SecOps.
    • Google SecOps forwarder exporter: invia i log al forwarder di Google SecOps.
    • Esportatore di Cloud Logging: invia i log a Cloud Logging.

Nell'esportatore, personalizza quanto segue:

  • customer_id: il tuo ID cliente Google SecOps.
  • endpoint: l'endpoint regionale di Google SecOps.
  • creds: il tuo token di autenticazione.

    In alternativa, puoi utilizzare creds_file_path per fare riferimento direttamente al file delle credenziali. Per la configurazione di Windows, utilizza le barre rovesciate per l'escape del percorso.

  • log_type: tipo di log. Ti consigliamo di selezionare WINDOWS_DNS come Log Type (Tipo di log).

  • ingestion_labels: etichette di importazione. Queste etichette identificano i log in Google SecOps.

  • namespace: spazio dei nomi facoltativo.

    Ogni tipo di log richiede la configurazione di un esportatore.

Esempi di configurazione della raccolta dei log

Le sezioni seguenti contengono esempi di configurazione per la raccolta dei log.

Invia gli eventi Windows e sysmon direttamente a Google SecOps

Configura questi parametri nell'esempio:

Esempio di configurazione:

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.",
  "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.",
  "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.",
  "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.",
  "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]

Invia eventi Windows e syslog direttamente a Google SecOps

Configura questi parametri nell'esempio:

Esempio di configurazione:

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

Invia eventi Windows e syslog al forwarder di Google SecOps

Configura questi parametri nell'esempio:

Esempio di configurazione:

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

Invia syslog direttamente a Google SecOps

Configura questi parametri nell'esempio:

Esempio di configurazione:

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

Raccogli gli eventi di Windows da remoto e inviali direttamente a Google SecOps

Configura questi parametri nell'esempio:

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

Esempio di configurazione:

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

Invia i dati a Cloud Logging

Configura il parametro credentials_file nell'esempio.

Esempio di configurazione:

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

Esegui una query su un database SQL e invia i risultati a Google SecOps

Configura questi parametri nell'esempio:

Esempio di configurazione:

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.",
  "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.",
  "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

Elimina i log che corrispondono a un'espressione regolare

Puoi configurare il raccoglitore in modo che elimini i log che corrispondono a un'espressione regolare. Questo è utile per filtrare i log indesiderati, come errori noti o messaggi di debug.

Per eliminare i log che corrispondono a un'espressione regolare, aggiungi un processore di tipo filter/drop-matching-logs-to-Chronicle alla configurazione. Questo processore utilizza la funzione IsMatch per valutare il corpo del log rispetto all'espressione regolare. Se la funzione restituisce true, il log viene ignorato.

La seguente configurazione di esempio elimina i log che contengono le stringhe <EventID>10</EventID> o <EventID>4799</EventID> nel corpo del log.

Puoi personalizzare l'espressione regolare in modo che corrisponda a qualsiasi pattern di cui hai bisogno. La funzione IsMatch utilizza la sintassi delle espressioni regolari RE2.

Esempio di configurazione:

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

L'esempio seguente aggiunge il processore alla pipeline nella stessa configurazione:

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]

Funzionamento e manutenzione di BindPlane

Questa sezione descrive le azioni di funzionamento e manutenzione di routine.

Verifica una configurazione OTel

Per scoprire come verificare la configurazione di Bindplane OTel, consulta OTelBin.

Aggiornamenti delle versioni del raccoglitore

Bindplane può eseguire il polling di bindplane-otel-collector/releases per rilevare nuove release del raccoglitore. Questa funzionalità è facoltativa.

Puoi disattivare il polling di GitHub impostando agentVersions.syncInterval su 0 nella configurazione di Bindplane:

agentVersions:
syncInterval: 0

Backup e disaster recovery

Per scoprire di più sul backup e sul ripristino di emergenza con Bindplane, consulta le risorse di Bindplane.

Backup e ripristino di emergenza di PostgreSQL

Per scoprire di più sul backup e sul ripristino di emergenza di PostgreSQL con Bindplane, consulta la documentazione di PostgreSQL.

Backup e ripristino di emergenza BBolt

Per informazioni sul backup e sul ripristino di emergenza di BBolt (deprecato) con Bindplane, consulta la documentazione di BBolt Store.

Resilienza e nuovi tentativi

I nuovi tentativi sono abilitati per impostazione predefinita su tutte le destinazioni che li supportano. Per impostazione predefinita, le richieste non riuscite vengono riprovate dopo cinque secondi e vengono ritardate progressivamente fino a 30 secondi. Dopo cinque minuti, le richieste vengono eliminate definitivamente.

Per saperne di più, consulta Resilienza del Collector.

Riduci il volume dei log con il filtro per gravità

Per scoprire come ridurre il volume dei log, consulta Riduci il volume dei log con il filtro per gravità.

Integrazioni di Bindplane con raccoglitori di terze parti

Sebbene Bindplane sia più potente quando utilizzi il raccoglitore Bindplane per la raccolta ai margini, nella maggior parte dei casi Bindplane può rimanere all'interno della tua infrastruttura esistente. Ad esempio, se utilizzi già Fluent Bit o Splunk Universal Forwarder, puoi continuare a farlo.

Integrazione di Bindplane con Splunk

Per scoprire di più su Splunk con Bindplane, consulta quanto segue:

Integrazioni di Bindplane con altri raccoglitori di terze parti

Per scoprire di più sulle integrazioni di Bindplane con raccoglitori di terze parti, consulta Connessione di altri raccoglitori OpenTelemetry utilizzando l'estensione OpAMP.

Monitoraggio silenzioso dell'host

Il monitoraggio degli host silenziosi di Google Security Operations ti consente di creare avvisi per le modifiche alla frequenza di importazione utilizzando Google Cloud Monitoring. Genera avvisi per raccoglitore e ti avvisa quando la frequenza di importazione scende al di sotto della soglia definita, segnalando potenziali interruzioni del raccoglitore.

Per informazioni sull'utilizzo di Bindplane per il monitoraggio degli host silenziosi, consulta quanto segue:

Esegui l'upgrade di Bindplane su Linux

Per eseguire l'upgrade di Bindplane, è sufficiente eseguire il comando di installazione senza il flag --init alla fine. Esegui questo script sul server Bindplane per eseguire l'upgrade di Bindplane. Per saperne di più, consulta Esegui l'upgrade, il downgrade o la disinstallazione di Bindplane Server.

Monitora Bindplane

Per scoprire come monitorare Bindplane, consulta Monitoraggio di Bindplane.

Monitora Kubernetes in Bindplane

Per scoprire come monitorare Kubernetes in Bindplane, consulta Monitoraggio di Kubernetes.

Documentazione aggiuntiva

Per scoprire di più su Bindplane (precedentemente noto come observIQ), consulta le seguenti risorse:

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.