/var/log volllaufen verhindern

Du suchst ein Programm für einen bestimmten Zweck?
Antworten
reox
Beiträge: 2541
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

/var/log volllaufen verhindern

Beitrag von reox » 07.09.2015 13:56:21

Ich hatte jetzt auf einem server das problem, dass /var/log schnell 6GB verbraucht hat (/ war dann voll, da nicht mehr speicher auf der kiste ist), da ein daemon sehr viele fehler produziert hat. Leider hat logrotate nichts geholfen, da einfach sehr schnell die platte vollgeschrieben wurde... Nachdem logrotate durchgerannt ist wurde wieder der log gefüllt.
Nun kann ich /var/log nicht mal auf eine eigene partition geben, da ich die installation so übernommen habe und alles auf einer partition liegt (auch kein LVM).

Gibt es vielleicht irgend ein tool, welches die dateien überwacht und bei stark ansteigender größe etwas unternimmt? Löschen ist sicher nicht so gut, denn ich würde in einem solchen fall ja gerne wissen was genau schief gegangen ist. Einfach nur ein Mail ist sicher nicht verkehrt, aber hilft halt auch erst am nächsten morgen. Was gäbe es noch für optionen, was habt ihr da im betrieb?

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: /var/log volllaufen verhindern

Beitrag von KBDCALLS » 07.09.2015 13:59:15

Welcher daemon ist denn der schuldige? Eventuell kann man dem das abgewöhnen.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: /var/log volllaufen verhindern

Beitrag von Meillo » 07.09.2015 14:07:26

reox hat geschrieben: Gibt es vielleicht irgend ein tool, welches die dateien überwacht und bei stark ansteigender größe etwas unternimmt?
Logrotate!? ;-)

Du koenntest es stuendlich oder in noch kuerzeren Intervallen laufen lassen und z.B. anhand der Dateigroesse rotieren lassen.

Dann koenntest du noch nach einen schnelleren Benachrichtigungskanal schauen.
Use ed once in a while!

reox
Beiträge: 2541
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: /var/log volllaufen verhindern

Beitrag von reox » 07.09.2015 14:30:16

@KBDCALLS: kam vom php, das logging ist eh schon wieder runtergedreht :) Also zumindest der sollte das nicht nochmal machen...
@Meillo: Ja logrotate rennt ja sowieso schon. Wenn ich das jetzt aber zB auf stündlich setze habe ich da schnell sehr viele files herumliegen. Zum Debuggen von irgendwelchen problemen ist es aber auch oft sinnvoll wenn man die logfiles von letzter woche aufhebt. Oder kann man logrotate so konfigurieren, dass er die logs der letzten woche jede stunde in ein eigenes file schreibt? (so dass ich nicht syslog.168.gz da liegen hab...)

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: /var/log volllaufen verhindern

Beitrag von KBDCALLS » 07.09.2015 14:45:01

Schau dir mal die Dateien in /etc/logrote.d/ an. Da kann man dann Stündlich einstellen und das dann noch Zahlenmäßig begrenzen. Gibts kein Eintrag für php . Dann erstellt man sich einen. Beispiele liegen reichlich in dem Verzeichnis, die man als Vorlage verwenden kann. .
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: /var/log volllaufen verhindern

Beitrag von Meillo » 07.09.2015 14:47:12

reox hat geschrieben: @Meillo: Ja logrotate rennt ja sowieso schon. Wenn ich das jetzt aber zB auf stündlich setze habe ich da schnell sehr viele files herumliegen. Zum Debuggen von irgendwelchen problemen ist es aber auch oft sinnvoll wenn man die logfiles von letzter woche aufhebt.
Soviel ich weiss, kann Logrotate auch nach Datenmenge rotieren, nicht nur nach Zeitabschnitt. Damit kannst du dann dafuer sorgen, dass die Logfiles, die schneller voll laufen auch schneller rotiert werden. Statt z.B. die letzten zwei Monate an Logs aufzuheben, hebst du halt z.B. die letzten 200MB an Logs auf ... zumindest vom Prinzip her. Wirklich begrenzen kannst du die Menge in der Realitaet nicht, aber wenn logrotate oft genug laeuft, dann koennte das helfen. Soviel mir bekannt ist, kannst du logrotate auch mehrfach mit verschiedenen Configs starten. Wenn du weisst, welche Logfiles immer wieder voll laufen, dann koenntest du logrotate mit einer groessenabhaengigen Config speziell fuer diese Logfiles per halbstuendlichem Cronjob starten, denke ich mir.
Use ed once in a while!

Benutzeravatar
noobadix
Beiträge: 53
Registriert: 03.02.2009 03:23:22

Re: /var/log volllaufen verhindern

Beitrag von noobadix » 07.09.2015 16:06:52

So als Überlegung: Können vielleicht mittels Links oder so die zu schreibenden log-Informationen auf einen Ort umgeleitet werden, der genügend Speicherplatz zur Verfügung hat?

Edit: Ja, gerade probiert: Ein symbolischer Link ermöglicht das.
Know your tools, train your basics.

Benutzeravatar
MSfree
Beiträge: 11635
Registriert: 25.09.2007 19:59:30

Re: /var/log volllaufen verhindern

Beitrag von MSfree » 07.09.2015 17:49:08

noobadix hat geschrieben:So als Überlegung: Können vielleicht mittels Links oder so die zu schreibenden log-Informationen auf einen Ort umgeleitet werden, der genügend Speicherplatz zur Verfügung hat?

Edit: Ja, gerade probiert: Ein symbolischer Link ermöglicht das.
Das geht auf jeden Fall, vorausgesetzt, es befindet sich eine andere Partition/Platte in dem Rechner, die genug Platz bietet.

Man kann natürlich die Logs auch über das Netzwerk auf einen ganz anderen Rechner leiten, dann fällt der benötigte Platz beim Zielrechner an, beim Quellrechner kann man dann komplett auf Logs verzichten.

pferdefreund
Beiträge: 3799
Registriert: 26.02.2009 14:35:56

Re: /var/log volllaufen verhindern

Beitrag von pferdefreund » 07.09.2015 19:15:07

Ich hab mir mal da ein Script gebastelt auf der maloche. Der durchsucht /var/log nach Dateien > 1Mb und schickt mir dann ne Mail mit denen. Läuft bei mir täglich, ist jedoch einstellbar und die Größe könnte man anpassen. Hab das Script hier zu Hause leider nicht da, war aber ganz einfach. Bin nicht so der Script-Freak und bekomm das auf die Schnelle jetzt nicht hin, aber Script-Könner gibt es hier viele und eventuell antwortet ja einer von denen.

reox
Beiträge: 2541
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: /var/log volllaufen verhindern

Beitrag von reox » 07.09.2015 20:32:23

noobadix hat geschrieben:So als Überlegung: Können vielleicht mittels Links oder so die zu schreibenden log-Informationen auf einen Ort umgeleitet werden, der genügend Speicherplatz zur Verfügung hat?
Ne, hatte ich ja geschrieben. Andere Partition/LVM anlegen geht auf der maschine nicht mehr. Sonst wäre das für mich das mittel der wahl gewesen :)

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: /var/log volllaufen verhindern

Beitrag von KBDCALLS » 07.09.2015 22:52:12

pferdefreund hat geschrieben:Ich hab mir mal da ein Script gebastelt auf der maloche. Der durchsucht /var/log nach Dateien > 1Mb und schickt mir dann ne Mail mit denen. Läuft bei mir täglich, ist jedoch einstellbar und die Größe könnte man anpassen. Hab das Script hier zu Hause leider nicht da, war aber ganz einfach. Bin nicht so der Script-Freak und bekomm das auf die Schnelle jetzt nicht hin, aber Script-Könner gibt es hier viele und eventuell antwortet ja einer von denen.
Das kann aber logrote selbst. Und sogar per Mail verschicken.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

pferdefreund
Beiträge: 3799
Registriert: 26.02.2009 14:35:56

Re: /var/log volllaufen verhindern

Beitrag von pferdefreund » 08.09.2015 06:02:11

Mag sein - aber ich bastel gerne und will auch was lernen. Außerdem ist bei mir kein cron aktiv - ich verwende eine selbstgeschriebene komplette Jobverwaltung ala UC/4 oder Jobtrack - geschrieben in OpenCobol. Die habe ich auch auf der Arbeit für meinen Produktiv-Server im Einsatz und da hat das prima gepasst. Cobol rocks.

reox
Beiträge: 2541
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: /var/log volllaufen verhindern

Beitrag von reox » 08.09.2015 11:49:53

pferdefreund hat geschrieben:Ich hab mir mal da ein Script gebastelt auf der maloche. Der durchsucht /var/log nach Dateien > 1Mb und schickt mir dann ne Mail mit denen. Läuft bei mir täglich, ist jedoch einstellbar und die Größe könnte man anpassen. Hab das Script hier zu Hause leider nicht da, war aber ganz einfach. Bin nicht so der Script-Freak und bekomm das auf die Schnelle jetzt nicht hin, aber Script-Könner gibt es hier viele und eventuell antwortet ja einer von denen.
mh das ist übrigens eigentlich nur ein einzeiler im cron:

Code: Alles auswählen

23 2 * * * find /var/log -type f -size +1M -printf "%f\t\t Size %s bytes, Last Access %A+\n"
da cron ja sachen mit stdout gleich per mail zustellt :) Ansonsten kann man das auch mit der MAILTO=<mail> variable setzten wo es hingehen soll.
Anstatt %A geht auch %T wenn man die letzte Modifikation zugesendet haben will. Bei logfiles schätze ich aber mal wird %A == %T sein, außer man mounted die filesystems mit noatime

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: /var/log volllaufen verhindern

Beitrag von KBDCALLS » 08.09.2015 13:13:26

logrote hat doch seine eigenen Konfiurationsdateien.
  • /etc/logrote.conf
    /etc/logrotate.d

Ansonsten man logrotate
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

reox
Beiträge: 2541
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: /var/log volllaufen verhindern

Beitrag von reox » 08.09.2015 14:22:56

KBDCALLS hat geschrieben:logrote hat doch seine eigenen Konfiurationsdateien.
  • /etc/logrote.conf
    /etc/logrotate.d

Ansonsten man logrotate
Ja, na ich kenn logrotate :) php loggt bei mir scheinbar die error in den syslog, also hab ich den jetzt auf stündlich aufgedreht. Bis jetzt ist mal ruhe.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: /var/log volllaufen verhindern

Beitrag von KBDCALLS » 08.09.2015 14:44:22

In der php.ini gibts eine Zeile

Code: Alles auswählen

;error_log = php_errors.log
Semikolon entfernen und dann sollte der Spuk vorbei sein.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Benutzeravatar
Meillo
Moderator
Beiträge: 9254
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: /var/log volllaufen verhindern

Beitrag von Meillo » 08.09.2015 14:47:07

KBDCALLS hat geschrieben:In der php.ini gibts eine Zeile

Code: Alles auswählen

;error_log = php_errors.log
Semikolon entfernen und dann sollte der Spuk vorbei sein.
Mit

Code: Alles auswählen

error_log = /dev/null
ist der Spuk wirklich vorbei! :-D
Use ed once in a while!

reox
Beiträge: 2541
Registriert: 06.06.2006 22:09:47
Lizenz eigener Beiträge: MIT Lizenz

Re: /var/log volllaufen verhindern

Beitrag von reox » 08.09.2015 14:49:15

also ganz löschen würde ich es nicht. Denn falls mal wieder sowas ist, will ich ja wissen was da amok gelaufen ist.
Oft haben mir die Logfiles die ein paar Tage alt sind schon geholfen irgendwelche Probleme zu rekonstruieren.

Benutzeravatar
KBDCALLS
Moderator
Beiträge: 22447
Registriert: 24.12.2003 21:26:55
Lizenz eigener Beiträge: MIT Lizenz
Wohnort: Dortmund
Kontaktdaten:

Re: /var/log volllaufen verhindern

Beitrag von KBDCALLS » 08.09.2015 14:49:26

Das wäre die ulimative und radikalste Methode.
Was haben Windows und ein Uboot gemeinsam?
Kaum macht man ein Fenster auf, gehen die Probleme los.

EDV ist die Abkürzung für: Ende der Vernunft

Bevor du einen Beitrag postest:
  • Kennst du unsere Verhaltensregeln
  • Lange Codezeilen/Logs gehören nach NoPaste, in Deinen Beitrag dann der passende Link dazu.

Antworten