Jump to content
  • entries
    83
  • comments
    41
  • views
    25767

Διαβάζοντας τα Event logs με το PowerShell


Jordan_Tsafaridis

459 views

 Share

Το event log είναι ένα windows service το οποίο διαχειρίζεται το event logging σε ένα υπολογιστικό σύστημα. Όταν αυτή η υπηρεσία ξεκινά την λειτουργία της, τα Windows καταγράφουν (logs) όλη εκείνην την σπουδαία πληροφορία η οποία αφορά την λειτουργία του συγκεκριμένου υπολογιστικού συστήματος καθώς και των εφαρμογών οι οποίες τρέχουν / εκτελούνται σε αυτό. Τα διαθέσιμα logs σε ένα υπολογιστικό σύστημα εξαρτώνται άμεσα από τον ρόλο του συστήματος (system’s
role) και τις εγκατεστημένες υπηρεσίες (Installed Services).


Δύο γενικοί τύποι αρχείων log χρησιμοποιούνται


  1. Windows log
  2. Application and services log

Τα Event log καταγράφουν γεγονότα (events) διαφόρων κατηγοριών όπως :


  • Information
  • Warning
  • Error
  • Critical
  • Audit success
  • Audit failures

Το γραφικό περιβάλλον (GUI) του Event Viewer χρησιμοποιείται για την απεικόνιση και επισκόπηση αυτόνομων γεγονότων (individual  events) και αποτελεί ένα event log. Επιπροσθέτως, συμπληρωματικά του GUI tool, το PowerShell μπορεί να χρησιμοποιηθεί για να επικοινωνεί (query) με το event log. Τα παρακάτω PowerShell cmdlets μπορούν να χρησιμοποιηθούν για την διαχείριση του event log:


  • Get-WinEvent
  • Get-EventLog
  • Clear-EventLog
  • Limit-EventLog
  • Show-EventLog

Το παρακάτω script εμφανίζει εγγραφές (records) από το event log το οποίο παρουσιάζει ένα “error” state στα Application, System και Security logs.


PowerShell Read Event Logs


Η παράμετρος “-Newest 100” μας δίνει μόνον τα τελευταία 100 entries από το event log.
Μπορούμε εφόσον το επιθυμούμαι να αποστείλουμε / αποθηκεύσουμε το συγκεκριμένο output σε ένα αρχείο text απλά χρησιμοποιώντας το Out-File cmdlet
ή χρησιμοποιώντας τα προσθετικά σύμβολα “>” και “>>” (append symbols).


Get-EventLog -Newest 100
-LogName "system" | Where-Object {$_.entrytype -match
"error"} > D:\Log_Repository\CurrentLogs.txt

Get-EventLog -Newest 100
-LogName "application" | Where-Object {$_.entrytype -match
"error"} >>
D:\Log_Repository\CurrentLogs.txt

Get-EventLog -Newest 100
-LogName "security" | Where-Object {$_.entrytype -match
"error"} >>
D:\Log_Repository\CurrentLogs.txt

Ολοκληρώνοντας έχουμε την δυνατότητα να προγραμματίσουμε μια εργασία (schedule a job) η οποία θα τρέχει καθημερινά με σκοπό την συλλογή και παρακολούθηση όλων των “error” log entries όπως παρουσιάζεται στις παραπάνω εντολές και το αποτέλεσμα (report) να μας αποστέλλεται το μέσω email δίδοντάς μας την δυνατότητα να αναπτύξουμε ένα απλό σύστημα παρακολούθησης ενός υπολογιστικού συστήματος με σκοπό την έγκαιρη διάγνωση και άμεση αντιμετώπιση των προβλημάτων τα οποία είναι δυνατόν να προκύψουν. (Simple health
montioring and alerting system)

 Share

0 Comments


Recommended Comments

There are no comments to display.

Guest
Add a comment...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...