Logeinträge einer bestimmten Applikation in separates Logfile?

Registriert
Juli 2020
Beiträge
232
Hallo Auskenner,

Ubuntu 20.10

Kann man irgendwo zentral konfigurieren, dass Logeinträge, die von einer bestimmten Applikation XY nach /var/log/syslog geschrieben, werden, entweder zusätzlich oder ausschliesslich in ein separates Logfile geschrieben werden?
 
Ich meine die Applikation iWatch. Sie loggt ins syslog. Z. B.:

Code:
Jan 14 13:07:29 T61 iWatch[2855]: IN_CREATE /home/max/folder1/file1.txt
Jan 14 13:07:29 T61 iWatch[2855]: IN_CLOSE_WRITE /home/max/folder1/file1.txt
Jan 14 13:07:29 T61 iWatch[2855]: * /home/max/folder1/file1.txt is closed

Ich möchte also, dass solche Logeinträge, in denen „iWatch“ vorkommt, in einem separaten Logfile angezeigt werden.

Man kann in der Applikation selbst nicht steuern, wohin die Meldungen geschrieben werden (nur E-Mal oder syslog oder beides geht).
 
Du kannst über ein Config-File die Einträge in /var/log/syslog deaktivieren und die Events mittels echo in beliebige andere Dateien schreiben oder auch direkt an andere Dienste wie Xmpp, Mailgun etc. weiterreichen. Beispiele findest du hier: http://manpages.ubuntu.com/manpages/bionic/man1/iwatch.1.html (CONFIGURATION FILE EXAMPLE)
 
  • Gefällt mir
Reaktionen: PHuV
Die meisten Systeme haben das irgendwo in einer Konfigurationsdatei gepackt, wenn sie nicht blöderweise wirklich im Programm fest verdrahtet wurde. Daher, schau mal nach dem Installationsverzeichnis von iwatch, oder in /etc, und suche mal mit grep -R "suchstring" nach Teilen von den Logs. Und man muß etwas RTFM machen. 😁Ah, @blablub1212 hat RTFM gemacht. 👍
 
Geht das auch für Datenbanken (Oracle), so was wie Tomcat mit eigenen Containern, ESB, Karaf, Kafka, Zookeeper, Elastic Stack? Die loggen alle selbst und nicht unter /var/log
 
0x8100 schrieb:
natürlich funktioniert das, der TE muss nur auf "iWatch" filtern

:msg,contains,"iWatch" /var/log/iwatch.log
Danke für den Vorschlag! Ich habe mit

Code:
sudo gedit /etc/rsyslog.d/50-default.conf

die Konfigurationsdatei von rsyslogd geöffnet und die Zeile

Code:
:msg,contains,"iWatch" /var/log/iwatch.log
& ~

eingefügt. Danach den rsyslog mit

Code:
sudo systemctl restart rsyslog

neu gestartet. Dann mit iWatch einen Ordner überwacht und in diesem weitere Ordner und eine Datei erstellt. iWatch meldet diese Operationen in der Konsole:
Code:
[15/Jan/2022 10:11:31] IN_ISDIR,IN_CREATE /home/max/Ordner 1/asasasasdasdasda
[15/Jan/2022 10:17:42] IN_ISDIR,IN_CREATE /home/max/Ordner 1/Ordner ganz neu
[15/Jan/2022 10:18:06] IN_CREATE /home/max/Ordner 1/Datei superneu.txt
[15/Jan/2022 10:22:12] IN_ISDIR,IN_CREATE /home/max/Ordner 1/Ordner superneu
[15/Jan/2022 10:22:27] IN_CREATE /home/max/Ordner 1/meldungen_1.txt

Die Meldungen werden auch im syslog angezeigt. Aber /var/log/iwatch.log existiert nicht. Was könnte ich übersehen haben?
 
Zuletzt bearbeitet:
ich habe das mal bei mir nachvollzogen. der eintrag muss

:syslogtag,contains,"iWatch" /var/log/iwatch.log

lauten. mit :msg bezieht sich der filter nur auf den inhalt der log-message, nicht auf deren absender. mit :syslogtag wurde bei mir dann auch die datei angelegt und die logs landen da drin.
 
Hurrah!
@0x8100: Besten Dank ! Klappt wunderbar! Tolles Forum.
Ergänzung ()


@Uridium: Syslog ist der zentrale Logging-Mechanismus, es gibt für ihn allerdings unterschiedliche Implementierungen: rsyslogd ist für Debian und Ubuntu laut Koflers Linux-Anwenderhandbuch die populärste, es ist standardmäßig nach der Installation (Minimalinstallation mit Desktopumgebung) installiert.

Fedora verwendet statt rsyslogd die Journal-Funktion von systemd. Journal und rsyslog ergänzen sich.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: 0x8100
Zurück
Oben