PowerShell - Logfile überwachen
Hallo zusammen,
ich habe einen Zentralen Syslogserver. Die Logdatei würde ich gerne Live überwachen und bei speziellen Ereignissen eine Benachrichtigung erhalten.
Leider habe ich keine Ahnung, wie ich hier ansetzten muss.
Mein jämmerlicher Versuch war der folgende:
Für eure Hilfe wäre ich sehr dankbar.
ich habe einen Zentralen Syslogserver. Die Logdatei würde ich gerne Live überwachen und bei speziellen Ereignissen eine Benachrichtigung erhalten.
Leider habe ich keine Ahnung, wie ich hier ansetzten muss.
Mein jämmerlicher Versuch war der folgende:
$logmon = Get-Content -Path H:\messages -Tail 100 -Wait
if ($logmon -like "test") {
Write-Output "Test"
}
Für eure Hilfe wäre ich sehr dankbar.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 2699169742
Url: https://administrator.de/contentid/2699169742
Ausgedruckt am: 24.11.2024 um 18:11 Uhr
9 Kommentare
Neuester Kommentar
Hallo
und bei speziellen Ereignissen eine Benachrichtigung erhalten.
Warum willst du das mit Powershell und nicht mit dem Syslog Server machen?
Gruß
ich habe einen Zentralen Syslogserver.
Teilst du uns auch mit, welchen du genau einsetzt?Die Logdatei würde ich gerne Live überwachen
Dafür ist ja der Syslog Server da.und bei speziellen Ereignissen eine Benachrichtigung erhalten.
Warum willst du das mit Powershell und nicht mit dem Syslog Server machen?
Gruß
Moin,
Aus dem Handbuch:
Nein.
Liebe Grüße
Erik
Zitat von @SaberGFX:
Teilst du uns auch mit, welchen du genau einsetzt?
Der Syslogserver Dienst auf einer Qnap.Aus dem Handbuch:
eMail-Benachrichtigung: Der NAS unterstützt das Versenden von eMail-Nachrichten an angegebene eMail-Adressen (maximal 2, zu konfigurieren unter „Systemeinstellungen“ > „Benachrichtigung“ > „Alarmbenachrichtigung“), wenn die Schwere der empfangenen Syslog-Meldungen der angegebenen Stufe entspricht. Konfigurieren Sie zur Verwendung dieser Funktion die SMTP-Servereinstellungen unter „Systemeinstellungen“ > „Benachrichtigung“ > „SMTP-Server“. Aktivieren Sie anschließend die eMail-Benachrichtigung und wählen den Schweregrad unter „Anwendungen“ > „Syslog-Server“ > „Servereinstellungen“ aus. Klicken Sie auf „Übernehmen“, um die Einstellungen zu speichern.
Warum willst du das mit Powershell und nicht mit dem Syslog Server machen?
Dachte das wäre einfacher Nein.
Liebe Grüße
Erik
Oder gleich was fertiges nehmen:
https://www.linux-magazin.de/ausgaben/2017/04/bitparade/
Netzwerk Management Server mit Raspberry Pi
https://www.linux-magazin.de/ausgaben/2017/04/bitparade/
Netzwerk Management Server mit Raspberry Pi
Zitat von @SaberGFX:
Ja richtig geil, vielen Dank.
Könntest du mir die 2 Pipes erklären? Warum dort etc.
Ja richtig geil, vielen Dank.
Könntest du mir die 2 Pipes erklären? Warum dort
?{$_
Servus,
ich spiele mal Powershell <> Deutsch Übersetzer wenns erlaubt ist .
Get-Content -Path H:\messages -Tail 0 -Wait
Liest den Inhalt der Textdatei ein, setzt den Zeiger aber ans Ende der Datei, so das keine vorherigen Zeilen ausgegeben werden und wartet unendlich lange auf weitere neue Zeilen die in die Datei geschrieben werden. Die Datei wird hier jede Sekunde auf Änderungen überprüft.| ?{$_ -match 'test'}
Der Inhalt wird nun Zeilenweise über die Pipeline an ein Where-Object übergeben ?{} ist eine Abkürzung dafür. Das $_ ist die Pipeline-Variable die den Inhalt bzw. das Object enthält das über die Pipeline übergeben wurde, in diesem Fall die Zeile(n) die neu in die Datei geschrieben wurden. Das Where-Object lässt nur die Objekte durch die Pipeline, für welche die Bedingung darin $true oder <> $null ergibt.| %{'found'}
Die Objekte die das Where-Object durchgelassenen hat werden hier dann mit einem ForEach-Object verarbeitet (das %{} ist ebenfalls eine Abkürzung bzw. Alias dafür). In hiesigem Fall wird in der Foreach-Schleife einfach für jede neue Zeile ein 'found' auf der Konsole ausgegeben. Hier kannst du aber ebenfalls über $_ auf das Objekt (die Zeile) zugreifen und diese benutzen, z.B. um die Daten darin weiter zu verarbeiten. Z.B...... | %{"Die Zeile hatte folgenden Inhalt: $_"}
Grüße Uwe
Noch etwas Lesestoff:
Powershell Leitfaden für Anfänger