Hi Leute,
ich suche für meinen Debian Lenny Server/Router mit Kernel 2.6.32.11 eine Möglichkeit meine Logs zwischen zu speichern, z.b. in Ram und diese werden dann nach einer gewissen Zeit auf die Festplatte geschrieben. Und zwar hatte ich da an eine Pipe/device gedacht die ich in /etc/rsyslog.conf einsetze um meine Firewall-Logs erstmal zu sammeln und dann alle auf einmal nach einer gewissen Zeit auf die Festplatte zu schreiben. Die Firewall-Logs haben bei mir keine so hohe Priorität, trotzdem will ich sie sichern um Fehler aufzudecken ... leider wecken sie die Festplatten ständig auf.
Ich habe hier im Forum was von ramlog gelesen, allerdings finde ich es nicht als Packet und auch nicht als Befehl. Was ist das? Und bringt mir das was? Vielleicht weitere Vorschläge?
NACHTRAG zu ramlog: http://www.tremende.com/ramlog/
Grüße Markus
pipe/cache/ram zum zwischenspeichern
- Saxman
- Beiträge: 4233
- Registriert: 02.05.2005 21:53:52
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: localhost
Re: pipe/cache/ram zum zwischenspeichern
ramlog macht im grunde genau das was du willst.
Nachteil ist daß es ramfs und nicht tmpfs für die logs nutzt und auf syslog und nicht auf rsyslog setzt.
Zumindest war das noch so in der Version die Ich genutzt habe.
Aber im Grunde macht das genau das was du willst.
Ich hatte das vor einer Weile am laufen.
Wenn du ein wenig darin rumhackst kannst du es auch auf tmpfs und rsyslog umbiegen.
ramlog ist nicht in den debian repos und du musst die Quellen des Autors nutzen.
Nachteil ist daß es ramfs und nicht tmpfs für die logs nutzt und auf syslog und nicht auf rsyslog setzt.
Zumindest war das noch so in der Version die Ich genutzt habe.
Aber im Grunde macht das genau das was du willst.
Ich hatte das vor einer Weile am laufen.
Wenn du ein wenig darin rumhackst kannst du es auch auf tmpfs und rsyslog umbiegen.
ramlog ist nicht in den debian repos und du musst die Quellen des Autors nutzen.
"Unix is simple. It just takes a genius to understand its simplicity." - Dennis Ritchie
Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.
Debian GNU/Linux Anwenderhandbuch | df.de Verhaltensregeln | Anleitungen zum Review und zum Verfassen von Wiki Artikeln.
- feldmaus
- Beiträge: 1308
- Registriert: 14.06.2005 23:13:22
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: Deutschland
Re: pipe/cache/ram zum zwischenspeichern
Danke, ich nutze ramlog version 2.0.0. Nutzen tue ich es mit rsyslog und tmpfs und das scheint auch zu funktionieren. Es würde mich freuen, wenn dieses Packet in die Debian Repositories kommt.Saxman hat geschrieben:ramlog macht im grunde genau das was du willst.
Nachteil ist daß es ramfs und nicht tmpfs für die logs nutzt und auf syslog und nicht auf rsyslog setzt.
Zumindest war das noch so in der Version die Ich genutzt habe.
Aber im Grunde macht das genau das was du willst.
Ich hatte das vor einer Weile am laufen.
Wenn du ein wenig darin rumhackst kannst du es auch auf tmpfs und rsyslog umbiegen.
ramlog ist nicht in den debian repos und du musst die Quellen des Autors nutzen.
![Hail :hail:](./images/smilies/icon_hail.gif)
Falls Jemand doch noch eine Lösung für ein Zwischenspeicher Device kennt, dann bitte melden. Kann doch nicht sein, dass es sowas unter Linux nicht gibt.
![Smile :-)](./images/smilies/icon_smile.gif)
Grüße Markus
- feldmaus
- Beiträge: 1308
- Registriert: 14.06.2005 23:13:22
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: Deutschland
Re: pipe/cache/ram zum zwischenspeichern
Nur zur Info für andere, ich glaube ramlog wird mit der Einführung von rsyslog überflüssig, da rsyslog so eingestellt werden kann, dass es nur bei vollem Puffer alle Log-Einträge auf einmal nieder schreibt. Ich habe dazu folgende Einträge in /etc/rsyslog.conf eingetragen:
Ich bin allerdings noch am testen, ob es wirklich funktioniert.
Grüße Markus
EDIT:
Schlechte Nachricht, es funktioniert nicht. Die gute Nachricht: Es könnte mit kleinen Änderungen funktionieren. Ich versuche gerade mit einem Entwickler zu verhandeln, dass er da was implementiert und mit mir eine funktstüchtige Konfig ausarbeit.
Code: Alles auswählen
# File write in asynchronous mode and
# IO buffer config
#
$OMFileIOBufferSize 128k
$OMFileAsyncWriting on
$OMFileFlushOnTXEnd off
Grüße Markus
EDIT:
Schlechte Nachricht, es funktioniert nicht. Die gute Nachricht: Es könnte mit kleinen Änderungen funktionieren. Ich versuche gerade mit einem Entwickler zu verhandeln, dass er da was implementiert und mit mir eine funktstüchtige Konfig ausarbeit.
- feldmaus
- Beiträge: 1308
- Registriert: 14.06.2005 23:13:22
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: Deutschland
Re: pipe/cache/ram zum zwischenspeichern
Ich habe es jetzt soweit hin bekommen über rsyslog, hier meine /etc/rsyslog.conf. Die wichtigen Kommandos dabei sind:
Er flushed aber nicht alle 3600 Sekunden wie erst angenommen, sondern aufgrund eines Fehlers anders. Ich habe die englische Erklärung vom Entwickler nicht ganz verstanden, vielleicht kann Jemand mit besseren Englisch-Kenntnissen die Kern-Aussage hier nochmal nieder schreiben?! Hier der Link zum Thread.
Grüße Markus
Code: Alles auswählen
$OMFileFlushInterval 3600
$OMFileIOBufferSize 128k
$OMFileAsyncWriting on
$OMFileFlushOnTXEnd off
Grüße Markus
Re: pipe/cache/ram zum zwischenspeichern
Hallo,
das ist genau, was ich gesucht habe. Ich habe Squeeze auf einem USB-Stick an einem ThinClient laufen, und um den Stick zu schonen, wollte ich gerne das Logging verzögern.
Ich habe mir den Thread auch nochmal angeschaut. Meinst du das hier:
Wenn du rsyslog ein HUP-Signal schickst, werden alle Buffer sofort geschrieben.
Das sollte ja irgendwie so funktionieren, wenn ich da richtig verstanden habe:
Hoffe ich konnte helfen. Sag mal bescheid, wenn du neue Erkenntnisse hast.
Viele Grüße,
erf
das ist genau, was ich gesucht habe. Ich habe Squeeze auf einem USB-Stick an einem ThinClient laufen, und um den Stick zu schonen, wollte ich gerne das Logging verzögern.
Ich habe mir den Thread auch nochmal angeschaut. Meinst du das hier:
Ich denke du hast das ganz richtig verstanden: Er hat einen blöden Schreibfehler im Quellcode weswegen das Intervall in Wirklichkeit verdoppelt wird. Wobei allerdings das Intervall jedesmal neu beginnt, wenn eine Nachricht geschrieben wurde. Ich verstehe das so, daß wenn z.B. der Puffer voll ist, und er vor Ablauf des Intervalls schreibt, der Zeitzähler genullt wird.There was a dumb typo inside the code that actually doubled the interval. So the flush happens every two hours. Well. every two hours after the last message was written (now that I post the fact). So it's not a flush-after-n-hours whatever was written. However, if you HUP rsyslog, all buffers are immediately flushed. Maybe that helps?
Wenn du rsyslog ein HUP-Signal schickst, werden alle Buffer sofort geschrieben.
Das sollte ja irgendwie so funktionieren, wenn ich da richtig verstanden habe:
Code: Alles auswählen
kill -HUP <pid von rsyslog>
Viele Grüße,
erf
- feldmaus
- Beiträge: 1308
- Registriert: 14.06.2005 23:13:22
- Lizenz eigener Beiträge: GNU General Public License
- Wohnort: Deutschland
Re: pipe/cache/ram zum zwischenspeichern
Ja die habe ich, es wurde ein Bugfix geschrieben:erf hat geschrieben:Hoffe ich konnte helfen. Sag mal bescheid, wenn du neue Erkenntnisse hast.
Viele Grüße,
erf
Dies gilt erst ab Version 5.8.6 von rsyslog.bugfix: $OMFileFlushInterval period was doubled – now using correct value
Grüße Markus