Aw: Re: Logdateien plötzlich binär laut grep nach Upgrade

2019-02-15 Diskussionsfäden Bernd Müller

Ich hab es auch nur irgendwo gelesen, da ich dasselbe Problem bei der Analyse von zusammengefassten Logfiles hatte. Immer mal wieder waren null-Bytes enthalten. Der bzw. die Rechner wurden auch regelmäßig nicht korrekt heruntergefahren. Ich hatte noch eine andere Filtermethode, finde aber das mit cat einfacher und funktioniert.

 

Grüße Bernd 

 

Gesendet: Donnerstag, 14. Februar 2019 um 22:21 Uhr
Von: "Heiko Schlittermann" 
An: lug-dd@mailman.schlittermann.de
Betreff: Re: Logdateien plötzlich binär laut grep nach Upgrade

"Bernd Müller"  (Do 14 Feb 2019 21:20:35 CET):
>
> Das Problem mit den Log-Dateien entsteht, wenn der Prozess Speicher für das
> Logfile angefordert hat, aber aus irgendeinem Grund dann doch nicht in die
> Datei schreibt. In diesem Fall werden einfach Null-Bytes in das Logfile

Du meinst, syslog-ng alloziert schon mal genug Platz, um dann
anschließend reinzuschreiben? Mit mmap(2), oder einfach direkt im File
mit lseek(2)? Das hielte ich für sehr gewagt, weil dann Tools, die am
Ende des Logfiles mitlesen möchten, ein Problem hätten.

Ist das ein xfs, was Du da verwendest?

> Ich möchte aber lieber wissen, was da warum passiert ist. Ich möchte nicht
> mitten im Monat die Logs rotieren. Ich kann nicht alle Helfer pauschal auf
> grep -a umstellen.

Haben diese Files auffällige Größen (irgendwelche Vielfaches von 4k oder
so)

--
Heiko






Re: Logdateien plötzlich binär laut grep nach Upgrade

2019-02-15 Diskussionsfäden Jan Dittberner
On Fri, Feb 15, 2019 at 11:11:18AM +0100, Heiko Schlittermann wrote:
> Christian Perle  (Do 14 Feb 2019 23:11:11 CET):
> > >  ns2:~# file /var/log/syslog
> > > /var/log/syslog: ASCII text, with very long lines
> >
> > Wenn eine Datei nur lang genug ist, erkennt file nicht, wenn sich
> > irgendwo weiter hinten Binaermuell darin befindet. Probeweise habe
> > ich meine /var/log/syslog (aktuell 3 MB) nach /tmp kopiert und in
> > die Kopie ab Offset 150 eine Folge von 8000 Nullbytes geschrieben:
> 
> File schaut nur am Anfang nach magic patterns, aus dem Bauch würde ich
> sagen, daß schon nach ca 1k Schluß ist. Ich weiß nicht, ob es führende
> binäre Nullen „skippen“ würde, glaube es aber nicht.

man 1 file
man 5 magic

da passiert viel "Magie" :-)

Default für die maximale Anzahl an Bytes ist laut der manpage von file 1
MiB, ob aber überhaupt soviel gelesen wird, hängt aber vom Dateityp ab.

In der Definition für libmagic kann man für bestimmte Tests Offsets angeben,
wenn die magischen Bytes erst später in einer Datei kommen, für den Fall von
oben wird das aber wahrscheinlich nicht helfen. Das Überspringen von
Null-Bytes hab ich nicht gefunden.


Viele Grüße
Jan

-- 
Jan Dittberner - Debian Developer
GPG-key: 4096R/0xA73E008FB8DD 2009-05-10
 B2FF 1D95 CE8F 7A22 DF4C  F09B A73E 0055 558F B8DD
https://jan.dittberner.info/


signature.asc
Description: PGP signature


Re: Logdateien plötzlich binär laut grep nach Upgrade

2019-02-15 Diskussionsfäden Heiko Schlittermann
Christian Perle  (Do 14 Feb 2019 23:11:11 CET):
> >  ns2:~# file /var/log/syslog
> > /var/log/syslog: ASCII text, with very long lines
>
> Wenn eine Datei nur lang genug ist, erkennt file nicht, wenn sich
> irgendwo weiter hinten Binaermuell darin befindet. Probeweise habe
> ich meine /var/log/syslog (aktuell 3 MB) nach /tmp kopiert und in
> die Kopie ab Offset 150 eine Folge von 8000 Nullbytes geschrieben:

File schaut nur am Anfang nach magic patterns, aus dem Bauch würde ich
sagen, daß schon nach ca 1k Schluß ist. Ich weiß nicht, ob es führende
binäre Nullen „skippen“ würde, glaube es aber nicht.

--
Heiko


signature.asc
Description: PGP signature


Re: Logdateien plötzlich binär laut grep nach Upgrade

2019-02-14 Diskussionsfäden Christian Perle
Hallo Ronny,

On Thu, Feb 14, 2019 at 17:04:31 +0100, Ronny Seffner wrote:

> > Um welche Logdateien geht es genau?
> >
> Zum Beispiel auth.log, syslog oder auch mail.log. Also alles was durch
> syslog-ng verwaltet wird.

Hmm, ich kann mich nicht erinnern, dass syslog-ng auf Debian der
Default-Syslogserver waere. Eigentlich ist das doch rsyslogd?

>  ns2:~# file /var/log/syslog
> /var/log/syslog: ASCII text, with very long lines

Wenn eine Datei nur lang genug ist, erkennt file nicht, wenn sich
irgendwo weiter hinten Binaermuell darin befindet. Probeweise habe
ich meine /var/log/syslog (aktuell 3 MB) nach /tmp kopiert und in
die Kopie ab Offset 150 eine Folge von 8000 Nullbytes geschrieben:

$ ls -l syslog
-rw-r- 1 chris chris 3145267 Feb 14 22:58 syslog

$ dd if=/dev/zero of=syslog conv=notrunc bs=1 seek=150 count=8000
8000+0 records in
8000+0 records out
8000 bytes (8,0 kB, 7,8 KiB) copied, 0,0191606 s, 418 kB/s

$ file -i syslog
syslog: text/plain; charset=us-ascii

Voila, file sagt "ascii", obwohl 8000 Nullbytes drin sind.

Gruss,
  Christian
-- 
Christian Perlechris AT linuxinfotag.de
010111  http://chris.silmor.de/
101010  LinuxGuitarKitesBicyclesBeerPizzaRaytracing



Re: Logdateien plötzlich binär laut grep nach Upgrade

2019-02-14 Diskussionsfäden Heiko Schlittermann
"Bernd Müller"  (Do 14 Feb 2019 21:20:35 CET):
>
> Das Problem mit den Log-Dateien entsteht, wenn der Prozess Speicher für das
> Logfile angefordert hat, aber aus irgendeinem Grund dann doch nicht in die
> Datei schreibt. In diesem Fall werden einfach Null-Bytes in das Logfile

Du meinst, syslog-ng alloziert schon mal genug Platz, um dann
anschließend reinzuschreiben? Mit mmap(2), oder einfach direkt im File
mit lseek(2)? Das hielte ich für sehr gewagt, weil dann Tools, die am
Ende des Logfiles mitlesen möchten, ein Problem hätten.

Ist das ein xfs, was Du da verwendest?

> Ich möchte aber lieber wissen, was da warum passiert ist. Ich möchte nicht
> mitten im Monat die Logs rotieren. Ich kann nicht alle Helfer pauschal auf
> grep -a umstellen.

Haben diese Files auffällige Größen (irgendwelche Vielfaches von 4k oder
so)

--
Heiko


signature.asc
Description: PGP signature


Aw: Logdateien plötzlich binär laut grep nach Upgrade

2019-02-14 Diskussionsfäden Bernd Müller
 

Hi, kann sein, dass es schon beantwortet wurde, ich habe nicht jede Antwort gelesen.

 

Das Problem mit den Log-Dateien entsteht, wenn der Prozess Speicher für das Logfile angefordert hat, aber aus irgendeinem Grund dann doch nicht in die Datei schreibt. In diesem Fall werden einfach Null-Bytes in das Logfile geschrieben. Das kann man auch mit gedit sehen.

 

Ich werte dann mit

 

   cat -e system.log | grep irgendwas

 

aus. Die Binärdaten werden ignoriert und ich kann das ganze Logfile auswerten.

 

Grüße Bernd

 


Gesendet: Donnerstag, 14. Februar 2019 um 10:04 Uhr
Von: "Ronny Seffner" 
An: "'Linux-User-Group Dresden'" 
Betreff: Logdateien plötzlich binär laut grep nach Upgrade

Hallo,

ich habe ein System von Debian 8 auf 9 angehoben, das mache ich nicht zum
ersten Mal. Diesmal habe ich aber Nachwehen mit grep und logcheck. Grep
matcht in den Logfiles bis zum Tag des Upgrades und meldet dann noch
"Übereinstimmungen in Binärdatei gefunden". Logcheck arbeitet mit einem
ignore-file voller regex, die plötzlich nicht mehr matchen, ich vermute hier
einen Zusammenhang.

Ich könnte grep -a nehmen.
Ich könnte die logs einmal rotieren (verifiziert, funktioniert dann wieder
alles).

Ich möchte aber lieber wissen, was da warum passiert ist. Ich möchte nicht
mitten im Monat die Logs rotieren. Ich kann nicht alle Helfer pauschal auf
grep -a umstellen.

Wie also kann ich Dateien identifizieren, bei denen grep auf die Binäridee
kommen wird (offenbar werden die ja erst "mittig" binär)? Wie kann ich die
Dateien konvertieren? Ich suche was in der Art 'finde dateien | prüfe und
konvertiere'.


Mit freundlichen Grüßen / Kind regards
     Ronny Seffner
--
Ronny Seffner | Alter Viehweg 1 | 01665 Klipphausen
www.seffner.de | ro...@seffner.de | +49 35245 72950
7EA62E22D9CC4F0B74DCBCEA864623A568694DB8


 






Re: Logdateien plötzlich binär laut grep nach Upgrade

2019-02-14 Diskussionsfäden Carsten Weber
Hi,

Am Thu, 14 Feb 2019 17:13:00 +0100
schrieb "Ronny Seffner" :

> Muss man vi noch befähigen "Sonderzeichen" sichtbar zu machen?

"-b" vermutlich - jedenfalls für vim. Zeigt vim bei mir aber eh auch so
an, wie sich vi verhält, weiß ich nicht (Gnade der späten Geburt...)

Ansonsten das bereits erwähnte hexdump, mit -C, ich vermute irgendwo ist
da ein NUL byte drin, oder horizontaler Tab oder irgendsowas Verirrtes.
Ich hatte neulich ein ähnliches Problem mit Logfiles, kann mich aber
gerade absolut nicht daran erinnern, was genau da war, da ich seither
leider durch einen Türrahmen gegangen bin und das bei mir immer zu
partiellem Gedächtnisverlust führt :/ Mal sehen, obs meinem Kollegen
noch einfällt.

Oder, eben gebastelt, schau mal die Häufigkeitsverteilung der Bytes an. 

hexdump -v -e '/1 "%02X\t"' -e '/1 "%c\n"' FILE|sort|uniq -c

Der zweite Block nach -e printed das Zeichen noch, das kann aber
natürlich die Ausgabe stören je nach Sonderzeichen, ggf. also weglassen,
und die seltensten Zeichen voran:

hexdump -v -e '/1 "%02X\n"' FILE|sort|uniq -c|sort -hr

Grüße
Carsten



Re: Logdateien plötzlich binär laut grep nach Upgrade

2019-02-14 Diskussionsfäden Fabian Hänsel
Hallo,

wenn du die Ecke eingrenzen kannst, würde ich sie mir mit "hexdump" oder was 
immer die Kommandozeile hergibt betrachten, am besten im einem Tool das hex und 
Ascii nebeneinander zeigt.

Beste Grüße
  Fabian

Am 14. Februar 2019 17:13:00 MEZ schrieb Ronny Seffner :
>Hallo Fabian,
>
>auch Dir ein Dank für die Ideen.
>
>> Ich würd zur manuellen Binärbaumsuche greifen: teile die Datei in
>zwei
>> Hälften (dd), greppe in beiden nach irgendwas vorhandenem (ein "e"),
>mit
>> einer matchenden Hälfte wieder von vorn beginnen, bis die Hälfte
>klein
>> genug ist, dass man es mit bloßem Auge sofort sieht.
>>
>Ich bin anders rangegangen aber mit der selben Motivation. Ich habe die
>Datei im vi offen und sehe zwischen der letzten grepbaren Zeile bis zum
>ersten Auftreten des Suchstrings im "binären Bereich" eben nichts
>augenscheinliches. Muss man vi noch befähigen "Sonderzeichen" sichtbar
>zu machen?
>
>
>Mit freundlichen Grüßen / Kind regards
> Ronny Seffner
>--
>Ronny Seffner  |  Alter Viehweg 1  |  01665 Klipphausen
>www.seffner.de  |  ro...@seffner.de  |  +49 35245 72950
>7EA62E22D9CC4F0B74DCBCEA864623A568694DB8


AW: Logdateien plötzlich binär laut grep nach Upgrade

2019-02-14 Diskussionsfäden Ronny Seffner
Hallo Fabian,

auch Dir ein Dank für die Ideen.

> Ich würd zur manuellen Binärbaumsuche greifen: teile die Datei in zwei
> Hälften (dd), greppe in beiden nach irgendwas vorhandenem (ein "e"), mit
> einer matchenden Hälfte wieder von vorn beginnen, bis die Hälfte klein
> genug ist, dass man es mit bloßem Auge sofort sieht.
>
Ich bin anders rangegangen aber mit der selben Motivation. Ich habe die Datei 
im vi offen und sehe zwischen der letzten grepbaren Zeile bis zum ersten 
Auftreten des Suchstrings im "binären Bereich" eben nichts augenscheinliches. 
Muss man vi noch befähigen "Sonderzeichen" sichtbar zu machen?


Mit freundlichen Grüßen / Kind regards
 Ronny Seffner
--
Ronny Seffner  |  Alter Viehweg 1  |  01665 Klipphausen
www.seffner.de  |  ro...@seffner.de  |  +49 35245 72950
7EA62E22D9CC4F0B74DCBCEA864623A568694DB8




AW: Logdateien plötzlich binär laut grep nach Upgrade

2019-02-14 Diskussionsfäden Ronny Seffner
Hallo Christian,

danke, dass Du Dich meiner annimmst.

> Um welche Logdateien geht es genau?
>
Zum Beispiel auth.log, syslog oder auch mail.log. Also alles was durch
syslog-ng verwaltet wird.

> Du koenntest zunaechst mal "file" und "file -i" auf die betreffenden
> Dateien ansetzen.
> 
Das hatte ich schon am Start:

 ns2:~# file /var/log/syslog
/var/log/syslog: ASCII text, with very long lines

ns2:~# file -i /var/log/syslog
/var/log/syslog: text/plain; charset=us-ascii

ns2:~# locale
LANG=de_DE.UTF-8
LANGUAGE=
LC_CTYPE="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_PAPER="de_DE.UTF-8"
LC_NAME="de_DE.UTF-8"
LC_ADDRESS="de_DE.UTF-8"
LC_TELEPHONE="de_DE.UTF-8"
LC_MEASUREMENT="de_DE.UTF-8"
LC_IDENTIFICATION="de_DE.UTF-8"
LC_ALL=


Mit freundlichen Grüßen / Kind regards
     Ronny Seffner
--
Ronny Seffner  |  Alter Viehweg 1  |  01665 Klipphausen
www.seffner.de  |  ro...@seffner.de  |  +49 35245 72950
7EA62E22D9CC4F0B74DCBCEA864623A568694DB8




Re: Logdateien plötzlich binär laut grep nach Upgrade

2019-02-14 Diskussionsfäden Fabian Hänsel
Hallo,

Ich würd zur manuellen Binärbaumsuche greifen: teile die Datei in zwei Hälften 
(dd), greppe in beiden nach irgendwas vorhandenem (ein "e"), mit einer 
matchenden Hälfte wieder von vorn beginnen, bis die Hälfte klein genug ist, 
dass man es mit bloßem Auge sofort sieht. 

Beste Grüße
  Fabian

Am 14. Februar 2019 14:53:41 MEZ schrieb Christian Perle 
:
>Hallo Ronny,
>
>On Thu, Feb 14, 2019 at 10:04:09 +0100, Ronny Seffner wrote:
>
>> ich habe ein System von Debian 8 auf 9 angehoben, das mache ich nicht
>zum
>> ersten Mal. Diesmal habe ich aber Nachwehen mit grep und logcheck.
>Grep
>> matcht in den Logfiles bis zum Tag des Upgrades und meldet dann noch
>> "Übereinstimmungen in Binärdatei gefunden".
>
>Um welche Logdateien geht es genau?
>
>> Wie also kann ich Dateien identifizieren, bei denen grep auf die
>Binäridee
>> kommen wird (offenbar werden die ja erst "mittig" binär)? Wie kann
>ich die
>> Dateien konvertieren? Ich suche was in der Art 'finde dateien | prüfe
>und
>> konvertiere'.
>
>Du koenntest zunaechst mal "file" und "file -i" auf die betreffenden
>Dateien ansetzen. Leider kann "file" nicht ausgeben, ab welchem Offset
>eine Datei "binaer" wird, wobei der Begriff auch nicht klar definiert
>ist. Gueltiges UTF-8 Encoding ist auch "binaer", allerdings koennen
>file
>und grep damit umgehen, und erkennen es daher als Text.
>
>Die Dateien zu konvertieren setzt voraus, dass man ihr Encoding
>erkennen kann. Mit "file -i" geht das zu einem gewissen Grad, aber
>spaetestens wenn eine Datei an verschiedenen Offsets unterschiedliche
>Encodings enthaelt, kann "file -i" keine eindeutige Information mehr
>liefern. Wenn eine Datei *wirklich* an einem bestimmten Offset
>Binaermuell enthaelt, laesst sie sich nicht sinnvoll konvertieren.
>
>Gruss,
>  Christian
>-- 
>Christian Perlechris AT
>linuxinfotag.de
>010111 
>http://chris.silmor.de/
>101010 
>LinuxGuitarKitesBicyclesBeerPizzaRaytracing


Logdateien plötzlich binär laut grep nach Upgrade

2019-02-14 Diskussionsfäden Ronny Seffner
Hallo,

ich habe ein System von Debian 8 auf 9 angehoben, das mache ich nicht zum
ersten Mal. Diesmal habe ich aber Nachwehen mit grep und logcheck. Grep
matcht in den Logfiles bis zum Tag des Upgrades und meldet dann noch
"Übereinstimmungen in Binärdatei gefunden". Logcheck arbeitet mit einem
ignore-file voller regex, die plötzlich nicht mehr matchen, ich vermute hier
einen Zusammenhang.

Ich könnte grep -a nehmen.
Ich könnte die logs einmal rotieren (verifiziert, funktioniert dann wieder
alles).

Ich möchte aber lieber wissen, was da warum passiert ist. Ich möchte nicht
mitten im Monat die Logs rotieren. Ich kann nicht alle Helfer pauschal auf
grep -a umstellen.

Wie also kann ich Dateien identifizieren, bei denen grep auf die Binäridee
kommen wird (offenbar werden die ja erst "mittig" binär)? Wie kann ich die
Dateien konvertieren? Ich suche was in der Art 'finde dateien | prüfe und
konvertiere'.


Mit freundlichen Grüßen / Kind regards
     Ronny Seffner
--
Ronny Seffner  |  Alter Viehweg 1  |  01665 Klipphausen
www.seffner.de  |  ro...@seffner.de  |  +49 35245 72950
7EA62E22D9CC4F0B74DCBCEA864623A568694DB8