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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|