Διαβάζοντας τα Event logs με το PowerShell
Το event log είναι ένα windows service το οποίο διαχειρίζεται το event logging σε ένα υπολογιστικό σύστημα. Όταν αυτή η υπηρεσία ξεκινά την λειτουργία της, τα Windows καταγράφουν (logs) όλη εκείνην την σπουδαία πληροφορία η οποία αφορά την λειτουργία του συγκεκριμένου υπολογιστικού συστήματος καθώς και των εφαρμογών οι οποίες τρέχουν / εκτελούνται σε αυτό. Τα διαθέσιμα logs σε ένα υπολογιστικό σύστημα εξαρτώνται άμεσα από τον ρόλο του συστήματος (system’s
role) και τις εγκατεστημένες υπηρεσίες (Installed Services).
Δύο γενικοί τύποι αρχείων log χρησιμοποιούνται
- Windows log
- 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.
Η παράμετρος “-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)
0 Comments
Recommended Comments
There are no comments to display.