Qualsiasi registro di testo

Trasforma Custom Logs in tabelle consultabili con query.

Alcuni log vengono generati da software utilizzato solo dalla tua azienda. Indica una sola volta dove inizia un record, quale grammatica usa, dove si trova il timestamp e come si chiamano le colonne: otterrai una tabella come tutte le altre.

Usa i risultati in Excel, Google Sheets, negli strumenti di IA e nelle tue app tramite l’API REST del database.

Ogni tipo di connettore è incluso nel piano Free. Inizia con 2 origini dati e 1 agente.

Registri personalizzatiFile letti direttamente nella loro posizione
All’interno della tua reteAgente di rete per i flussi di query

Leggi, organizza ed esegui query sulla tua macchina.

Query di sola lettura · connessione in uscita

I file sorgente restano al loro posto. I tuoi strumenti ricevono i risultati delle query.

Origine → agente → risultati consentiti

Query Streams legge qualsiasi log di testo, compresi quelli generati da software utilizzato solo dalla tua azienda, e trasforma la cartella in una tabella SQL aggiornata in tempo reale, consultabile da Microsoft Excel, Google Sheets, assistenti AI tramite MCP, REST API e Power BI. Descrivi il formato una sola volta — delimitazione dei record, grammatica, timestamp, colonne e rotazione — e da quel momento l’agent mantiene invariata la descrizione. Sono disponibili sei grammatiche: delimitata, key = value, grok, JSON lines, direttiva di intestazione #Fields e larghezza fissa. Le righe che non corrispondono alla descrizione vengono conservate come righe grezze anziché scartate, quindi un formato imprevisto non ti costa nulla.

  • Sei grammatiche, descritte una sola volta
  • Le righe non corrispondenti vengono conservate, mai scartate
  • Nessun dato viene inviato altrove per essere interpretato

Collega Custom Logs con le impostazioni corrette.

Mantieni la connessione sul Network Agent. Questi sono i dettagli specifici di Custom Logs.

Cartella
Qualsiasi cartella di log di testo: su disco locale o su una condivisione di rete indicata come \\server\share (mai una lettera di unità mappata; su Linux o Mac, deve essere prima montata); sottocartelle incluse, con supporto per modelli di inclusione ed esclusione
Grammatiche
Delimitata, key = value, grok, JSON lines, direttiva di intestazione #Fields e larghezza fissa
Limite di record
La decidi tu: una riga per record oppure un modello, un numero fisso, una riga vuota o un marcatore, così i record su più righe restano integri
Timestamp
La posizione e il formato sono descritti; se nella riga manca l’anno, può essere ricavato dalla data di modifica del file's o dal suo nome
Rotazione
Dieci schemi di rotazione con nome, oltre ai file non ruotati; gli archivi compressi vengono letti direttamente
Righe non corrispondenti
Conservate alla lettera in events_raw_lines, mai eliminate
Credenziali
Nessuno: non c'è alcun server; l'agente legge i file sul posto

Questo è l’unico profilo di log che puoi modificare, ed è proprio questo il punto: tutti gli altri sono bloccati da noi, così non possono cambiare. Il compromesso è che non si può dimostrare in anticipo la correttezza di una descrizione personalizzata come avviene con un profilo fornito da noi. A questo serve l’anteprima, che applica la tua descrizione ai tuoi file e ti mostra le righe prima che venga confermato qualsiasi cambiamento.

Progettato per il funzionamento di Custom Logs.

Le cinque parti di un formato

Un profilo bloccato definisce questi elementi per te. Il profilo personalizzato li espone tutti e cinque: insieme costituiscono l’intera descrizione, senza altre impostazioni da configurare né elementi nascosti.

  • Delimitazione dei record: dove finisce un record e ne inizia un altro; è ciò che mantiene una traccia stack su più righe in un’unica riga.
  • Grammatica: delimitata, key = value, grok, JSON lines, direttiva di intestazione #Fields oppure larghezza fissa.
  • Timestamp: dove si trova e come è scritto, incluso da dove viene ricavato l’anno quando manca nella riga.
  • Colonne: il nome e il tipo di ciascun campo, così i numeri vengono ordinati come numeri e le date filtrate come date.
  • Modello di crescita: come il file cresce e ruota, così che l’archivio di ieri e il file attivo di oggi siano un’unica tabella.
-- Qualunque nome abbiate dato alle colonne, questo è solo SQL
SELECT   file_name, severity, COUNT(*) AS lines
FROM     fileset.events
WHERE    severity IN ('WARN','ERROR')
GROUP BY file_name, severity
ORDER BY lines DESC

Prova prima i profili integrati

Test connection confronta ciò che trova con i profili inclusi e propone quello più simile. Si tratta di una corrispondenza delle impronte, non di un modello che legge i tuoi log: nessun dato dei tuoi file viene inviato altrove per essere interpretato. Se un profilo integrato è adatto, usalo: un profilo predefinito richiede meno manutenzione di una descrizione personalizzata. Se nessuno è adatto, descrivilo tu e chiedici un profilo integrato, se preferisci averne uno.

Formati e comportamento, nel dettaglio.

Apri la documentazione di riferimento necessaria per Custom Logs.

Se si tratta di un file di testo, può essere una tabella.
La grande idea

Se si tratta di un file di testo, può essere una tabella.

Tre file con tre formati non correlati: uno generato da un’applicazione aziendale, uno da un processo batch e uno da una macchina che nessuno supporta dal 2011. Descrivi ciascuno una sola volta e le colonne che hai definito saranno quelle che potrai interrogare. Nessun collector da eseguire, nessun indice da mantenere, nessuna seconda copia dei dati.

Cartella di registroi tuoi file
registro di controllo dell'impiantochiave=valore
batch-2026-09-10.txtlarghezza fissa
robot.tracedelimitato

Rotazioni, archivi compressi e file riletti: tutto gestito

what-went-wrong.sqlSQL
SELEZIONARE nome_file, gravità,
       contare(*) AS linee
DA   set di file.eventi
DOVE  gravità IN ('AVVISARE','ERRORE')
GRUPPO PER nome_file, gravità
ORDINATO DA linee DESC
Risultatole tue colonne
nome_filegravitàlinee
registro di controllo dell'impiantoERRORE268
lotto-2026-09-10AVVISARE154
robot.traceERRORE61
registro di controllo dell'impiantoAVVISARE9

C'è un gravità colonna perché hai detto che ce n'era una

Valori a scopo illustrativo: mostrano la forma della risposta, non sono un benchmark

Sei modi per dire cosa significa una linea
Grammatiche

Sei modi per dire cosa significa una linea

Quasi ogni registro di testo mai scritto ha una di queste sei forme. Trova la tua qui sotto, e la riga di esempio di solito ti aiuterà a capirla più velocemente che a leggere la descrizione.

Grammatiche che puoi scegliere

6 grammatiche
DelimitatoCSV, TSV, pipe, qualsiasi cosa
04:11:07,web-01,ERRORE,disco pieno
  • Specifica il separatore: virgola, tabulazione, punto e virgola, barra verticale o qualsiasi altro carattere usato dal file
  • I campi racchiusi tra virgolette vengono rispettati, quindi una virgola all'interno di un messaggio rimane al suo interno
  • Una riga di intestazione può assegnare un nome alle colonne invece di doverle digitare.
  • Il separatore decimale è a tua discrezione, per i file in cui è una virgola
Chiave = valorecoppie autodescrittive
ts=04:11:07 host=web-01 level=error
  • Le chiavi della riga diventano colonne: non devi specificarle di nuovo
  • Entrambi i separatori sono tuoi: ciò che si trova tra la chiave e il valore e tra le coppie
  • È possibile ignorare un prefisso prima delle coppie, come un timestamp o un tag
  • Comune nei log di applicazioni e macchine che sono stati scritti per essere analizzati
Modelli Grokper quelli goffi
%{TIME:ts} %{LOGLEVEL:lvl} %{DATA:msg}
  • Le catture denominate diventano colonne: la soluzione di riserva quando nient’altro è adatto
  • Le librerie di modelli alla base dei profili integrati sono lì per essere prese in prestito
  • Per un file con più di una forma di linea, è possibile provare diversi modelli in sequenza.
  • Il valore predefinito iniziale: uno messaggio colonna, poi la restringi
righe JSONun oggetto per riga
{"ts":"04:11:07","level":"error"}
  • I campi diventano colonne e tu scegli quali desideri visualizzare.
  • Un oggetto annidato viene mantenuto integro come JSON anziché essere appiattito o eliminato.
  • È possibile rimuovere il wrapper di un runtime container per interrogare il record interno
  • Ciò che la maggior parte delle librerie di logging moderne scrivono quando viene richiesto loro di essere strutturato
Direttiva di intestazioneil file nomina le proprie colonne
#Campi: data ora s-ip cs-metodo
  • Una riga vicino alla parte superiore indica i campi, e le colonne la seguono
  • Il formato esteso W3C e qualsiasi altra cosa che abbia preso in prestito l'idea
  • Si nomina la direttiva, quindi non è necessario scriverla #Campi
  • Niente da mantenere sincronizzato: il file è la fonte dell’elenco delle colonne
Larghezza fissacolonne per posizione
20260910041107 web-01 ERROR
  • Assegna a ogni colonna un nome, una posizione iniziale e una lunghezza: non serve alcun separatore
  • La risposta corretta per i file in cui un campo può contenere il delimitatore
  • Ancora ciò che scrivono mainframe, controllori e molte apparecchiature industriali
  • L'imbottitura viene tagliata, quindi un valore non arriva avvolto negli spazi
Chiedi un integratose è un formato che hanno anche altri

Descriverlo tu è la via più rapida. Se è un formato usato da molte persone, preferiamo distribuirlo come profilo integrato, predefinito dall’Agent per tutti: il link nel connettore porta direttamente a una richiesta e il profilo arriva con un aggiornamento dell’Agent.

È bene chiarire subito cosa c'è dietro a questo. I profili integrati nelle altre pagine di registro sono stati creati e testati con file reali acquisiti, e lo specifichiamo chiaramente. Questo preset non può essere — il formato è quello che descrivi tu, quindi non esiste una struttura fissa che possiamo aver verificato in anticipo. A questo serve l’anteprima: Test connection applica la tua descrizione ai tuoi file e ti mostra cosa è stato analizzato e cosa no, prima che tu confermi.
Descrivilo una volta, usalo ovunque venga eseguito
Ogni sito

Descrivilo una volta, usalo ovunque tu corra

Una descrizione fa parte del connettore, non di una macchina. Gli stessi cinque componenti che leggono il file di audit nella sede centrale lo leggono nello stabilimento e in una seconda area geografica; ogni sede esegue un Network Agent che legge i file dove si trovano e si connette a Query Streams. Dal punto di vista del firewall, è una normale connessione in uscita: non c’è nulla da aprire e non serve configurare una VPN.

Direzione Un'applicazione aziendale che crea il proprio file di audit chiama in uscita
Piano di produzione Un controller che scrive record batch a larghezza fissa chiama in uscita
eu-ovest La stessa app, la stessa descrizione, una seconda cartella chiama in uscita

Tre connessioni in uscita, un unico posto da cui interrogarle: nessuna porta in ingresso, nessuna VPN, nessuna modifica al firewall

Tu dai un nome all'identità

Ogni riga è contrassegnata con la sua origine. Per impostazione predefinita è il nome del file; se la macchina o la sede è un campo della riga, oppure una parte del nome del file, puoi usare quello come etichetta e raggruppare in base a esso.

nome del file · una colonna · parte del nome del file

Niente da aprire

L’Agent apre un’unica connessione in uscita crittografata, sulla quale viaggiano sia le richieste in uscita sia le righe di dati in entrata. Nessuna porta in ingresso, nessuna VPN, nessuna modifica al firewall da richiedere e nessun demone di raccolta da aggiungere a un server che ne esegue già uno.

un collegamento, in entrambe le direzioni

Un'unica query tra regioni

Ogni fonte in un query federata nomina il proprio Agent, così un’unica istruzione può affiancare un log personalizzato al database che lo spiega: il file batch accanto all’ordine a cui appartiene. Incluso nei piani Business ed Enterprise.

1 log + 1 database → 1 set di risultati

Scritto una volta, non per sito

La descrizione di un formato è un'operazione da eseguire una sola volta. Una seconda cartella con la stessa forma rappresenta un secondo connettore con la stessa descrizione, quindi la sua implementazione in un'altra posizione è una fase di configurazione, non una nuova indagine.

1 descrizione → tutte le cartelle dello stesso tipo

Le quattro domande a cui un file di testo non può rispondere
La parte difficile

Le quattro domande a cui un file di testo non può rispondere

Analizzare la riga è la parte più semplice. Queste sono le cose che un file di log non ti dice di se stesso, e ognuna di esse è qualcosa che dichiari tu, non qualcosa che noi supponiamo.

Dove inizia e finisce un record

Una traccia dello stack rappresenta un singolo evento su venti righe, e leggerla come venti eventi produce un conteggio errato. Esistono sei modi per delimitare il confine: una riga, un pattern che apre un record, una riga vuota, un marcatore di apertura e chiusura, una regola di continuazione o un conteggio fisso.

1 record non è sempre 1 riga

La codifica non ha un valore predefinito

Questo è l’unico campo lasciato intenzionalmente vuoto. Interpretare un file Latin-1 come UTF-8 non genera un errore: altera silenziosamente tutti i caratteri accentati e te ne accorgi mesi dopo. Perciò viene chiesto una sola volta, prima della prima sincronizzazione, anziché essere dedotto.

scelto, mai assunto

L'anno in cui la linea non ha

Molti formati indicano il mese e il giorno, ma non l’anno. Ci sono tre modi per stabilirlo: l’anno è nella riga, si ricava dalla data di modifica del file oppure si legge dal nome del file, dove di solito è indicato negli archivi datati.

nella riga · dal file · dal nome

Nulla è stato contato due volte

Ogni file viene identificato tramite i primi 4 KB, così un file rinominato o ruotato viene riconosciuto invece di essere riletto dall’inizio. Il sistema riconosce dieci schemi di rotazione dal nome, oltre all’assenza di rotazione per i file che semplicemente crescono.

Hash del prefisso di 4 KB · finestra di 20.000 record

Cinque parti, e poi è una tabella
La descrizione

Cinque parti, e poi è una tabella

Questi sono tutti i campi da compilare. Ogni profilo integrato nelle altre pagine dei log è composto da queste stesse cinque parti, compilate da noi e predefinite dall’Agent: qui, invece, sono tue.

Limite di recordcosa conta come un evento
una rigaschema di aperturariga vuotaindicatori di inizio e fineregola di continuazioneconteggio fisso
Grammaticacome si divide un record
delimitatochiave=valoregrokrighe JSONdirettiva di intestazionelarghezza fissa
Timestampquale parte è il tempo
campoformatofuso orariomodalità annocomposto da due campivalori che significano nullo
Colonnenomi e tipi
stringaintbigintraddoppiarebooltimestamptimestamptzdatajson
Crescitacome cambiano i file
appendicischema di rotazionesuffissi compressianello di filelunghezza massima della linea
Le impostazioni predefinite sono volutamente modeste, ed è proprio questo il design: uno messaggio una colonna per riga e l’ora dell’evento ricavata dalla data di modifica del file. È sufficiente per completare una prima sincronizzazione con quasi qualsiasi file; poi puoi perfezionare la configurazione in base all’anteprima, finché le colonne non corrispondono a quelle desiderate. Ogni riga include anche il file di origine e tutto viene scritto in un’unica tabella, set di file.eventi.
Ciò che questo deliberatamente non fa

Ciò che questo deliberatamente non fa

Di' prima la più grande: prova i profili integrati prima di ricorrere a questo. Esegui Test connection e l’Agent propone il profilo integrato più simile che riesce a riconoscere. Scegliendone uno, l’Agent lo imposta e hai finito: non devi descrivere nulla. Questo preset è la soluzione di riserva per i formati usati da nessun altro, non il punto di partenza predefinito.

Nessuno legge i tuoi log per dedurne il formato. La corrispondenza più simile proposta confronta la struttura del tuo file con i profili inclusi: è una ricerca di corrispondenze rispetto a formati noti, non un modello che legge i tuoi dati. Se nessun profilo corrisponde, devi scrivere tu la descrizione e verificarla tramite l’anteprima.

Non si tratta di un flusso di dati in tempo reale. Query Streams legge i file così come sono sul disco quando si esegue la query, quindi un'operazione non riuscita viene visualizzata come righe anziché come un flusso di dati da monitorare. Se è necessario ricevere avvisi in frazioni di secondo su una riga durante la stampa, una pipeline di log è lo strumento più adatto.

Legge testo, e solo testo. Gli archivi e i database binari presenti nella cartella — .zip, .taxi, come un file journal grezzo, vengono lasciati intatti invece di essere aperti e interpretati. Vengono lette le rotazioni compresse di un log di testo; non viene letto un container che contiene altro.

La descrizione può essere errata, motivo per cui non viene scartato nulla. Una riga la cui grammatica non corrisponde viene mantenuta come riga grezza con una motivazione allegata, in modo che un errore risulti visibile e interrogabile, anziché come un vuoto silenzioso. Correggi la descrizione e risincronizza. Il resto segue il modello usuale: l'agente si connette in uscita e legge i file, nulla viene installato sul server, nulla viene scritto e l'accesso è in sola lettura.

Dalla connessione a risultati utili.

  1. Installa Network Agent dove può accedere alla cartella e configura il connettore per usarlo.
  2. Esegui prima Test connection. L’Agent identifica le impronte dei file trovati e propone il profilo integrato più simile: se uno è adatto, selezionalo e non dovrai descrivere altro.
  3. Se nessuno è adatto, descrivi tu il formato: dove inizia un record, quale delle sei grammatiche usa, dove si trova il timestamp e come chiamare le colonne.
  4. Scegli lo schema di rotazione e, per i formati in cui i timestamp non indicano l’anno, specifica da dove ricavarlo. La descrizione verrà quindi impostata.
  5. Interrogalo. La tabella si comporta esattamente come quella di qualsiasi altro connettore di log, perché è lo stesso driver a leggere un formato fornito da te invece di uno incluso da noi.

Sfrutta i risultati di Custom Logs.

Un’unica connessione serve i tuoi fogli di calcolo, le tue app e i tuoi strumenti di IA. Concedi l’autorizzazione a eseguire una query salvata; i destinatari vedono i risultati autorizzati, mentre l’SQL e le credenziali di accesso all’origine restano nascosti.

Per il tuo team, i fornitori e i partner

Condividi un risultato aggiornato di Custom Logs con chiunque — un collega, un fornitore o un partner — sotto forma di griglia salvabile nei preferiti, che recupera dati aggiornati ogni volta che viene aperta, da telefono, tablet o computer. Gli altri vedono i risultati, mai le query SQL o i file.

Come funziona il visualizzatore di dati

Per app e sistemi

Pubblica una query Custom Logs come endpoint JSON autenticato, richiamabile da qualsiasi applicazione, con una specifica OpenAPI 3.1 e raccolte Postman, Insomnia e Hoppscotch già pronte. Non viene aperta alcuna porta del database.

Esplora l’API REST

Incolla il codice Power Query M generato nell’Editor avanzato di Power BI e il report leggerà i risultati aggiornati di Custom Logs via HTTPS: nessun driver ODBC e nessuna porta del database aperta.

Esplora Power BI

Sincronizza le righe di Custom Logs in una base Airtable secondo una pianificazione oppure recuperale all’interno di uno script di automazione Airtable.

Scopri Airtable

Collega un’app Python Anvil a Custom Logs tramite l’endpoint REST, invece di incorporare le credenziali del database nell’app.

Scopri Anvil

Per gli strumenti di intelligenza artificiale

Consenti a un assistente IA di accedere in sola lettura a Custom Logs e allo schema necessario per scrivere query SQL corrette, senza inserire credenziali nella chat.

Esplora MCP

Consegnato alle persone

Collega Custom Logs al resto dei tuoi dati.

Riunisci database, API aziendali, file e log in un’unica query di sola lettura. Ogni connettore supporta le query federate.

Indica le connessioni e le tabelle. Query Streams gestisce le query alle origini e combina i risultati.

Esplora le query federate
Esempio illustrativo di query tra origini
-- niente copiato, niente unito, niente programmato
SELEZIONARE   c.region, COUNT(*) AS ordini, SUM(i.amount_due) AS fatturati
DA     customlogs.fileset.orders1 f
CONGIUNGERE     pg_crm.clienti pubblici2   c ON c.id = f.customer_id
CONGIUNGERE     fatturazione.stripe.invoices3   i ON i.customer = c.stripe_id
GRUPPO PER c.regione
ORDINATO DA fatturata DESCRIZIONE;

Usa i nomi delle tue connessioni, schemi, tabelle e colonne.

Condiviso tra tutti i connettori della famiglia.

Ogni connettore di log fornisce anche

  • events: una riga per ogni riga analizzata, con il timestamp, i campi definiti dalla grammatica e _source_file, che indica il file di provenienza.
  • events_raw_lines: righe che non corrispondono alla grammatica, conservate così come sono anziché eliminate, per permetterti di rispondere comunque a domande su formati imprevisti.
  • files_current e files_events: l’inventario aggiornato e la traccia di controllo, che mostrano cosa è comparso, cosa è stato ruotato, cosa è scomparso e cosa è stato trattenuto, con il nome del file e il motivo.
  • La rotazione è compresa, non aggirata: dieci schemi di rotazione denominati, oltre ai file non ruotati, così il log di ieri e il relativo archivio compresso sono la stessa tabella di quello di oggi.

Buono a sapersi

  • Sola lettura, garantita: una sola istruzione alla volta, solo SELECT e simili. Non scriviamo, spostiamo, ruotiamo né tronchiamo mai i tuoi log.
  • Non viene caricato nulla: le righe vengono analizzate e memorizzate nella cache, in forma crittografata, sul tuo computer, accanto all’agent. Solo il risultato di una query esce dalla tua rete.
  • Vengono letti solo i nuovi byte: l’agent riprende da dove si era fermato in ciascun file invece di rileggerlo, così un log molto attivo non costa di più ogni giorno.
  • Il dialetto SQL è DuckDB: lo stesso SQL che useresti con qualsiasi altro connettore.

Domande su Custom Logs

Dove posso usare i risultati delle query di Custom Logs?

Usa i risultati di Custom Logs in Excel, Google Sheets e Data Viewer; nelle tue app tramite Database REST API e negli strumenti di IA tramite MCP o Nova. I risultati salvati alimentano anche le destinazioni Automation supportate, i report e gli avvisi. La disponibilità delle destinazioni e i limiti dipendono dal tuo piano.

Devo aprire una porta in ingresso per Custom Logs?

No. Installa Network Agent su una macchina che può raggiungere Custom Logs. L’agent si connette verso l’esterno a Query Streams; non servono porte in ingresso né VPN. La sorgente deve comunque consentire alla macchina che esegue l’agent di connettersi secondo le proprie regole di accesso.

I miei file Custom Logs vengono caricati?

Network Agent legge i file dove si trovano e conserva la propria cache sulla macchina con l'agente. I file sorgente non vengono caricati, spostati né riscritti. Solo i risultati delle query richiesti escono dalla rete tramite la connessione crittografata in uscita.

Di cosa ho bisogno per connettere Custom Logs?

Cartella: qualsiasi cartella contenente log di testo, su disco locale o su una condivisione di rete indicata come \\server\share (mai una lettera di unità mappata; su Linux o Mac, va montata prima); include le sottocartelle e supporta criteri di inclusione ed esclusione. Grammatiche: delimitata, chiave = valore, grok, righe JSON, direttiva di intestazione #Fields e larghezza fissa. Delimitazione dei record: la imposti tu: una riga per record oppure un pattern, un numero fisso di righe, una riga vuota o un marcatore, così i record su più righe restano interi. Timestamp: specifica posizione e formato; se nella riga manca l’anno, può essere ricavato dalla data di modifica del file o dal suo nome.

Posso unire Custom Logs ad altre sorgenti connesse?

Sì. Le query federate supportano ogni tipo di connettore, inclusi database, API aziendali, file e log. Indica le connessioni e le tabelle in un’unica query di sola lettura. Query Streams traduce, quando necessario, le parti relative alle origini e combina i risultati. Scopri come funzionano le query federate.

Quando dovrei usare questa opzione al posto di un profilo predefinito?

Quando nessun’altra opzione è adatta. I profili integrati coprono controller industriali, server web, container, framework applicativi e log di sistema. Ognuno è stato scritto e testato con file reali: se il tuo log rientra in una di queste categorie, selezionare il profilo richiede meno lavoro ed è più collaudato che descriverlo da zero.

Esegui un test di connessione prima di decidere. L'agente confronta la struttura del tuo file con i profili predefiniti e ti propone quello più simile che riconosce, quindi la risposta proviene dai tuoi file effettivi e non da una supposizione. Consulta la descrizione se il test non restituisce alcun risultato.

Devo conoscere le espressioni regolari?

Di solito no. Cinque delle sei grammatiche non necessitano di alcun modello: un file delimitato richiede un separatore, un file chiave=valore descrive se stesso, le righe JSON descrivono se stesse, una direttiva di intestazione assegna un nome alle proprie colonne e la larghezza fissa richiede un inizio e una lunghezza per colonna.

Grok è il sesto e rappresenta la soluzione per le righe davvero ostiche. Anche in quel caso, perlopiù assembli elementi con nome — un timestamp, un livello, il resto — e puoi attingere alle librerie di pattern dei profili integrati, invece di partire da una riga vuota.

Devo per forza scrivere la descrizione correttamente al primo tentativo?

No, e le impostazioni predefinite sono impostate in modo che tu non debba farlo. Di default, la prima sincronizzazione ha successo su quasi tutti i file di testo: uno messaggio una colonna per riga, con l’ora dell’evento ricavata dalla data di modifica del file. Otterrai così una tabella funzionante che puoi consultare davvero.

Poi puoi perfezionare la descrizione. L’anteprima mostra cosa produce sulle tue righe, così puoi estrarre la gravità o il numero di processo in una colonna dedicata e vedere il risultato prima di confermare. Puoi modificarla in seguito e sincronizzare di nuovo: nel frattempo non è stato eliminato nulla.

I miei eventi si estendono su più righe. È in grado di gestire una traccia dello stack?

Sì, ed è l’impostazione di cui le persone hanno più spesso bisogno. Un record non deve necessariamente corrispondere a una riga: puoi specificare che inizia ogni volta che una riga corrisponde a un pattern — di solito un timestamp all’inizio della riga — e che tutto ciò che segue appartiene a quel record fino alla corrispondenza successiva.

Esistono altri cinque modi per tracciare il confine se questa non è la forma desiderata: una linea vuota tra i record, un marcatore di apertura e chiusura, una regola per stabilire cosa si intende per linea di continuazione, oppure un numero fisso di linee. Un'eccezione di venti linee si presenta quindi come un'unica riga contenente l'intera traccia.

E se le righe non avessero alcuna indicazione oraria?

È il caso predefinito e funziona. Se non viene indicato alcun campo come orario, l’ora dell’evento viene ricavata dalla data di modifica del file: le righe continuano a essere ordinate e a rispettare un periodo di conservazione, ma l’ora è precisa in base al file, non alla singola riga.

Se l’ora è presente nella riga ma suddivisa in due campi — una colonna per la data e una per l’ora, una situazione comune nei file a larghezza fissa e delimitati — puoi indicare entrambi i campi e combinarli in un unico timestamp.

Quale codifica devo scegliere?

UTF-8 è la risposta corretta per la maggior parte dei file creati in questo decennio. È l'unico campo senza un valore predefinito, e questo è voluto: presumere che UTF-8 sia presente in un file Latin-1 non genera un errore, ma altera silenziosamente ogni carattere accentato, e un'alterazione silenziosa è molto peggio di una domanda posta una sola volta.

Se hai dubbi, te lo mostrerà l’anteprima: una codifica errata apparirà subito come testo illeggibile nelle righe di esempio. I vecchi software Windows e le apparecchiature industriali sono i motivi più comuni per cui la codifica potrebbe non essere UTF-8.

Potresti aggiungere il mio formato come predefinito?

Contattaci. Se si tratta di un formato utilizzato da un numero ragionevole di persone — un prodotto commerciale, un framework diffuso o un’apparecchiatura industriale — preferiamo integrarlo come profilo predefinito, invece di chiedere a ogni cliente di descrivere la stessa cosa. Il connettore include un collegamento diretto per inviare una richiesta.

Una soluzione integrata è migliore sia per te che per noi: è configurata dall'Agent, testata con acquisizioni reali e arriva sui tuoi server con un aggiornamento dell'Agent, senza che sia necessario alcun intervento manuale sul connettore.

Che fine fanno le linee che non corrispondono?

Vengono mantenuti, non scartati. Una riga la cui grammatica non corrisponde viene conservata come riga grezza con una motivazione allegata, in modo che una voce anomala, un formato che è cambiato durante il tuo lavoro o una descrizione non ancora del tutto corretta vengano visualizzati e consultati, anziché apparire come una lacuna silenziosa nei tuoi dati.

È questa rete di sicurezza che rende ragionevole perfezionare una descrizione. Non devi mai scegliere tra un parser rigoroso che scarta i dati e uno permissivo che restituisce un muro di testo: le righe analizzate sono tipizzate e tutto ciò che non è stato analizzato resta disponibile accanto a esse.

Porta Custom Logs negli strumenti in cui lavori.

Inizia con Free: ogni tipo di connettore, 2 origini dati e 1 Network Agent. Aggiungi le quote previste dal piano man mano che crescono le tue esigenze.