pipe/cache/ram zum zwischenspeichern

Einrichten des lokalen Netzes, Verbindung zu anderen Computern und Diensten.
Antworten
Benutzeravatar
feldmaus
Beiträge: 1308
Registriert: 14.06.2005 23:13:22
Lizenz eigener Beiträge: GNU General Public License
Wohnort: Deutschland

pipe/cache/ram zum zwischenspeichern

Beitrag von feldmaus » 21.04.2010 19:00:25

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

Benutzeravatar
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

Beitrag von Saxman » 22.04.2010 07:39:16

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.
"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.

Benutzeravatar
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

Beitrag von feldmaus » 22.04.2010 09:31:46

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.
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. :hail:

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. :-)

Grüße Markus

Benutzeravatar
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

Beitrag von feldmaus » 17.10.2011 13:07:45

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:

Code: Alles auswählen

# File write in asynchronous mode and
#   IO buffer config
#
$OMFileIOBufferSize 128k
$OMFileAsyncWriting on
$OMFileFlushOnTXEnd off
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.

Benutzeravatar
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

Beitrag von feldmaus » 21.10.2011 19:07:10

Ich habe es jetzt soweit hin bekommen über rsyslog, hier meine /etc/rsyslog.conf. Die wichtigen Kommandos dabei sind:

Code: Alles auswählen

$OMFileFlushInterval 3600
$OMFileIOBufferSize 128k
$OMFileAsyncWriting on
$OMFileFlushOnTXEnd off
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

erf
Beiträge: 1
Registriert: 22.10.2011 14:26:30

Re: pipe/cache/ram zum zwischenspeichern

Beitrag von erf » 22.10.2011 14:48:34

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:
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?
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.

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>
Hoffe ich konnte helfen. Sag mal bescheid, wenn du neue Erkenntnisse hast.

Viele Grüße,

erf

Benutzeravatar
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

Beitrag von feldmaus » 10.01.2012 02:41:21

erf hat geschrieben:Hoffe ich konnte helfen. Sag mal bescheid, wenn du neue Erkenntnisse hast.

Viele Grüße,

erf
Ja die habe ich, es wurde ein Bugfix geschrieben:
bugfix: $OMFileFlushInterval period was doubled – now using correct value
Dies gilt erst ab Version 5.8.6 von rsyslog.

Grüße Markus

Antworten