[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Debian systemd maintainer resigns due to online bullying + risultati votazione DD



ma hai un monitor con 5.000.000 di colonne?
potresti impostare il tuo client per spezzare le righe al 72° carattere?
è davvero difficile rispondere alle tue mail

On 20/11/2014 03:03, gerlos wrote:

Allora, io un file testuale lo so spezzare: lo faccio al newline, e conosco mille e più modi per farlo (sed, awk, split, ed anche sh con un po’ di vodoo). So anche concatenare i log spezzati e compressi da logrotate, per estendere una indagine a più file log. E probabilmente sarei capace di scrivermi un “coso” in python che emula il funzionamento di logrotate, senza essere un pythonista cintura nera.

bene :-)

E forse sono ingenuo, ma pensavo che per fare ricerche e filtrare i contenuti di quei log potessi usare grep, awk, sec e vim. O al peggio i miei occhi, scorrendo le righe dei log.

ma queste sono ricerche approssimative, che non ti permettono di trovare sempre ed esattamente e solo quello che cerchi... questo se sai cosa cercare. Se non lo sai le cose si complicano parecchio (es: vuoi vedere se c'è l'indizio di qualche possibile problema futuro)

Se usi i tuoi occhi, è facile farsi sfuggire qualche informazione "interessante", quando le righe da guardare sono davvero tante.

Ripeto, sarò ingenuo, ma non capisco alcune cose (sarei felice se me le poteste spiegare, davvero, non è polemica, è ignoranza tecnica):

1. Come si fa a “spezzare” un file binario? “dove” si fa? Con che logica dovrebbe funzionare un clone di logrotate che funziona su un log binario?

perché lo devi spezzare? a cosa serve questa operazione?
perché dovrebbe esserci un clone di logrotate per un file binario? a cosa servirebbe?

logrotate esiste perché:
1) i file testuali occupano molto più spazio di quello che gli occorrerebbe per rappresentare la stessa informazione (anche l'80-90% in più... in alcuni casi anche il 99% in più) 2) i file di log tendono a diventare enormi e questo può rallentare i tempi necessari per analizzarli... fino a rendere inutilizzabili alcuni programmi che cercano di leggerli

2. Il fatto che il log sia binario elimina la necessità di ruotarlo e comprimerlo? Come?

se è binario si può diminuire l'entropia e arrivare ad occupare uno spazio vicino al minimo indispensabile... quindi non serve comprimerlo. Inoltre se il file è binario, nella mia ipotesi (non so effettivamente, perché non ho ancora indagato, cosa usa systemd per i suoi log), è un database e quindi non ha necessario neanche del punto 2, perché l'accesso all'informazione è mantenuta bassa da indici e magari suddivisione dell'informazione su più tabelle relazionate tra loro

3. Perché dovrei indicizzare un file di log? Cosa c’è che non va nelle ricerche fatte ad esempio con grep semplicemente quando serve? Come potrebbe un file binario agevolare il lavoro di tool come logcheck, per esempio? (tempo fa ho “greppato” un log di 30MB da un server con un problema hardware che rendeva il kernel logorroico, e sono sopravvissuto senza avere indici…)

se spezzi l'informazione in campi e crei delle tabelle relazionate tra di loro e indicizzi l'accesso a tali tabelle, allora puoi:
* accedere ad un'informazione in tempi brevi
* fare ricerche complesse con semplici query
* avere una quantità di dati enorme e non avere problemi di attesa per trovare un'informazione
* accedere a dati in modo esatto e non approssimativo

se usi grep, hai i problemi che ho detto sopra.

Un esempio concreto, voglio vedere gli errori che possono essere critici che sono stati generati dall'ultimo boot (o dagli ultimi X boot).
Con systemd ho la risposta immediatamente con un semplice comando:
# journalctl -b -p 3

se dovessi usare syslog (ma in realtà i messaggi critici potrebbero essere presenti su più log che vorrei analizzare) dovrei: 1) cercare di crearmi almeno un file (o flusso dati) che contiene almeno tutti i log generati dall'ultimo boot e quindi prendere tutte le rotazioni di syslog non compresse, quelle compresse (scomprimendole). Devo usare cat, gunzip (o altro programma che devo usare per decomprimerli) 2) buttare via da tale file (flusso dati) tutte le righe che non sono dell'ultimo boot. Con una o più grep (ma devo stare attendo a non prendere anche altre righe che non c'entrano nulla con il log generato dall'ultimo boot o buttarne via alcune che sono dell'ultimo boot... potrebbe essere a cavallo di due giorni e quindi le cose si complicano un po'... potrebbero essere stati fatti più boot nello stesso giorno... altra complicazione) 3) a questo punto, se ho fatto le cose correttamente, devo cercare quali sono i log che potrebbero visualizzarmi qualche criticità... e qui iniziano i problemi più grossi, perché non esiste una regola facile per trovarli... in pratica dovrei per ogni programma/demone/quant'altro che scrive sui log che sto analizzando conoscere quali sono i messaggi critici, per poterli estrarre ed estrarre solo quelli

4. Abbiate pazienza, non capisco neanche perché dovrebbe essere più semplice o più efficiente appendere contenuti ad un file binario rispetto ad appendere una riga ad un file testuale.

appendere?
In un file binario non aggiungi dati in fondo ad un file, ma li aggiungi in una struttura.

5. In condizioni assurdamente disperate, potrei copiare un file log sul computer di mio cugino ;-) su cui gira Windows, con l’intenzione di esaminarli. Come faccio se sono binari? (se sono testuali, in assenza di meglio, posso usare il buon vecchio Wordpad).

lo stesso lo puoi fare con il file binario.
Nella mia ipotesi è un database, ad esempio di sqlite3... e sufficiente scaricarti sqlite3 e puoi leggerteli senza problemi su qualsiasi PC dove si può installare sqlite3.

Mi sembra che tu stia confrontando una bicicletta con un aereo e ti chiedi perché dovrei usare un aereo al posto di una bicicletta, prendendo come metodo di indagine quello che fai passo passo con la tua bicicletta e non quello che l'aereo fa. Conclusione l'aereo è inutile perché non lo puoi usare come una bicicletta...

Ciao
Davide

PS: purtroppo ho poco tempo e non riesco a leggere tutti i messaggi :-(

--
Dizionari: http://linguistico.sourceforge.net/wiki
Petizione contro i brevetti software in Europa:
http://petition.stopsoftwarepatents.eu/
Non autorizzo la memorizzazione del mio indirizzo su outlook


Reply to: