Utilizzare Bindplane con Google SecOps

Supportato 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:

  • Bindplane Collector. Un agente open source basato su OpenTelemetry (OTel) Collector. 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 è anche chiamato agente Bindplane di distribuzione per OpenTelemetry (BDOT), agente di raccolta, collector o agente.
  • Bindplane Server. Una piattaforma completa e unificata per la gestione dei deployment del collettore OTel. Questi deployment possono risiedere in Google SecOps e Google Cloud. Bindplane Server può essere eseguito on-premise o nel cloud Bindplane. Per saperne di più sulla console, consulta Console di gestione Bindplane. Questo componente è anche 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)

Tutti i clienti di Google SecOps hanno accesso a Bindplane (Google Edition) senza costi aggiuntivi. Per scoprire di più, consulta Visibilità e sicurezza leader del settore basate su OpenTelemetry.

Puoi utilizzare Bindplane (Google Edition) self-service sul cloud Bindplane.

Per scoprire come iniziare a installare e auto-ospitare Bindplane (Google Edition), consulta Bindplane (Google Edition).

Bindplane Enterprise (Google Edition) per i clienti di Google SecOps Enterprise Plus

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

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

Contatta il team del tuo Account Google per ottenere la codice licenza per Bindplane Enterprise (Google Edition).

Versioni di Bindplane Google: differenze

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

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 di Google SecOps Enterprise Plus
Percorsi/Destinazioni 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 filtraggio avanzato (ad esempio, filtra 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, separatore di eventi Include tutte le funzionalità supportate in Bindplane (Google Edition) più i campi Elimina, Elimina valori vuoti e Unisci.
Funzionalità generali a livello di piattaforma Gateway (aggregazione dei dati degli agenti), agenti Bindplane per la raccolta, livello di gestione Bindplane per on-premise o ospitato sul cloud, tutte le origini, monitoraggio host silenzioso tramite processore SecOps, coda persistente, arricchimento telemetria, HA, RBAC, entrambe le API di importazione SecOps supportate, offuscamento delle credenziali, gestione avanzata del parco dispositivi, inclusa la raggruppamento degli agenti, assegnazione dinamica del tipo di log Tutte le funzionalità supportate in Bindplane (Google Edition)

Console di gestione Bindplane

L'utilizzo della console di gestione Bindplane è facoltativo. Molti clienti di Google SecOps utilizzano Bindplane Server.

La console di gestione Bindplane offre le seguenti funzionalità principali:

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

Architettura dell'agente Bindplane

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

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

Per saperne di più sull'architettura di deployment dei raccoglitori Bindplane OpenTelemetry, consulta Bindplane OTel Collector.

Le sezioni seguenti descrivono le opzioni di architettura disponibili.

Gli agenti di raccolta inviano i log a un agente di raccolta che funge da gateway

Per le implementazioni su larga scala, ti consigliamo di utilizzare agenti Bindplane Enterprise (Google Edition) che fungono da gateway. Questi gateway ricevono la telemetria da altri raccoglitori tramite la rete, eseguono facoltativamente un'elaborazione aggiuntiva e indirizzano i dati a Google SecOps.

Un agente di raccolta che funge da gateway utilizza lo stesso binario di tutti gli altri agenti di raccolta.

Il seguente diagramma mostra gli agenti di raccolta che inviano i log a un agente di raccolta che funge da gateway.

Gli agenti di raccolta inviano i log a un agente di raccolta che funge da gateway

Gli agenti di raccolta inviano i log direttamente all'API di importazione di Google SecOps

Il seguente diagramma mostra gli agenti di raccolta che inviano i log direttamente all'API di importazione di Google SecOps.

Gli agenti di raccolta inviano i log direttamente all'API di importazione di Google SecOps

Gli agenti di raccolta inviano i log direttamente a Cloud Logging

Il seguente diagramma mostra gli agenti di raccolta che inviano i log direttamente a Cloud Logging.

Gli agenti di raccolta inviano i log direttamente a Cloud Logging

Gli agenti di raccolta inviano i log a più destinazioni

Il seguente diagramma mostra gli agenti di raccolta che inviano log a più destinazioni.

L'agente di raccolta invia i log a più destinazioni

Tipi di deployment di Bindplane

Bindplane offre opzioni di deployment cloud e on-premise.

Deployment on-premise

  • Linux
  • Docker

Per saperne di più, vedi Installare Bindplane Server.

Linux

Distribuzioni Linux:

  • 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:

Immagini container Docker

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

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

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

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 gestisce le connessioni di rete per quanto segue:

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

Requisiti di connettività

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

La porta Bindplane viene utilizzata per:

  • Comando e controllo del collettore utilizzando OpAMP (WebSocket)
  • Richieste di misurazione del throughput 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 del throughput (HTTP).

Bindplane non avvia mai connessioni ai raccoglitori. Puoi configurare un firewall per impedire a Bindplane di raggiungere le reti del raccoglitore. Tuttavia, le reti del raccoglitore 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, vedi quanto segue:

Requisiti delle risorse del raccoglitore

I requisiti di risorse di Bindplane variano in base al numero di raccoglitori gestiti. All'aumentare del numero di raccoglitori gestiti, aumentano anche il consumo di CPU, memoria, velocità effettiva/IOPS del disco e rete.

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

Conteggio raccoglitori Nodi Bindplane Tolleranza di errore Core della 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

Pianificare l'installazione e il deployment

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

Considera scalabilità e tolleranza agli errori

I raccoglitori del gateway ricevono i dati di telemetria tramite la rete. Ti consigliamo di accoppiarli a un bilanciatore del carico per fornire sia la tolleranza agli errori che lo scalabilità orizzontale.

Lo scale up orizzontale è preferibile perché offre tolleranza di errore e può eliminare i colli di bottiglia dell'esportatore.

Calcolare il numero di raccoglitori necessari

Quando calcoli il numero di raccoglitori necessari per il tuo workload, considera il throughput o la frequenza di log previsti e utilizza la seguente tabella. Questa tabella presuppone che ogni raccoglitore abbia quattro core CPU e 16 GB di memoria. La tabella non tiene conto dei processori; quando vengono aggiunti, i requisiti di calcolo aumentano.

Velocità effettiva della telemetria Log/secondo Raccoglitori
5 GB/minuto 250.000 2
10 GB/minuto 500.000 3
20 GB/minuto 1.000.000 5
100 GB/mese 5.000.000 25

Esegui il provisioning eccessivo del parco raccoglitori per la tolleranza agli errori

Esegui il provisioning eccessivo del parco risorse di raccolta per garantire la tolleranza agli errori. 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 il throughput della telemetria.

Se lavori con un numero fisso di raccoglitori, puoi implementare lo scale up verticale di CPU e memoria per aumentare la velocità effettiva.

Ridurre il sovraccarico di elaborazione

In genere, vuoi che i collettori svolgano il minor lavoro possibile. Se hai requisiti di elaborazione elevati, può essere utile scaricare l'elaborazione su una flotta di raccoglitori gateway. Ad esempio, anziché filtrare la telemetria con un'operazione di espressione regolare costosa, puoi fare in modo che i raccoglitori del gateway eseguano questa attività. In genere, i raccoglitori gateway vengono eseguiti su un sistema dedicato. Ciò giustifica il sovraccarico 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 utilizzi un agente di raccolta Bindplane come gateway, ovvero in modalità gateway, pianifica il deployment seguendo queste best practice:

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

Utilizzare un bilanciatore del carico quando necessario

Un bilanciatore del carico è necessario quando Bindplane viene utilizzato in modalità ad alta disponibilità.

Quando utilizzi un agente di raccolta Bindplane in modalità gateway, utilizza un bilanciatore del carico per aumentare le prestazioni e la ridondanza. Il bilanciamento del carico consente anche lo scale out del parco risorse gateway e la capacità di resistere ai guasti senza causare interruzioni.

L'agente di raccolta Bindplane può funzionare con un'ampia gamma di bilanciatori del carico quando opera in modalità gateway. Questo documento non descrive opzioni specifiche, perché le soluzioni di bilanciamento del carico più diffuse supportano le funzionalità necessarie per il funzionamento affidabile di più raccoglitori.

Per saperne di più, consulta 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 applicativi HTTP e gRPC

Dimensionamento del bilanciamento del carico

I nodi Bindplane non devono gestire più di 30.000 raccoglitori per la massima tolleranza agli errori. 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 di non superare 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, una dimensione del cluster di tre 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 la manutenzione, poiché ogni istanza Bindplane rimanente gestisce 50.000 raccoglitori o 100.000 connessioni TCP.

Best practice per il dimensionamento del bilanciamento del carico

  • Implementa controlli di integrità. Configura il bilanciatore del carico per assicurarti che il collettore sia pronto a ricevere il traffico.
  • Distribuisci le connessioni in modo uniforme. Le connessioni devono essere distribuite in modo uniforme tra i raccoglitori.
  • Supporta 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 applicativi HTTP e gRPC

Per saperne di più, consulta Resilienza del raccoglitore.

Bilanciamento del carico di tipo 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

Utilizzare la modalità ad alta disponibilità negli ambienti di produzione

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

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

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

Calcolare il numero di raccoglitori e server Bindplane per l'alta disponibilità

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

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

Postgres per l'alta disponibilità

Postgres è un prerequisito quando utilizzi Bindplane in modalità HA.

Prometheus per l'alta disponibilità

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

Per scoprire di più, consulta Prometheus.

Bus di eventi per l'alta disponibilità

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

Per saperne di più, consulta Event Bus.

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

Per un ambiente di test o una prova di fattibilità, ti consigliamo di utilizzare un deployment a singola istanza.

Per saperne di più, consulta Singola istanza.

Isolare le credenziali di backend

Anziché distribuire le credenziali a tutti i sistemi di raccolta, puoi conservarle esclusivamente sui raccoglitori gateway. In questo modo, la rotazione delle credenziali viene semplificata e la superficie di attacco alla sicurezza viene ridotta limitando l'implementazione delle credenziali a un sottoinsieme dei tuoi sistemi.

Proteggere i raccoglitori del gateway con firewall

Puoi posizionare i raccoglitori del gateway all'interno di una rete perimetrale, protetta dalla rete interna da un firewall. 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 dati di telemetria a un backend basato sul cloud senza concedere ai tuoi endpoint l'accesso diretto a internet.

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

Verificare la configurazione del firewall

Eventuali firewall o proxy autenticati tra l'agente e internet richiedono 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

Utilizza PostgreSQL per i deployment di produzione

PostgreSQL è obbligatorio per i deployment di produzione di Bindplane.

PostgreSQL è un prerequisito per il funzionamento di Bindplane in modalità ad alta disponibilità.

Il numero di core CPU e la memoria disponibile in genere limitano le prestazioni dei backend di archiviazione PostgreSQL. Ti consigliamo di eseguire il backup dello spazio di archiviazione PostgreSQL con uno spazio di archiviazione a bassa latenza e throughput elevato, ad esempio unità a stato solido (SSD).

Conteggio 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 l'autenticazione corretta

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

Installa la console di gestione Bindplane

La maggior parte dei clienti di Google SecOps utilizza la console di gestione Bindplane. Se lo stai installando, devi accedere a storage.googleapis.com. Se installi solo l'agente, questo accesso non è necessario.

Bindplane Cloud è disponibile anche per i clienti Google. Scarica la versione gratuita e invia un'email all'indirizzo support@bindplane.com per richiedere l'upgrade alla versione supportata da Google.

Esistono tre modi per eseguire il deployment della console di gestione Bindplane:

Installa l'agente Bindplane

Questa sezione descrive come installare l'agente Bindplane per Google SecOps su diversi sistemi operativi host.

I raccoglitori di agenti 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 ulteriori informazioni, consulta Requisiti tecnici e consigli, Pianificare l'installazione e il deployment e Dimensionamento e scalabilità dell'agente.

Per scoprire di più su come installare l'agente OTel, consulta Installare e disinstallare i raccoglitori Bindplane.

Per eventuali problemi relativi al raccoglitore, contatta l' Google Cloud assistenza.

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

  • File di autenticazione per l'importazione di Google SecOps

    Per scaricare il file di autenticazione:

    1. Apri la console Google SecOps.
    2. Vai a Impostazioni SIEM > Agente di raccolta.
    3. Scarica il file di autenticazione dell'importazione di Google SecOps.
  • ID cliente Google SecOps

    Per trovare l'ID cliente:

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

  • Connettività 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
  • Stabilire un flusso di lavoro di GitHub Actions
  • Istruzioni passo passo per eseguire il commit e testare la configurazione, attivare i rollout automatici e aggiornare le risorse utilizzando modifiche dirette o il metodo di esportazione dell'interfaccia utente
  • Aggiornamento dei valori sensibili e utilizzo del controllo dell'accesso basato sui ruoli (RBAC)

Per saperne di più, vedi GitOps.

Ansible

Per informazioni sul deployment di Bindplane con Ansible, consulta bindplane-agent-ansible.

Interfaccia a riga di comando Bindplane

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

Terraform

Per scoprire di più sull'utilizzo di Terraform per configurare le risorse Bindplane, consulta Provider Bindplane.

Kubernetes

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

Installare l'agente Bindplane su Windows

Per installare l'agente Bindplane su Windows, esegui il seguente 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 la procedura guidata di installazione e segui le istruzioni per configurare e installare l'agente Bindplane.

Per saperne di più sull'installazione dell'agente Bindplane su Windows, consulta Installazione di Windows.

Installa l'agente Bindplane su Linux

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

Per installare utilizzando lo script di installazione, esegui il seguente script:

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

Per scoprire di più sulla configurazione del raccoglitore, consulta bindplane-otel-collect.

Installazione da un pacchetto locale

Per installare l'agente 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 di RPM

Scarica il pacchetto RPM per la tua architettura dalla pagina delle release e installalo utilizzando rpm. Per installare il pacchetto amd64, consulta il seguente esempio:

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. Per installare il pacchetto amd64, consulta il seguente esempio:

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.

Per saperne di più, consulta Installazione dell'agente Bindplane.

Configura l'agente BindPlane

Dopo l'installazione dell'agente, il servizio observiq-otel-collector viene eseguito ed è pronto per la configurazione.

Puoi configurare l'agente manualmente o utilizzando la console di gestione Bindplane.

Se configuri l'agente manualmente, devi aggiornare i parametri dell'esportatore per assicurarti che l'agente 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 di raccolta OTel e log

Per impostazione predefinita, l'agente registra i log in C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log.

Il log degli errori standard per il processo dell'agente si trova in C:\Program Files\observIQ OpenTelemetry Collector\log\observiq_collector.err.

Per saperne di più sulla configurazione del raccoglitore, consulta bindplane-otel-collect.

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

Comandi comuni del servizio di raccolta OTel di Linux:

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

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

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

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

Riavvia il servizio dell'agente per le modifiche alla configurazione

Quando modifichi la configurazione, devi riavviare il servizio dell'agente affinché le modifiche alla configurazione diventino effettive (sudo systemctl restart observiq-otel-collector).

Utilizzare un file di configurazione di esempio predefinito

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

Puoi scaricare un file di configurazione di esempio e un token di autenticazione utilizzati dall'agente dalla console Google SecOps > Impostazioni SIEM > Agente di raccolta.

Personalizza le seguenti due sezioni nel file di configurazione:

  • Ricevitore: specifica quali log devono essere raccolti e inviati a Google SecOps dall'agente.
  • Exporter: specifica la destinazione a cui l'agente invia i log. Sono supportati i seguenti esportatori:
    • Esportatore Google SecOps: invia i log direttamente all'API di importazione di Google SecOps.
    • Esportatore di inoltro Google SecOps: invia i log all'inoltro Google SecOps.
    • Esportatore 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 token di autenticazione.

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

  • log_type: Tipo di log. Ti consigliamo di selezionare WINDOWS_DNS come Tipo di log.

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

  • namespace: spazio dei nomi facoltativo.

    Per ogni tipo di log è necessario configurare un esportatore.

Esempi di configurazione della raccolta dei log

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

Inviare eventi Windows e Sysmon direttamente a Google SecOps

Configura questi parametri nell'esempio:

Configurazione di esempio:

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]

Inviare eventi Windows e syslog direttamente a Google SecOps

Configura questi parametri nell'esempio:

Configurazione di esempio:

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

Inviare eventi Windows e syslog al forwarder Google SecOps

Configura questi parametri nell'esempio:

Configurazione di esempio:

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

Inviare syslog direttamente a Google SecOps

Configura questi parametri nell'esempio:

Configurazione di esempio:

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

Raccogliere gli eventi di Windows da remoto e inviarli direttamente a Google SecOps

Configura questi parametri nell'esempio:

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

Configurazione di esempio:

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

Inviare dati a Cloud Logging

Configura il parametro credentials_file nell'esempio.

Configurazione di esempio:

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:

Configurazione di esempio:

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

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. È utile per filtrare i log indesiderati, ad esempio 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 eliminato.

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.

Configurazione di esempio:

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 operazioni di routine e le azioni di manutenzione.

Verificare una configurazione OTel

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

Aggiornamenti delle release di collector

Bindplane può eseguire il polling di bindplane-otel-collector/releases per rilevare le 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 ripristino di emergenza

Per informazioni su backup e ripristino di emergenza con Bindplane, consulta Risorse Bindplane.

Backup e ripristino di emergenza PostgreSQL

Per informazioni sul backup e sul ripristino di emergenza di PostgreSQL con Bindplane, consulta la documentazione di PostgreSQL.

Backup e ripristino di emergenza di BBolt

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

Resilienza e riprova

Per impostazione predefinita, i tentativi vengono abilitati su tutte le destinazioni che li supportano. Per impostazione predefinita, le richieste non riuscite vengono ritentate 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 raccoglitore.

Ridurre il volume di log con il filtro di gravità

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

Integrazioni di Bindplane con agenti di terze parti

Sebbene Bindplane sia più potente quando utilizzi l'agente Bindplane per la raccolta all'edge, nella maggior parte dei casi può rimanere all'interno della tua infrastruttura esistente. Ad esempio, se utilizzi già Fluent Bit o Splunk Universal Forwarders, 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 agenti di terze parti

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

Monitoraggio host silenzioso

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

Esegui l'upgrade di Bindplane su Linux

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

Monitorare Bindplane

Per scoprire di più sul monitoraggio di Bindplane, consulta Monitoraggio di Bindplane.

Monitoraggio di Kubernetes

Per scoprire di più sul monitoraggio di Kubernetes in Bindplane, consulta Monitoraggio di Kubernetes.

Documentazione di riferimento aggiuntiva

Per saperne 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.