Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

EventLog monitoring και remote machine

Îåêßíçóå áðü ôï ìÝëïò axaros. Τελευταία δημοσίευση από το μέλος axaros στις 16-06-2006, 15:51. Υπάρχουν 15 απαντήσεις.
Σελίδα 1 από 2 (16 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  09-06-2006, 12:47 13837

    EventLog monitoring και remote machine

    Καλημέρα σε όλους!!
    Παιδιά θέλω να κάνω monitor κάποιο event log σε ένα remote μηχάνημα.

    Σε πρώτη φάση προσπαθώντας απλά να διαβάσω τα logs του Χ server
    παίρνω System.IO.IOException : "The network path was not found"

    To call :

       Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click       
            Dim remoteEventLogs() As EventLog
            Try

                remoteEventLogs = EventLog.GetEventLogs("192.168.1.101")

                Dim log As EventLog
                For Each log In remoteEventLogs
                    Console.WriteLine(("Log: " & log.Log))
                Next log

            Catch ex As Exception
                MsgBox(ex.Message.ToString, MsgBoxStyle.Critical)

            End Try

           
        End Sub

    Για το local (development) machine όλα πάνε OK ... Για remote δεν ...
    Για την ώρα "παίζω" με ένα Win App αλλά θα ήθελα να φτιάξω ένα win service
    που θα μου κάνει τη δουλειά ...

    Καμιά ιδέα ;


    Πάνος Αβραμίδης
  •  09-06-2006, 13:42 13839 σε απάντηση της 13837

    Απ: EventLog monitoring και remote machine

    Βρήκα αυτό :

    http://www.codeguru.com/Cpp/W-P/system/logging/article.php/c8963/

    αλλά αν ισχύουν αυτά :

    Pitfalls and Caveats

    As you can see, .NET makes subscribing to event log events extremely easy. However, you should also know of a few limitations regarding handling event log notifications:

    • You can monitor events only on the local system.
    • The .NET documentation states that there is no guarantee that every single event will be raised if a large number of events are recorded in a short span of time.
    • If you are monitoring an especially busy event log, the event will sometimes not signal immediately, resulting in a lag between the time of the event entries and then a sudden burst of notifications for the events that had been queued.

    τότε μάλλον έχασα ... Ισχύουν;


    Πάνος Αβραμίδης
  •  13-06-2006, 13:29 13977 σε απάντηση της 13837

    Απ: EventLog monitoring και remote machine

    Εμένα πάντως παίζει κανονικά (σε C#), δίνοντας την ΙΡ του remote PC.

    Το μόνο που μπορώ να φανταστώ, είναι μήπως δεν παίζει σωστά το DNS και δεν μπορεί να κάνει resolve την διεύθυνση.

    Όσον αφορά το event monitoring, το walkaround που χρησιμοποιώ είναι να δημιουργώ ένα service που τρέχει τοπικά στον Server, και κάθε φορά που γίνεται raised το event που παρακολουθώ να το στέλνει στην εφαρμογή μου.

    Ένας άλλος τρόπος, είναι να κάνεις έλεγχο των entries του Log χρονικά με ένα timer, και να παίρνεις τα τελευταία event. (χρησιμοποιώντας τον χρόνο του τελευταίου ελέγχου ή το τελευταίο index που έχεις παραλάβει)
  •  13-06-2006, 14:34 13983 σε απάντηση της 13977

    Απ: EventLog monitoring και remote machine

     evliatsas wrote:

    Όσον αφορά το event monitoring, το walkaround που χρησιμοποιώ είναι να δημιουργώ ένα service που τρέχει τοπικά στον Server, και κάθε φορά που γίνεται raised το event που παρακολουθώ να το στέλνει στην εφαρμογή μου.

    Φίλε evliatsas, αυτό κάνω και εγώ τώρα, αλλά θα ήθελα το ανάποδο :
    από ένα κεντρικό σημείο να παρακολουθώ τα logs κάποιων
    clients ...


    Πάνος Αβραμίδης
  •  14-06-2006, 16:18 14018 σε απάντηση της 13983

    Απ: EventLog monitoring και remote machine

    Συνημμένα: RemoteEventLog.rar

    Το πρόβλημα είναι, ότι για να παίξει ο event handler του Event Log, θα πρέπει να θέσεις το EnableRaisingEvents σε true, πράγμα εφικτό μόνο για το Local Machine (έχει να κάνει με τον installer ενός "εσωτερικού αυτιού" στο Monitored EventLog).

     

    Ένας τρόπος για να παρακάμψεις το πρόβλημα είναι να δημιουργήσεις τον δικό σου Event Handler, και ο πιο απλός είναι χρησιμοποιώντας έναν Timer.

     

    Συνημμένα θα βρείς ένα μικρό Project που κάνει αυτό ακριβώς. Κάνει έλεγχο για νέα Entries σε απομακρυσμένο EventLog και όταν αυτό συμβεί, δρά ανάλογα.

    Το δοκίμασα σε Server με 60 περίπου χρήστες, και η απόκριση δεν ήταν άσχημη.

    Βέβαια είναι ένα παράδειγμα μόνο και δέχεται πολλές διορθώσεις-εξελίξεις.

     

    Ελπίζω να σε βοηθήσει.

  •  14-06-2006, 16:30 14019 σε απάντηση της 14018

    Απ: EventLog monitoring και remote machine

    Φίλε evliatsas,
    σε ευχαριστώ πάρα πολύ !!!
    Μία χάρη : μπορείς να μου στείλεις μία 2003 copy ...
    Δεν μου έχει έρθει ακόμα το 2005 VS και δυστηχώς έχω στήσει μόνο VB.Express για την ώρα ...


    Πάνος Αβραμίδης
  •  14-06-2006, 21:39 14026 σε απάντηση της 14019

    Απ: EventLog monitoring και remote machine

    Συνημμένα: RemoteEventMonitor_2003.rar

    At your Service.

     

    ΠΙστεύω πως δεν θα έχεις δυσκολία να καταλάβεις τον κώδικα, αλλά ότι χρειαστεί αποσαφήνιση, Don't hesitate to ask ....

  •  15-06-2006, 11:35 14036 σε απάντηση της 14026

    Απ: EventLog monitoring και remote machine

    Φίλε evliatsas είναι ακριβώς ότι θέλω !!!!

    Θα γράψω ένα service που θα μου κάνει αυτή τη δουλειά. Βέβαια αντί του writeNewEntries
    θέλω να κάνω κάποιο action ανάλογα με κάποιο message που μου έχει έρθει από
    ένα συγκεκριμένο log που θέλω να παρακολουθήσω.

    Performance πρόβλημα δεν υπάρχει δεδομένου ότι δεν χρειάζομαι να παρακολουθώ παρά ένα client
    τη φορά. Απλά ήθελα να αποφύγω να τρέξω το service στον client...

    Σε ευχαριστώ θερμά και πάλι !!!!
    Να είσαι καλά !!!!


    Πάνος Αβραμίδης
  •  15-06-2006, 12:07 14038 σε απάντηση της 14018

    Απ: EventLog monitoring και remote machine

     evliatsas wrote:

    Ένας τρόπος για να παρακάμψεις το πρόβλημα είναι να δημιουργήσεις τον δικό σου Event Handler, και ο πιο απλός είναι χρησιμοποιώντας έναν Timer.

    Από περιέργεια ... Ο πιο σύνθετος ;


    Πάνος Αβραμίδης
  •  15-06-2006, 19:53 14054 σε απάντηση της 14038

    Απ: EventLog monitoring και remote machine

     axaros wrote:

    Από περιέργεια ... Ο πιο σύνθετος ;

     

    Το .ΝΕΤ έχει υλοποιημένη την System.Diagnostics.EventLog.AddListenerComponent(EventLog component, String compMachineName, String compLogName), ώστε να αντιλαμβάνεται άν έχει προστεθεί ένα νέο Entry,δηλαδή άν το μέγεθος ενός EventLog έχει αυξηθεί!! (αυτό το τελευταίο είναι πιο πολύ υπόθεση παρά βεβαιότητα)

     

    Θα μπορούσαμε λοιπόν να παρακολουθούμε τα properties του Log File με ένα FileSystemWatcher και από την αλλαγή του μεγέθους του ή την μεταβολή του LastModified να υλοποιήσουμε με άλλο τρόπο τον event handler (ασύγχρονα πλέον).

     

    Ακόμη πιο βαθειά, θα μπορούσε κάποιος να επιχειρήσει να κάνει refactoring στην EventLog κλάση του System.Diagnostics Namespace (που ακόμα και άν τα καταφέρει, κινδυνεύει να χαρακτηριστεί ώς σχιζοειδής μαζοχιστής ή να τον προσλάβει η Microsoft).

     

    Γενικά οι τρόποι (άσχετα με την αποδοτικότητα του καθένα) περιορίζονται μόνο από την φαντασία ή τις γνώσεις του προγραμματιστή.

    (στην συγκεκριμένη περίπτωση και των προγραμματιστών που υλοποίησαν την κλάση)

     

     

  •  16-06-2006, 11:40 14064 σε απάντηση της 14054

    Απ: EventLog monitoring και remote machine

    Σε ρωτάω γιατί διαβάζω το VB.Net windows Services Handbook (2002 Wrox press)
    [http://www.amazon.com/gp/product/1861007728/103-8195492-2023023?v=glance&n=283155]
    και συγκεκριμένα στο κεφάλαιο 5 (Network-Oriented services) αναφέρει δύο λύσεις μία με TCP/IP connections και μία με MSMQ ...


    Πάνος Αβραμίδης
  •  16-06-2006, 11:51 14068 σε απάντηση της 14064

    Απ: EventLog monitoring και remote machine

     axaros wrote:

    συγκεκριμένα στο κεφάλαιο 5 (Network-Oriented services) αναφέρει δύο λύσεις μία με TCP/IP connections και μία με MSMQ ...

     

    Όταν λές λύσεις, εννοείς για να κάνεις raise το Entry_Written Event του EventLog ή για να υλοποιήσεις Event Handlind γενικότερα???

  •  16-06-2006, 12:40 14071 σε απάντηση της 14068

    Απ: EventLog monitoring και remote machine

    To (remote) Event handling γενικότερα ...
    Έψαχνα να βρω τοn κώδικα για να στον στείλω να το δεις αλλά δυστηχώς δεν μπορώ να τον βρω πουθενά ...
    Η Willey αγόρασε κάποιους τίτλους της Wrox όταν φαλήρισε και σε παραπέμπει στην Apress.

    Δυστηχώς δεν βρήκα τον κώδικα (ούτε καν το βιβλίο) ούτε εκεί ....
    Πάνος Αβραμίδης
  •  16-06-2006, 13:53 14074 σε απάντηση της 14071

    Απ: EventLog monitoring και remote machine

     axaros wrote:
    To (remote) Event handling γενικότερα ...

     

    Όπως πολύ σωστά έγραφε και το βιβλίο, μπορείς να χρησιμοποιήσεις Socket (TCP/IP) ή την Microsoft προσέγγιση MSMQ για να ειδοποιηθεί η εφαρμογή σου για ένα Remote Event.

    Όμως και οι δύο αυτές προσεγγίσεις, προυποθέτουν ότι κάτι άλλο θα κάνει Capture το Event, και έπειτα μέσω αυτών (ή καλύτερα της συνεχής παρακολούθησης αυτών) θα λειτουργήσει ο event handler σου. Δυστυχώς, το μόνο που αυτά εξασφαλίζουν, είναι η συνεχής επικοινωνία μεταξύ δύο εφαρμογών.

    Και εξηγώ με ένα παράδειγμα.

    Έστω ότι έχουμε installed ένα service στον client, το οποίο βλέπει το Entry_Written Event του Log που παρακολουθούμε.

    Τότε θα θέλαμε το το service αυτό να στείλει ένα μήνυμα, σε έναν κοινό χώρο με την Master εφαρμογή μας, ώστε η τελευταία να αντιληφθεί το γεγονός της προσθήκης και παράλληλα να αντλήσει την όποια πληροφορία την αφορά για αυτό.

    Στην συγκεκριμένη περίπτωση, θέλουμε το message body του Entry.

    Πάει το service μας και στέλνει το επιθυμητό string(ή ότι άλλο θέλουμε) σε ένα επιλεγμένο Socket, στο οποίο η Master εφαρμογή έχει στημένο ένα TCP Listener που περιμένει να λάβει το επόμενο μήνυμα.

    Το ίδιο περίπου κάνει και το MSMQ. Δίνεις στις δύο εφαρμογές μία κοινή ουρά μηνυμάτων, όπου η μία γράφει και η άλλη διαβάζει.

    Και στις δύο περιπτώσεις, μεταφράζεις την ύπαρξη του νέου μηνύματος με την εγγραφή ενός νέου Entry, χωρίς όμως η Master εφαρμογή σου να βλέπει άμεσα κάποιο Event Log.

     

    Αυτό, είναι υπερβολικά βολικό όταν για παράδειγμα, θές να παρακολουθείς real time οποιοδήποτε Security Event σε όλα τα client του δικτύου σου.

    Ωστόσο σε καμιά περίπτωση δεν σου εξασφαλίζουν την απουσία αυτού που θέλουμε να αποφύγουμε. Το installed service στον client.

     

    Ελπίζω να μην σε κούρασα, και σε παρακαλώ άν κάνω λάθος να με διορθώσεις, γιατί το συγκεκριμένο βιβλίο δεν το έχω διαβάσει αλλά ούτε και έχω βρεί κάπου κάτι διαφορετικό.

  •  16-06-2006, 15:43 14077 σε απάντηση της 14074

    Απ: EventLog monitoring και remote machine

    Δεν με κούρασες καθόλου ...
    Αντίθετα περιέγραψες το ζουμί του συγκεκριμένου κεφαλαίου σε λίγες γραμμές ...

    Ευχαριστώ πολύ και πάλι!!


    Πάνος Αβραμίδης
Σελίδα 1 από 2 (16 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems