alfredo64

Shell Logs überwachen

Hallo,
ich versuche mich gerade an einer Logfileüberwachung. Leider bin ich mit dem Thema noch nicht so vertraut und probiere mittlerweile schon ein bisschen. Das PowerShell Skript soll die Logdatei auf einen bestimmten String durchsuchen und wenn der String vorhanden ist eine E-Mail senden. Das Funktioniert auch soweit, nur in dem log Ordner erstellen sich nach der Zeit immer neue Log Dateien. Ich hatte es am liebsten so, dass er sich immer die nimmt die neu dazugekommen sind und die auf den String untersucht. (Das Skript wird über die Windows -Aufgaben gesteuert.)

Mein momentanes Skript sieht so aus:
# Angaben für die if abfrage.

$DateipfadLogFile = "C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\JBossCursor-CRM_Port01_WWF.log.4"  

$Fehlermeldung = "*Pinging the JVM took*"  


# Daten für den Mail Versand

$EmailFrom = “*****@****.de”

$EmailTo = “******@*******.de”

$Subject = "Logfileüberwachumg”  

$Body = “In der Datei: $DateipfadLogFile wurden Meldungen wie diese gefunden: Pinging the JVM took.”

$SMTPServer = “smtp.outlook.com”

# Passwort:

#$secure = read-host -assecurestring
$encrypted = convertfrom-securestring -secureString $secure -key (1..16)
$encrypted | set-content C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\encrypted.txt
$secure2 = get-content C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\encrypted.txt | convertto-securestring -key (1..16)
$UnsecurePassword = (New-Object PSCredential "username",$secure2).GetNetworkCredential().Password  



# Abfrage der Log Datei auf eine bestimmte Fehlermeldung.

if ((Get-Content -Path "$DateipfadLogFile") -like $Fehlermeldung)  


# Wenn es wahr ist wird eine E-Mail verschickt.
{ 
write-host "gefunden"  

$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)

$SMTPClient.EnableSsl = $true

$SMTPClient.Credentials = New-Object System.Net.NetworkCredential(“*******@******.de”, “$UnsecurePassword”);
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)
}


# Es wurde keine Fehlermeldung gefunden.
else {
 write-host "nicht gefunden"  
}
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 540718

Url: https://administrator.de/forum/shell-logs-ueberwachen-540718.html

Ausgedruckt am: 25.04.2025 um 10:04 Uhr

142232
Lösung 142232 29.01.2020 aktualisiert um 16:36:06 Uhr
Goto Top
$found = Get-ChildItem 'C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung' -File -Recurse | ?{(gc $_.Fullname -raw) -like '*Pinging the JVM took*'}  
if ($found.Count -gt 0){
   # mail
}

oder auch
$found = Select-String 'C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\*.*' -Pattern 'Pinging the JVM took' -SimpleMatch -List | select -Expand Path  
if ($found){
   # mail
}

usw.....
aqui
aqui 29.01.2020 aktualisiert um 16:03:14 Uhr
Goto Top
Bitte dringend Code Tags im Thread benutzen !! So ist das vollkommen unleserlich ! face-sad
FAQs mal vorher lesen hilft wirklich !!
Formatierungen in den Beiträgen

Kann man übrigens auch immer noch nachträglich unten rechts über den "Bearbeiten" Button korrigieren ! Die Forums Community wird es dir danken.
Alfredo64
Alfredo64 29.01.2020 um 16:11:22 Uhr
Goto Top
Hallo Serial,

vielen Dank für die schnelle ich habe es mit der zweiten Varieante versucht die Funktioniert auch schon einigermaßen obwohl sie Fehler mit ausgibt was ich nicht verstehe:

sls : Die Datei "C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\logs" kann nicht gelesen werden: Der Zugriff auf den Pfad "C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\logs"   
wurde verweigert..
In Zeile:1 Zeichen:10
+ $found = sls 'C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung ...  

Ich habe es folgendermaßen umgesetzt:

$found = sls 'C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\*' -Pattern 'Pinging the JVM took' -SimpleMatch  
if ($found){
   
# Daten für den Mail Versand

$EmailFrom = “****@***”

$EmailTo = “***@***”

$Subject = "Logfileüberwachumg”  

$Body = “In der Datei: $DateipfadLogFile wurden Meldungen wie diese gefunden: Pinging the JVM took.”

$SMTPServer = “smtp.outlook.com”

# Passwort:

#$secure = read-host -assecurestring
$encrypted = convertfrom-securestring -secureString $secure -key (1..16)
$encrypted | set-content C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\encrypted.txt
$secure2 = get-content C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\encrypted.txt | convertto-securestring -key (1..16)
$UnsecurePassword = (New-Object PSCredential "username",$secure2).GetNetworkCredential().Password  




$SMTPClient = New-Object Net.Mail.SmtpClient($SmtpServer, 587)

$SMTPClient.EnableSsl = $true

$SMTPClient.Credentials = New-Object System.Net.NetworkCredential(“****@*****”, “$UnsecurePassword”);
$SMTPClient.Send($EmailFrom, $EmailTo, $Subject, $Body)

}

können sie eventuel noch ein zwei sätze dazu schreiben was doert passiert ich würde es gerne auch ein bisschen verstehen.
Alfredo64
Alfredo64 29.01.2020 um 16:13:39 Uhr
Goto Top
Danke für diesen Hinweis aqui. Ich habe es schon Bearbeitet.
142232
142232 29.01.2020 aktualisiert um 16:25:10 Uhr
Goto Top
Zitat von @Alfredo64:

Hallo Serial,

vielen Dank für die schnelle ich habe es mit der zweiten Varieante versucht die Funktioniert auch schon einigermaßen obwohl sie Fehler mit ausgibt was ich nicht verstehe:

sls : Die Datei "C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\logs" kann nicht gelesen werden: Der Zugriff auf den Pfad "C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung\logs"   
> wurde verweigert..
> In Zeile:1 Zeichen:10
> + $found = sls 'C:\Users\lkliegel\Documents\Projekte\Logfileüberwachung ...  
Ist doch eindeutig, dir fehlen die Zugriffsrechte face-smile.

können sie eventuel noch ein zwei sätze dazu schreiben was doert passiert ich würde es gerne auch ein bisschen verstehen.

Bitte, alles was du wissen musst steht hier: Select-String
Alfredo64
Alfredo64 29.01.2020 um 16:52:12 Uhr
Goto Top
Hallo Serial,

Bitte, alles was du wissen musst steht hier: Select-String

Ok vielen Danke ich werde mich jetzt noch ein bisschen damit befassen und bin erst einmal sehr foh das ich so gute Hilfe bekommen habe
142232
142232 29.01.2020 um 16:53:31 Uhr
Goto Top
Zitat von @Alfredo64:
Ok vielen Danke ich werde mich jetzt noch ein bisschen damit befassen
Der erste Schritt zum Guru face-smile.