Raccogliere i log di Jenkins
Panoramica
Questo parser estrae informazioni chiave come timestamp, ID utente, IP di origine, azioni e ID oggetto dai log in formato JSON e SYSLOG. Utilizza pattern grok per abbinare vari formati di messaggi di log, gestire le variazioni nella struttura e compilare un modello di dati unificato (UDM) con i campi estratti. Il parser classifica inoltre gli eventi in base alla presenza di informazioni sull'utente o sull'IP.
Prima di iniziare
- Assicurati di avere un'istanza Google SecOps.
- Assicurati di disporre dell'accesso con privilegi a Google Cloud IAM.
- Assicurati di disporre dell'accesso con privilegi a Google Cloud Storage.
- Assicurati di disporre dell'accesso privilegiato a Jenkins.
Crea un bucket Google Cloud Storage
- Vai a Cloud Storage.
- Crea un nuovo bucket. Scegli un nome univoco e una regione appropriata.
- Assicurati che il bucket disponga di controlli di accesso adeguati (ad esempio, solo gli account di servizio autorizzati possono scrivere al suo interno).
Creare un account di servizio Google Cloud
- Vai a IAM e amministrazione > Account di servizio.
- Crea un nuovo account di servizio. Assegna un nome descrittivo (ad esempio jenkins-logs).
- Concedi all'account di servizio il ruolo Creatore oggetti archiviazione nel bucket GCS creato nel passaggio precedente.
- Crea una chiave SSH per il tuo account di servizio: Crea ed elimina le chiavi dell'account di servizio.
Scarica un file della chiave JSON per l'account di servizio.
Installa il plug-in Google Cloud Storage in Jenkins
- Vai a Gestisci Jenkins > Plug-in.
- Seleziona Componenti aggiuntivi disponibili.
- Cerca il plug-in Google Cloud Storage.
- Installa il plug-in e riavvia Jenkins, se necessario.
Installare il plug-in delle credenziali OAuth di Google in Jenkins
- Vai a Gestisci Jenkins > Plug-in.
- Seleziona Plug-in disponibili.
- Cerca il plug-in Credenziali OAuth di Google.
- Installa il plug-in e riavvia Jenkins, se necessario.
Configurare Jenkins per l'autenticazione con Google Cloud
Vai a Gestisci Jenkins > Credenziali > Sistema.
Fai clic su Aggiungi Aggiungi credenziali.
Tipo: seleziona Account di servizio Google dalla chiave privata.
Nome progetto: imposta un nome per le credenziali.
Carica il file della chiave JSON ottenuto durante la creazione dell'account di servizio Google Cloud.
Fai clic su Crea.
Configura i log di Jenkins per caricare Google SecOps
- Nella configurazione del job di Jenkins, aggiungi Caricamento dei log di compilazione di Google Storage nelle azioni post-compilazione, con i seguenti parametri:
- Credenziali Google: il nome delle credenziali Google che hai creato nel passaggio precedente.
- Nome log: il nome del file in cui archiviare il log di compilazione di Jenkins nel percorso di archiviazione specificato.
- Posizione di archiviazione: il nome del bucket in cui vuoi caricare i log. Il bucket deve essere accessibile all'account di servizio che hai creato.
- Testa il caricamento dei log.
Configura un feed in Google SecOps per importare i log di Jenkins
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo.
- Nel campo Nome feed, inserisci un nome per il feed (ad esempio Log di Jenkins).
- Seleziona Google Cloud Storage come Tipo di origine.
- Seleziona Jenkins come Tipo di log.
- Fai clic su Ottieni account di servizio come Account di servizio Chronicle.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- URI del bucket di archiviazione: URL del bucket di archiviazione Google Cloud in formato
gs://my-bucket/<value>
. - L'URI è una: seleziona Directory che include sottodirectory.
- Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
- Spazio dei nomi degli asset: lo spazio dei nomi degli asset.
- Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
- URI del bucket di archiviazione: URL del bucket di archiviazione Google Cloud in formato
Fai clic su Avanti.
Rivedi la configurazione del nuovo feed nella schermata Concludi e poi fai clic su Invia.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
agire | security_result.action_details | Estratto dai campi msg1 o msg2. Rappresenta l'azione eseguita. Lo spazio vuoto iniziale viene rimosso. |
dati | principal.user.userid OPPURE principal.ip OPPURE metadata.description | Se data corrisponde a un pattern di indirizzo IP, viene mappato a principal.ip. Se corrisponde a un pattern di nome utente, viene mappato a principal.user.userid. In caso contrario, viene mappato a metadata.description. |
msg1 | target.asset.product_object_id OPPURE security_result.action_details | Utilizzato per estrarre object e act. Se è presente un / , viene suddiviso in object e act. Se è presente » , viene suddiviso in object e act. In caso contrario, viene trattato come act e potenzialmente analizzato ulteriormente. |
msg2 | metadata.description OPPURE security_result.action_details | Se presente, inizialmente mappato a metadata.description. Se contiene "completed:", il valore successivo viene estratto e mappato a security_result.action_details. |
object | target.asset.product_object_id | Estratto da msg1. Rappresenta l'oggetto su cui viene eseguita l'azione. |
object_id | target.resource.attribute.labels.value | Estratto da object se è presente un / . Rappresenta un identificatore di oggetti più specifico. La chiave è hardcoded come "Nome del plug-in". |
src_ip | principal.ip | Estratto da message o data. Rappresenta l'indirizzo IP di origine. |
user | principal.user.userid | Estratto da message o data. Rappresenta l'utente associato all'evento. |
metadata.event_timestamp | Copiato dal campo calcolato @timestamp. | |
metadata.event_type | Determinato dalla logica del parser. Impostato su USER_UNCATEGORIZED se è presente user, STATUS_UNCATEGORIZED se è presente src_ip e GENERIC_EVENT in caso contrario. | |
metadata.product_name | Hardcoded come Jenkins. | |
metadata.product_version | Hardcoded come Jenkins. | |
metadata.vendor_name | Hardcoded come JENKINS. | |
metadata.event_timestamp | Costruito dai campi year, month, day, time e ampm. |
Modifiche
2023-11-27
- Parser appena creato.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.