Überwachung von Logdateien - Beispiel Subsonic

Bitte posted hier eure Ideen, damit unsere Entwickler sehen was die Community wünscht.
Antworten
JoachimL
WHS-Experte
Beiträge: 1228
Registriert: 21. Sep 2009, 22:48

Überwachung von Logdateien - Beispiel Subsonic

Beitrag von JoachimL »

Hallo Martin,
ich hab seit kurzem Subsonic auf meinem Server, und mir gefällt vor allem der Jukebox Modus bei dem der WHS von einem Client (bei mir Android) ferngesteuert wird und den Ton an am WHS angeschlossene Lautsprecher abgibt. In dieser Betriebsart entsteht aber kaum CPU Last, kaum bis gar kein Netzwerkverkehr, sprich Lightsout schaltet mitten in der Musik immer wieder den WHS ab. Also hab ich nach Abhilfe gesucht..

Was einigermaßen funktioniert ist ins Protokoll von Subsonic zu sehen und zu prüfen ob es da einen aktuellen Eintrag dazu gibt. Im Moment verwende ich dazu eine regelmäßig eingeplante Aufgabe, die alle 5 Minuten läuft und das folgende macht:

Code: Alles auswählen

find "INFO JukeboxService" C:\subsonic\subsonic.log >ns.out
:no.txt enthält ein N gefolgt von CRLF
comp ns.out ns.last <no.txt
if errorlevel 1 goto err1
echo no change
del keepalive
goto :end
:err1
echo changed
copy /Y ns.out ns.last
copy /Y ns.out keepalive
:end
D.h. es wird nur geprüft - und das sehr lax - ob sich im Protokoll ein neuer Eintrag mit dem Muster "INFO JukeboxService" findet. Die Mängel der Lösung sind offensichtlich: längere Stücke werden nicht richtig erkannt, völlig unabhängig davon wie lange LO vor Standby wartet, entscheidend ist nur die Abtastfrequenz der Logdatei. Und wenn zwischen der letzten Änderung und dem Abtasten LO ausschaltet - Pech. Eine deutlich bessere Lösung wäre die Einträge viel häufiger zu parsen und direkt zu bestimmen wann das letzte Stück gestartet wurde. Aber auch dann hat man zwei Einstellungen - die Abtastfrequenz und LO. Richtig schick wäre wenn LO direkt Logfiles überwachen könnte, indem es selbst erkennt das das Logfiles geändert wurde, und das der hinzugefügte Text auf ein Muster passt. Das wäre dann so zu behandeln wie ein Netzwerkspike und der entsprechende Timer neu zu starten.
Ich kann mir gut vorstellen das diese Form der Überwachung auch für ganz andere Dienste prima passen würde.
Gruß Joachim

P.S. Für alle die keinen Sound auf dem WHS haben: die Lösung zu RDP vs. lokalem Sound findet sich in http://social.technet.microsoft.com/For ... f=required bzw. viewtopic.php?f=74&t=14959 - jedenfalls für mich passt das.
WHS r.i.p. - Software die nicht mehr gewartet wird sollte man nicht mehr einsetzen.
Bei mir laufen drei Dell T20, inzwischen alle unter Hyper-V-2019. Darauf viele virtuelle Maschinen, darunter Windows 10 Pro, Ubuntu 18.04/20.04 LTS (teilweise mit Docker), und auch mal andere. Ein T20 läuft 7*24 und stellt u.a. Mailcow-Dockerized und einen Samba-Domain-Controller (ein 2. läuft auf einem NUC) bereit. Klingt vielleicht seltsam, aber so ist das System - alle - mit Bitlocker verschlüsselt und kann vollständig und konsistent gesichert werden - beides sonst unter Linux schwierig bis unmöglich. Zum Sichern dient das von mir entwickelte Lindenberg Software Backup.
Fragen bitte nicht per PN sondern im Forum - dann haben andere auch was davon. Ich poste hier in meiner Freizeit, Ungeduld ist meiner Meinung nach fehl am Platz...
Benutzeravatar
Martin
Moderator
Beiträge: 9947
Registriert: 11. Sep 2007, 10:51
Wohnort: Im wilden Süden

Re: Überwachung von Logdateien - Beispiel Subsonic

Beitrag von Martin »

Danke für den Vorschlag, ist auf der Wunschliste.
Kannst du mir mal so ein Logfile schicken?

Gruß
Martin
Essentials 2016 unter Windows Server 2022 auf HP Microserver Gen 8.
Entwickler von Lights-Out
JoachimL
WHS-Experte
Beiträge: 1228
Registriert: 21. Sep 2009, 22:48

Re: Überwachung von Logdateien - Beispiel Subsonic

Beitrag von JoachimL »

Martin hat geschrieben:Danke für den Vorschlag, ist auf der Wunschliste.
Kannst du mir mal so ein Logfile schicken?

Gruß
Martin
Aber klar. Hier ein Beispiel:

Code: Alles auswählen

[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) libswscale 2. 0. 0 / 2. 0. 0 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) libpostproc 51. 2. 0 / 51. 2. 0 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) [mp3 @ 02039F20] max_analyze_duration 5000000 reached at 5015510 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Input #0, mp3, from 'E:\ServerFolders\Musik\Chris deBurgh\The Getaway\Chris de Burgh - Borderline.mp3': 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Metadata: 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) album_artist : Chris de Burgh 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) album : The Getaway 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) title : Borderline 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) track : 08 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) genre : Pop 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) publisher : Universal International 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) TLEN : 281613 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) composer : Chris de Burgh 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) artist : Chris de Burgh 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) date : 1982 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Duration: 00:04:41.67, start: 0.000000, bitrate: 192 kb/s 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Stream #0.0: Audio: mp3, 44100 Hz, stereo, s16, 192 kb/s 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Output #0, au, to 'pipe:': 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Metadata: 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) album_artist : Chris de Burgh 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) album : The Getaway 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) title : Borderline 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) track : 08 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) genre : Pop 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) publisher : Universal International 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) TLEN : 281613 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) composer : Chris de Burgh 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) artist : Chris de Burgh 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) date : 1982 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) encoder : Lavf53.6.0 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Stream #0.0: Audio: pcm_s16be, 44100 Hz, stereo, s16, 1411 kb/s 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Stream mapping: 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Stream #0.0 -> #0.0 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) Press [q] to stop, [?] for help 
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) size= 48524kB time=00:04:41.67 bitrate=1411.2kbits/s  
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg)  
[2/4/12 12:02:06 PM CET] DEBUG InputStreamReaderThread (c:\subsonic\transcode\ffmpeg) video:0kB audio:48524kB global headers:0kB muxing overhead 0.000048% 
[2/4/12 12:02:06 PM CET] DEBUG JukeboxService Closed line com.sun.media.sound.DirectAudioDevice$DirectSDL@2130c2 
[2/4/12 12:02:06 PM CET] INFO JukeboxService Joachim stopping jukebox for "The Getaway\Chris de Burgh - Borderline.mp3" 
[2/4/12 12:02:06 PM CET] DEBUG TranscodeInputStream Starting transcoder: [c:\subsonic\transcode\ffmpeg] [-ss] [0] [-i] [E:\ServerFolders\Musik\Chris deBurgh\The Getaway\Chris de Burgh - Where Peaceful Waters Flow.mp3] [-v] [0] [-f] [au] [-]  
[2/4/12 12:02:07 PM CET] DEBUG JukeboxService Opened line com.sun.media.sound.DirectAudioDevice$DirectSDL@a1fdd8 
[2/4/12 12:02:07 PM CET] INFO JukeboxService Joachim starting jukebox for "The Getaway\Chris de Burgh - Where Peaceful Waters Flow.mp3" 
[2/4/12 12:10:46 PM CET] DEBUG JukeboxService Closed line com.sun.media.sound.DirectAudioDevice$DirectSDL@a1fdd8 
[2/4/12 12:10:46 PM CET] INFO JukeboxService Joachim stopping jukebox for "The Getaway\Chris de Burgh - Where Peaceful Waters Flow.mp3" 
[2/4/12 12:10:46 PM CET] DEBUG TranscodeInputStream Starting transcoder: [c:\subsonic\transcode\ffmpeg] [-ss] [0] [-i] [E:\ServerFolders\Musik\Compilations\NRJ Music Awards 2012\Angelina Jolie & Brad Pitt RC Moments 2009.mp3] [-v] [0] [-f] [au] [-]  
[2/4/12 12:10:46 PM CET] DEBUG JukeboxService Opened line com.sun.media.sound.DirectAudioDevice$DirectSDL@1af78ce 
[2/4/12 12:10:46 PM CET] INFO JukeboxService Joachim starting jukebox for "NRJ Music Awards 2012\Angelina Jolie & Brad Pitt RC Moments 2009.mp3" 
[2/4/12 12:13:10 PM CET] INFO VersionService Resolved local Subsonic version to: 4.6 
[2/4/12 12:13:11 PM CET] INFO VersionService Resolved latest Subsonic final version to: 4.6 
[2/4/12 12:13:11 PM CET] INFO VersionService Resolved latest Subsonic beta version to: 4.6.beta2 
Da steht natürlich auch alles mögliche drin was in keinem Zusammenhang mit dem Jukeboxservice steht, z.B. dass der Index neu aufgebaut wird/wurde. Also sind nur bestimmte Einträge interessant. Die stopping jukebox Meldung kommt leider oft erst viel viel später, ist also nicht wirklich geeignet.
Ideal wäre vermutlich wenn man einen regulären Ausdruck für die Dateinamen (bei Subsonic "c:\\subsonic\\subsonic\.log") und einen für relevante Einträge ("INFO JukeboxService*starting jukebox") hätte. Vielleicht können wir hier im Thread Beispiele sammeln?
Danke & Gruß Joachim
WHS r.i.p. - Software die nicht mehr gewartet wird sollte man nicht mehr einsetzen.
Bei mir laufen drei Dell T20, inzwischen alle unter Hyper-V-2019. Darauf viele virtuelle Maschinen, darunter Windows 10 Pro, Ubuntu 18.04/20.04 LTS (teilweise mit Docker), und auch mal andere. Ein T20 läuft 7*24 und stellt u.a. Mailcow-Dockerized und einen Samba-Domain-Controller (ein 2. läuft auf einem NUC) bereit. Klingt vielleicht seltsam, aber so ist das System - alle - mit Bitlocker verschlüsselt und kann vollständig und konsistent gesichert werden - beides sonst unter Linux schwierig bis unmöglich. Zum Sichern dient das von mir entwickelte Lindenberg Software Backup.
Fragen bitte nicht per PN sondern im Forum - dann haben andere auch was davon. Ich poste hier in meiner Freizeit, Ungeduld ist meiner Meinung nach fehl am Platz...
Antworten