Accueil > Forum > > > > Recuperer les journaux d'evenements
Recuperer les journaux d'evenements
mercredi 6 décembre 2006 à 09:10:04 |
Recuperer les journaux d'evenements

zmaster
|
Salut ! Je dois, dans le cadre d'une politique de sécurité dans mon entreprise, récupérer les journaux d'évenements de mes serveurs, puis les stocker a quelque part pour ensuite générer des statistiques, des rapports etc... Mon chef ne voulant pas dépenser un euro pour un produit du style : http://manageengine.adventnet.com/products/eventlog/index.htmlVu le peu de temps dont je disposais, je n'ai pas trop cherché des produits libres et/ou gratuits, du coup j'ai écrit un p'tit bout de code bien crade (c'est le cas de le dire) que j'ai rendu public ici : [ Lien ]Si jamais vous êtes motivé pour filer un coup de main, (vu que je suis un gros nul en prog (specialement csharp)... ce serait cool).  Merci par avance, et bonne journée ! -- zsh: segmentation fault vlc ah ça, quelle merde zsh hein !
|
|
|
mercredi 6 décembre 2006 à 10:59:06 |
Re : Recuperer les journaux d'evenements

SharpMao
|
Hello,
J'ai jeté un coup d'oeil à ton code, et j'ai juste deux ou trois conseils à te donner :
Les types énumérés ne sont pas à utiliser comme ça :
e.EntryType.ToString().Equals("Error")
mais plutôt comme ça :
e.EntryType == EventLogEntryType.Error
Si tu dois formatter une date, ne fait si possible pas comme ça : string timestamp = e.TimeGenerated.Year.ToString() + "-" + e.TimeGenerated.Month.ToString() + "-" + e.TimeGenerated.Day.ToString() + "-" + e.TimeGenerated.Hour.ToString() + "-" + e.TimeGenerated.Minute.ToString() + "-" + e.TimeGenerated.Second.ToString();
Mais plutôt
string timestamp = e.TimeGenerated.ToString("yyyy-MM-dd-HH-mm-ss");
timestamp.ToString() est inutile, puisque timestamp est déjà un string.
Il est à mon avis inutile de remplir un ArrayList avec des éléments, si tu peux directement faire ta requête pour les mettre dans la DB.
pour ta base de donnée, j'espère que tu utilises bien les types Datetime pour timestamp et long pour instanceid non des string.
Un conseil encore, utilise des paramètre pour faire tes requêtes SQL, tu seras nettement moins embêté par des problèmes de culture, de format, ou simplement d'apostrophe dans un string.
En gros, voici le code tel que je le ferais :
maCommande.CommandText = "INSERT INTO eventlog (serveur, logtype, source, username, instanceid, timegenerated, message) VALUES (?,?,?,?,?,?,?)"; maCommande.Parameters.Add("@serveur", OdbcType.VarChar); maCommande.Parameters.Add("@logtype", OdbcType.VarChar); maCommande.Parameters.Add("@source", OdbcType.VarChar); maCommande.Parameters.Add("@username", OdbcType.VarChar); maCommande.Parameters.Add("@instanceid", OdbcType.BigInt); //OdbcType.BigInt correspond to system.Int64 or long. maCommande.Parameters.Add("@timegenerated", OdbcType.DateTime); maCommande.Parameters.Add("@message", OdbcType.VarChar, 50);
foreach (EventLogEntry e in evtLog.Entries) { if (e.EntryType == EventLogEntryType.Error) { maCommande.Parameters["@serveur"].Value = serveur; maCommande.Parameters["@logtype"].Value = type; maCommande.Parameters["@source"].Value = e.Source; maCommande.Parameters["@username"].Value = e.UserName; maCommande.Parameters["@instanceid"].Value = e.InstanceId; maCommande.Parameters["@timegenerated"].Value = e.TimeGenerated; maCommande.Parameters["@message"].Value = e.Message; try { maCommande.ExecuteNonQuery(); } catch (Exception e) { Console.Out.WriteLine(e.Message); } } } La première partie peut être sortie de la boucle, comme elle ne change pas. Pour rendre le code encore un peu plus propre, tu peut déclarer des constantes pour tes paramètres ("@...")
Je n'ai pas testé le code, mais en principe, il devrait fonctionner sans trop de modifications.
Amicalement, SharpMao
|
|
mercredi 6 décembre 2006 à 11:40:04 |
Re : Recuperer les journaux d'evenements

zmaster
|
Merci beaucoup pour tes conseils, je tenterai de les appliquer dès que j'ai quelques minutes pour toucher au code. Pour la requète SQL directement dans la boucle, je l'avais fait comme ça au début, mais il attend qu'a chaque fois l'insertion soit finie pour lire l'évenement suivant. J'ai pas remarqué de grande différence au niveau du temps d'exécution, mais je me suis dit qu'il vallait peut-être mieux ne pas mélanger la récupération des données des journaux, avec l'insertion dans la base de données. Bonne journée, -- zsh: segmentation fault vlc ah ça, quelle merde zsh hein !
|
|
|
Cette discussion est classée dans : recuperer, http, evenements, journaux, coup
Répondre à ce message
Sujets en rapport avec ce message
recuperer des arguments? [ par BlackWizzard ]
en C, pour appeler un prog comme ceci "prog.exe arg1 arg2", on utilise un code comme ceci ::#include main (int argc, char **argv){ // ou char *argv[]
Recherche du nom d'utilisateur dans l'entête HTTP [ par projetbts ]
Bonjour,Je tente de récupérer le nom d'utilisateur qui tente une connection sur mon serveur HTTP. Pour cela, je récupére les entêtes HTTP fourni dans
Falsification du protocole HTTP. [ par michalss ]
Bonjour à toi qui me lis !Voici mon problème : je pense faire une petite application(VB6, VB.Net, C# ou C++) qui tourne en tache de fond et valide aut
RCW recuperation d'objets com [ par marshallmatter ]
MarshallMatterBonjour,je suis entrain de developé un client en c# et je dois donc recuperer des données sur le serveur. J ai integré la tlb mais a par
Treeview [ par streetlife ]
J'ai un réèl problème avec un composant treeview si quelqu'un pouvait jetter un coup d'oeil j'ai laisser mon problème en tant que source C#:http://www
HELP !! XML [ par JCpp ]
Ça commence à m'énerver. Grrr.J'ai toujours le même problème :http://www.csharpfr.com/forum.v2.aspx?ID=155596
clavier key [ par JCpp ]
Je voudrais connaître les touches appuyer sur le clavier, pour que Jenny (Botmaster) puise connaître les mots frappés dans une autre application comme
Recuperer l'adresse IP d'un utilisateur distant [ par eRRaTuM ]
Bijour,Je cherche une methode pour que je puisse recuperer l'adresse IP d'un remote user, pour pouvoir faire des statistiques, je sais que je dois uti
Recuperer le contenu d'un Arraylist quand celui est une classe créé par l'utilisateur [ par reyman ]
Salut tout le mondeJ'ai utilisé un arraylist dans lequel je stocke une classe de ma créationex: MaClasse Cl;Liste.Add(Cl);Donc je pensais recupérer l
Recuperer le contenu de la barre d'adresse de IE [ par karshnod ]
Bonjour,Je develloppe une appli en C# (winForm) et je cherche un moyen de recuperer le contenu de la barre d'adresse de IE.En fait mon prog tourne en
Livres en rapport
|
Derniers Blogs
TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi WORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBEWORKFLOW FOUNDATION 3 A UN PIED DANS LA TOMBE par JeremyJeanson
Depuis déjà un an, je conseille vivement les utilisateurs de Workflow Foundation 3 à migrer vers la version 4. L'information qui va suivre ne devrait donc pas trop prendre au dépourvu les personnes qui m'ont suivi. Je profite de ce poste, pour faire le re...
Cliquez pour lire la suite de l'article par JeremyJeanson TECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PCTECHDAYS PARIS 2012 : NOUVELLES TENDANCES DU POSTE DE TRAVAIL - BRING YOUR OWN PC par ROMELARD Fabrice
Speakers: Thierry Rapatout, Antoine Petit et Xavier Trebbia Cette session entre dans le cadre des RDV Décideurs des TechDays 2012, elle est liée à la consumérisation de l'IT et la mise en place du "DeskTop as a Service" dans de plus en ...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|