Raccogliere i log degli switch Brocade
Versione parser: 5.0
Questo documento spiega come importare i log degli switch Brocade in Google Security Operations utilizzando l'agente Bindplane.
Gli switch Brocade (switch SAN Fibre Channel) generano messaggi syslog per eventi di fabric, modifiche di zona, attività di accesso/disconnessione ed eventi di sistema. Il parser normalizza i campi e li mappa al modello UDM (Unified Data Model).
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Un'istanza Google SecOps
- Windows Server 2016 o versioni successive oppure host Linux con
systemd - Connettività di rete tra l'agente Bindplane e lo switch Brocade
- Se l'esecuzione avviene tramite un proxy, assicurati che le porte del firewall siano aperte in base ai requisiti dell'agente Bindplane
- Accesso amministrativo allo switch Brocade tramite SSH o Telnet
Recuperare il file di autenticazione dell'importazione di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- Scarica il file di autenticazione dell'acquisizione.
Salva il file in modo sicuro sul sistema in cui verrà installato l'agente Bindplane.
Recuperare l'ID cliente di Google SecOps
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
Copia e salva l'ID cliente dalla sezione Dettagli organizzazione.
Installare l'agente Bindplane
Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.
Installazione di Windows
- Apri il prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quietAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo:
sc query observiq-otel-collectorIl servizio dovrebbe essere visualizzato come IN ESECUZIONE.
Installazione di Linux
- Apri un terminale con privilegi di root o sudo.
Esegui questo comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.shAttendi il completamento dell'installazione.
Verifica l'installazione eseguendo:
sudo systemctl status observiq-otel-collectorIl servizio dovrebbe essere visualizzato come attivo (in esecuzione).
Risorse di installazione aggiuntive
Per ulteriori opzioni di installazione e risoluzione dei problemi, consulta la guida all'installazione dell'agente Bindplane.
Configurare l'agente Bindplane per importare syslog e inviarli a Google SecOps
Individuare il file di configurazione
Linux:
sudo nano /etc/bindplane-agent/config.yamlWindows:
notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
Modificare il file di configurazione
Sostituisci l'intero contenuto di
config.yamlcon la seguente configurazione:receivers: udplog: listen_address: "0.0.0.0:514" exporters: chronicle/brocade_switch: compression: gzip creds_file_path: '/etc/bindplane-agent/ingestion-auth.json' customer_id: '<customer_id>' endpoint: malachiteingestion-pa.googleapis.com log_type: BROCADE_SWITCH raw_log_field: body service: pipelines: logs/brocade_switch_to_chronicle: receivers: - udplog exporters: - chronicle/brocade_switch
Parametri di configurazione
Sostituisci i seguenti segnaposto:
Configurazione del ricevitore:
listen_address: indirizzo IP e porta su cui ascoltare:0.0.0.0per ascoltare su tutte le interfacce (consigliato)- La porta
514è la porta syslog standard (richiede la root su Linux; utilizza1514per la non root)
Configurazione dell'esportatore:
creds_file_path: percorso completo del file di autenticazione dell'importazione:- Linux:
/etc/bindplane-agent/ingestion-auth.json - Windows:
C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
- Linux:
customer_id: ID cliente copiato dalla console Google SecOpsendpoint: URL dell'endpoint regionale:- Stati Uniti:
malachiteingestion-pa.googleapis.com - Europa:
europe-malachiteingestion-pa.googleapis.com - Asia:
asia-southeast1-malachiteingestion-pa.googleapis.com - Per l'elenco completo, consulta Endpoint regionali
- Stati Uniti:
Salvare il file di configurazione
- Dopo la modifica, salva il file:
- Linux: premi
Ctrl+O, poiEnter, poiCtrl+X - Windows: fai clic su File > Salva
- Linux: premi
Riavviare l'agente Bindplane per applicare le modifiche
Per riavviare l'agente Bindplane in Linux, esegui questo comando:
sudo systemctl restart observiq-otel-collectorVerifica che il servizio sia in esecuzione:
```bash sudo systemctl status observiq-otel-collector ```Controlla i log per verificare la presenza di errori:
```bash sudo journalctl -u observiq-otel-collector -f ```
Per riavviare l'agente Bindplane in Windows, scegli una delle seguenti opzioni:
Prompt dei comandi o PowerShell come amministratore:
net stop observiq-otel-collector && net start observiq-otel-collectorConsole Servizi:
- Premi
Win+R, digitaservices.msce premi Invio. - Individua observIQ OpenTelemetry Collector.
- Fai clic con il tasto destro del mouse e seleziona Riavvia.
Verifica che il servizio sia in esecuzione:
sc query observiq-otel-collectorControlla i log per verificare la presenza di errori:
type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
- Premi
Configurare l'esportazione di syslog da uno switch Brocade
- Connettiti allo switch Brocade utilizzando SSH o Telnet con le credenziali appropriate.
Esegui questo comando per specificare l'indirizzo IP e la porta del server syslog (Bindplane):
syslogadmin --set -ip <BINDPLANE_IP> -port 514Esegui questo comando per visualizzare i server syslog configurati:
syslogadmin --show -ip
Tabella di mapping UDM
| Campo log | Mapping UDM | Logica |
|---|---|---|
application |
additional.fields[].key: "application"additional.fields[].value.string_value: |
Valore estratto dal campo application@1588 nel log non elaborato quando esiste il campo KV_DATA. |
class |
additional.fields[].key: "class"additional.fields[].value.string_value: |
Valore estratto dal campo class@1588 nel log non elaborato quando esiste il campo KV_DATA. |
domain |
principal.administrative_domain |
Valore estratto dal pattern grok che corrisponde al campo domain. |
Event |
additional.fields[].key: "event_category"additional.fields[].value.string_value: |
Valore estratto dal campo arg0@1588 nel log non elaborato quando esiste il campo KV_DATA. |
event_id |
metadata.product_log_id |
Valore estratto dal pattern grok che corrisponde al campo event_id. |
event_type |
metadata.product_event_type |
Valore estratto dal pattern grok che corrisponde al campo event_type. |
flags |
additional.fields[].key: "flags"additional.fields[].value.string_value: |
Valore estratto dal pattern grok che corrisponde al campo flags. |
Info |
metadata.description |
Valore estratto dal campo Info, analizzato utilizzando grok. |
interface |
app_protocol_src |
Valore estratto dal campo interface@1588 nel log non elaborato quando esiste il campo KV_DATA. Utilizzato per derivare network.application_protocol. |
ip |
principal.ip |
Valore estratto dal campo ip, analizzato utilizzando grok. Unito in principal.ip se non è uguale all'IP estratto dal campo Info. |
Info, IP Addr |
principal.ip |
Valore estratto dal campo IP Addr all'interno del campo Info, analizzato utilizzando grok. |
log |
additional.fields[].key: "log"additional.fields[].value.string_value: |
Valore estratto dal campo log@1588 nel log non elaborato quando esiste il campo KV_DATA. |
msg |
metadata.description |
Valore estratto dal campo msg, analizzato utilizzando grok. |
msgid |
additional.fields[].key: "msgid"additional.fields[].value.string_value: |
Valore estratto dal campo msgid@1588 nel log non elaborato quando esiste il campo KV_DATA. |
prin_host |
principal.hostnameprincipal.asset.hostname |
Valore estratto dal pattern grok che corrisponde al campo prin_host. |
product_version |
metadata.product_version |
Valore estratto dal pattern grok che corrisponde al campo product_version. |
repeat_count |
additional.fields[].key: "repeat_count"additional.fields[].value.string_value: |
Valore estratto dal campo msg, analizzato utilizzando grok. |
role, user_role |
principal.user.attribute.roles[].name |
Valore estratto dal campo role@1588 o user_role. Se il valore è "admin", viene sostituito con "Admin". |
sequence_number |
additional.fields[].key: "sequence_number"additional.fields[].value.string_value: |
Valore estratto dal pattern grok che corrisponde al campo sequence_number. |
severity |
security_result.severity |
Valore estratto dal campo severity, analizzato utilizzando grok. Mappato ai valori di gravità UDM (INFORMATIONAL, ERROR, CRITICAL, MEDIUM). |
Status |
security_result.summary |
Valore estratto dal campo Status. |
switch_name |
additional.fields[].key: "switch_name"additional.fields[].value.string_value: |
Valore estratto dal pattern grok che corrisponde al campo switch_name. |
target_application |
target.application |
Valore estratto dal pattern grok che corrisponde al campo target_application. |
time |
additional.fields[].key: "time"additional.fields[].value.string_value: |
Valore estratto dal campo time all'interno del campo kv_data3. |
timestamp |
metadata.event_timestamp.seconds |
Valore estratto dal campo timestamp, analizzato utilizzando il filtro della data. |
user |
principal.user.useridprincipal.user.user_display_name |
Valore estratto dal campo user o user@1588, analizzato utilizzando grok. Copiato da principal.hostname. Copiato da principal.ip. Copiato da metadata.product_event_type o impostato su "STATUS_UPDATE" in base alle condizioni. Copiato da create_time.nanos del log. Determinato dalla logica del parser in base ai valori di has_principal, has_target, has_userid e event_type. Può essere "SYSTEM_AUDIT_LOG_UNCATEGORIZED", "STATUS_UPDATE" o "GENERIC_EVENT". Codificato come "BROCADE_SWITCH". Codificato come "BROCADE". Codificato come "BROCADE_SWITCH". Derivato dal campo interface o impostato su "SSH" se il campo interface contiene "SSH". |
CLI |
event.idm.read_only_udm.metadata.description |
Mappato dal log delle modifiche |
prin_host |
event.idm.read_only_udm.intermediary.hostname |
Mappato dal log delle modifiche |
Log delle modifiche
Visualizza il log delle modifiche per questo parser
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.