User since
2005-10-23
3
Artikel
BenutzerIn
Hallo,
ich möchte aus der /var/log/messages immer die Einträge der letzten 5 Minuten genauer auf bestimmte Worte untersuchen. Mein Problem ist das extrahieren der letzten 5 Mintuten unter Perl.
Mein Problem:
1.) Der Übergang einer Stunde, Tag, Woche
2.) Das Logrotate unter Debian
Leider brachte mir das googlen in zu dieser Frage keine Hilfe.
Hat jemand damit schon Erfahrung und kann mir ein paar Tipps geben.
Gruß Arrpork
User since
2003-08-14
2022
Artikel
BenutzerIn
Evtl. ist es sinnvoll du schaust dich mal nach Alternativen zu syslogd um. Speziell eine Variante die direkt in eine Datenbank z.B. MySQL schreibt könnte deine Arbeit deutlich erleichtern.
User since
2005-10-23
3
Artikel
BenutzerIn
Hallo Ronnie,
leider ist das wg. versch. Unternehmenspolicys nicht möglich.
Ich darf leider keinen alternativen syslogd benutzen.
Gruß Arrpork
User since
2003-08-04
1706
Artikel
HausmeisterIn
Kannst du bitte deine probleme genauer erleutern?? Punkt zwei sagt mir naemlich nix da ich kein reines Debian benutze.
Gruß Alex
User since
2005-10-23
3
Artikel
BenutzerIn
Hallo format_c
logrotate archiviert zu einer bestimmten Zeit das Logfile.
Aus z.B.
"messages" wird "messages.0.gz"
Es wird daraufhin wieder ein "messages" angelegt. In dieses werden dann die neuen Logs reingeschrieben.
Somit kann auf das Logfile nicht mehr (ohne es zuvor zu entpacken) zugegriffen werden.
Mein Ziel ist einfach nachzuschauen, wie oft die letzten 5 Minuten verschiedene Einträge vorkommen um daraus via RRDTool eine Grafik zu erstellen.
Gruß Arrpork
User since
2003-11-28
3645
Artikel
ModeratorIn
[quote=Arrpork,23.10.2005, 14:56]Aus z.B.
"messages" wird "messages.0.gz"
Es wird daraufhin wieder ein "messages" angelegt. In dieses werden dann die neuen Logs reingeschrieben.
Somit kann auf das Logfile nicht mehr (ohne es zuvor zu entpacken) zugegriffen werden.
[/quote]
Du kannst PerlIO::gzip verwenden, evtl. mit der "auto"-Option. Dann brauchst du dich nicht darum zu kümmern, ob eine Datei komprimiert ist oder nicht.
Beim Analysieren von Logdateien hat sich bei mir oft File::ReadBackwards bewährt (weil man oft nur das Ende der Datei haben will). Ich bezweifle aber, das PerlIO::gzip und File::ReadBackwards zusammen gut arbeiten...
User since
2003-08-04
2145
Artikel
ModeratorIn + EditorIn
Wie oft soll dieses Skript denn aufgerufen werden? Jetzt sag nicht, alle 5 Minuten. ;-)
Da du sagst, dass du daraus eine Grafik mit RRDTool erstellen moechtest, tippe ich jedenfalls darauf, dass das Tool nicht nur alle paar Tage oder vielleicht Stunden mal laufen soll, sondern eigentlich permanent. Dann wiederum wuerde ich einfach in die /etc/syslog.conf einen catchall-Eintrag in eine Named Pipe hinzufuegen (syslog konfigurieren darfst du doch, oder?). Die Pipe laesst man permanent von einem Skript einlesen, was dann alle fuenf Minuten die Summary fuer RRDTool ausgeben. Oder so aehnlich.
Unabhaengig davon: Wenn die Logs tatsaechlich mit logrotate gesichert werden, koennte man ueber ein Skript im pre- oder post-rotate (s. Manpage zu logrotate(8)) z.B. einem laufenden Skript ein Signal schicken, damit es das neu angelegte Logfile oeffnet.
Du solltest aber mal nachschauen, ob die Backups wirklich von logrotate angelegt werden. In meinem Debian-System wird das naemlich nicht von logrotate(8), sondern von dem deutlich einfacheren savelog(8) gemacht, das von /etc/cron.weekly/sysklogd aufgerufen wird.