Index de l'article |
---|
EventCentral 4.4 |
Installation |
Configuration |
Collecte à distance |
Toutes les pages |
Les journaux sont conservés dans une base de données MySQL.
Les ordinateurs à collecter sont découverts automatiquement lors du processus de collecte, selon un filtre que tu peux définir.
Captures d'écran
On peut aussi :- Acquitter un évènement en cochant la case correspondante, et y associer un commentaire.
- Rechercher un évènement sur différents sites web spécialisés, en cliquant sur l'icône de gravité.
- Rechercher tous les évènements qui se sont produits quelques minutes autour d'un évènement, en cliquant sur l'heure.
- Rechercher tous les évènements du même jour ayant la même source, en cliquant sur la source.
- Rechercher tous les évènements du même jour pour le même ordinateur (tous journaux confondus), en cliquant sur l'ordinateur.
Les liens visités sont marqués, ce qui permet de savoir quels sont les journaux qui ont été traités.
J'en veux
Prérequis serveur
- Un OS Windows serveur
- Un serveur ouèbe, gratuit évidemment, et si possible libre (comment tu dis ? Apache ? Ouais pas mal).
- Un interpréteur Perl vissé dans le serveur ouèbe (Active Perl, pas con).
- Un serveur de base de données MySQL, de version supérieure ou égale à 4.0.0. La réponse est : non, le support de SQL server, MSDE ou Access n'est pas prévu.
Prérequis client
EventCentral a été testé avec succés sur Firefox 2.x et Internet Explorer 7.
Compatibilité
Windows 2003, Windows 2000, Windows NT, ça c'est sûr. Sans doute XP et Vista, mais bon tant que je ne l'ai pas vu tourner de mes yeux, tu sais ce que c'est.
Donne-moi ça tout de suite
EventCentral est distribué sous licence Gnu General Public License, version 2.
EventCentral44.zip (173 Ko environ) contient tous les fichiers nécessaires à l'application.
Il est également disponible sur
Historique des versions
Il n'y a pas de programme d'installation, merci de lire attentivement les instructions d'installation ou de mise à jour.
Mise à jour
Dans tous les cas, si tu utilises de la collecte distante, pense à faire la mise à jour également sur les serveurs distants — sauf la mise à jour de la base de données.
Version 3 vers version 4
Désolé, pas de mise à jour entre les versions 3 et 4.
Version 4.0.x vers version 4.1
Remplacer le contenu du répertoire c:\program files\EventCentral4 par le contenu de l'archive (supprimer l'ancien contenu).
Version 4.0.x ou 4.1 vers version 4.2
La structure de la base de données a changé avec la version 4.2. N'aie pas peur : tes données seront conservées. La méthode est la suivante :
- Remplacer le contenu du répertoire c:\program files\EventCentral4 par le contenu de l'archive (supprimer l'ancien contenu).
- Exécuter le script SQL de mise à jour de la base de données update.sql, après avoir éventuellement remplacé le nom de la base de données dans ce script. Par défaut, elle est nommée "eventcentral".
mysql -u root -p
<mot de passe>
mysql> source update.sql;
mysql> exit; - Supprimer le fichier update.sql.
Version 4.x vers version 4.3
La structure de la base de données a changé avec la version 4.3. N'aie pas peur : tes données seront conservées. La méthode est la suivante :
- Remplacer le contenu du répertoire c:\program files\EventCentral4 par le contenu de l'archive (supprimer l'ancien contenu).
- Si ta version actuelle est <= 4.1, exécuter le premier script SQL de mise à jour de la base de données update_4x_42.sql, après avoir éventuellement remplacé le nom de la base de données dans ce script. Par défaut, elle est nommée "eventcentral". Ta base est maintenant en version 4.2.
- Exécuter le script SQL de mise à jour de la base de données update_42_43.sql, après avoir éventuellement remplacé le nom de la base de données dans ce script. Par défaut, elle est nommée "eventcentral". Ta base est enfin en version 4.3.
mysql -u root -p
<mot de passe>
mysql> source update_4x_42.sql;
mysql> source update_42_43.sql;
mysql> exit; - Supprimer les fichiers update*.sql.
Version 4.x vers version 4.3.1
La structure de la base de données a changé avec la version 4.3.1. N'aie pas peur : tes données seront conservées. La méthode est la suivante :
- Dans l'administration d'EventCentral, note la version que tu utilises actuellement.
- Supprime le contenu du répertoire c:\program files\EventCentral4, remplace-le par le contenu de l'archive que tu as téléchargée.
- Va sur la page d'accueil d'EventCentral, qui doit hurler que des mises à jour sont disponibles.
- Vérifie d'abord ta configuration, dans la page d'administration. Hé oui, tu viens d'écraser ton fichier de configuration.
- Uniquement sur le serveur hébergeant la base de données (pas sur les serveurs faisant de la collecte distante) : De retour sur la page d'accueil, clique sur Lancer la mise à jour. Choisis les mises à jour à lancer en fonction de la version précédemment installée d'EventCentral. Les fichiers sont nommés update_<ancienne version>_<nouvelle version> (l'ordre d'application des fichiers n'a pas d'importance).
- Hop, fini.
Version 4.3.1 vers version 4.4
Pas de modification du shéma de la base de données.
- Remplacer le contenu du répertoire c:\program files\EventCentral4 par le contenu de l'archive (supprimer l'ancien contenu), sauf config.inc qui contient le paramétrage de l'application.
Installation
Pour plus de facilité, nous appellerons ton serveur ouèbe SERVEUR_CENTRAL plutôt que Catherine, parce que Catherine ça fait pas sérieux.
Installations prérequises
Or donc, sur SERVEUR_CENTRAL, il faut avant toute chose :
- Récupérer les programmes prérequis
- Installer Apache (ou IIS, mais tant pis pour toi)
- Installer MySQL v4.0.0 minimum (package "essential", installation "typical") et le configurer à suivre (notamment mot de passe root)
- Installer Active Perl (installation complète)
- Ajouter avec PPM le package Perl DBD::mysql
[set HTTP_proxy=http://votre.proxy.interne:8080]
En cas de problème, voir ces commentaires.
ppm install DBD::mysql
Les autres packages Perl nécessaires sont :- Win32::NetAdmin
- Win32::TieRegistry
- Win32::NetResource
- HTTP::Date
- DBI
- CGI
- Time::HiRes
- Locale::Maketext
- XML::Simple
- FindBin
Installation d'EventCentral
Décompacte le zip amoureusement concocté par mes soins sur SERVEUR_CENTRAL, dans C:\Program Files\. Cela va créer le répertoire "EventCentral44".
Change si nécessaire à la première ligne de chaque script *.pl le chemin de l'interpréteur Perl. Si tu as fait une installation standard de Active Perl, tu peux laisser #!c:\perl\bin\perl.
Assure-toi ensuite qu'Apache veuille bien exécuter des scripts Perl se trouvant dans le répertoire d'EventCentral. Pour ça, ajoute dans le fichier de configuration d'Apache httpd.conf les lignes suivantes :
Alias /eventcentral/ "C:/Program Files/eventcentral44/html/"
<Directory "C:/Program Files/eventcentral44/html/">
AddHandler cgi-script .pl
Options Indexes FollowSymLinks -MultiViews +ExecCGI
AllowOverride all
Order allow,deny
Allow from all
</Directory>
Il faut relancer Apache après ces modifications.
Configuration
Ouvre ton navigateur à l'URL http://localhost/eventcentral/admin.pl.
Renseigne les différents paramétres dans la première rubrique (les valeurs par défaut devraient faire l'affaire, à l'exception du mot de passe MySQL qu'il serait bon de changer). Enregistre.
Note : l'utilisateur sous lequel tourne le serveur Apache doit avoir les droits en écriture sur le répertoire C:\Program Files\EventCentral44\html, où s'enregistre la configuration.
Crée la base de données : renseigne dans la deuxième rubrique le mot de passe de root pour MySQL et clique sur "Créer".
Quand tu auras exécuté la récupération des journaux (voir ci-dessous), tu pourras les afficher en ouvrant ton navigateur à l'URL http://localhost/eventcentral/.
Récupération des journaux
Planification
Il te faut créer sur SERVEUR_CENTRAL une tâche planifiée (voir la documentation de Windows, si tu ne sais pas ce que c'est), s'exécutant tous les jours après minuit, à un moment creux pour tes serveurs. Elle lance le programme Perl de collecte, avec les paramétres qui vont bien. Si tu veux connaître les paramétres acceptés, tape dans une fenêtre de commande :
C:
cd "\Program Files\EventCentral44"
perl dumpel.pl
Il est important d'exécuter dumpel.pl depuis le répertoire où il est installé, sinon Perl ne trouvera pas le module EventLog.pm et s'en plaindra comme ça :
Can't locate EventLog.pm in @INC (@INC contains: ./html C:/Perl/site/lib C:/Perl/lib .)
at C:\Program Files\EventCentral44\dumpel.pl ...
Ainsi donc, si tu veux "dumper" les journaux des serveurs du domaine DOMAINE, ta tâche devra lancer :
c:\perl\bin\perl.exe "C:\Program Files\EventCentral44\dumpel.pl" DOMAINE
Elle s'exécutera dans le répertoire C:\Program Files\EventCentral44.
Cette tâche doit s'exécuter sous un compte disposant :
- de droits d'accès au réseau (donc pas LocalSystem)
- d'écriture sur C:\Program Files\EventCentral44\tmp (pour pouvoir écrire localement les fichiers de dump)
- et idéalement des droits d'administration dans DOMAINE.
Dans le cas où tu ne dispose pas des droits suffisants pour DOMAINE, tout n'est pas perdu. Tu peux soit utiliser la collecte à distance, soit passer en paramétre en plus du nom de domaine un login et un mot de passe à utiliser pour se connecter aux machines de ce domaine :
c:\perl\bin\perl.exe "C:\Program Files\EventCentral44\dumpel.pl" \
DOMAINE,DOMAINE\utilisateur,mot_de_passe
Enfin, tu peux passer plusieurs domaines en paramétre sous la même forme, séparés par un espace.
c:\perl\bin\perl.exe "C:\Program Files\EventCentral44\dumpel.pl" \
DOMAINE1 DOMAINE2,utilisateur,motdepasse DOMAINE3,utilisateur,motdepasse
Attention ! Depuis qu'il a été repris par Microsoft, PsLogList.exe doit être lancé au moins une première fois à la main. Il affiche alors un contrat de licence, qu'il faut accepter. Par la suite, il peut être utilisé dans un fichier de commandes.
Filtrage des serveurs à prendre en compte
Le programme est prévu pour prendre dans le voisinage réseau toutes les machines dont l'OS est de type serveur (cf la fonction get_serveurs). En Perl, ça s'éructe comme ça :
if (!Win32::NetAdmin::GetServers(undef,$domaine,0x8018,\@machines)) {
warn "Impossible de voir le voisinage reseau de $domaine\n";
} else {
foreach (@machines) { push @resultat, "$_.${domaine}${userPassword}"; };
}
Tu as noté en rouge le code hexa barbare ? C'est la somme de 0x8000 (qui veut dire NT/2000 server), 0x8 (contrôleurs de domaine), et 0x10 (contrôleurs de domaine secondaires). Tous les codes possibles sont listés à la fin du fichier dumpel.pl, à toutes fins utiles.
On peut faire des tris plus subtils, par exemple en listant toutes les machines, et en les filtrant ensuite pour ne garder que celles dont le nom commence par S et ne se termine ni par M ni par I (hé oui, et pourquoi pas ?). Ca donnerait :
if (!Win32::NetAdmin::GetServers(undef,$domaine,0xFFFFFFFF,\@machines)) {
warn "Impossible de voir le voisinage reseau de $domaine\n";
} else {
foreach (@machines) { /^S.*[^MI]$/i && do { push @resultat, "$_.${domaine}${userPassword}"; }};
}
Voilà, tu as compris le principe, tu peux donc développer le filtre que tu veux.
Collecte à distance
Il est possible de collecter les journaux sur une machine, et de les stocker et afficher sur une autre. Cela permet notamment de récupérer les journaux d'un domaine qui n'apparaît pas dans le voisinage réseau de SERVEUR_CENTRAL. Le seul lien nécessaire entre les deux machines est une connexion MySQL.
Dans ce cas, la partie affichage n'est pas sollicitée, le répertoire html peut donc être vidé à l'exception du fichier de configuration config.inc. Mais cette suppression n'est pas indispensable (c'est pas pour le prix de l'espace disque de nos jours, hein ?)
La procédure est la suivante : on suppose EventCentral installé sur SERVEUR_CENTRAL selon la procédure indiquée ci-dessus. On l'installe également sur le serveur distant — appelons-le SERVEUR_DISTANT — mais sans le serveur MySQL et sans le serveur Web Apache. Cela revient à :
- installer Perl et le package DBD::mysql, selon la procédure ci-dessus
- extraire l'archive dans c:\program files de SERVEUR_DISTANT
- modifier le fichier de configuration html\config.inc, pour donner le nom du serveur de base de données :
$db_host = "SERVEUR_CENTRAL";
modifier éventuellement les autres variables $db_* pour donner les bons paramétres (nom de la base de données, utilisateur mysql et mot de passe). Attention : si la collecte se fait sur plusieurs serveurs, le paramétre $db_purge doit être identique partout. En effet la purge étant appliquée après chaque collecte, c'est la purge la plus courte qui l'emportera. - Planifier la collecte des journaux comme dans l'installation locale. Il est préférable de décaler l'heure de démarrage des différentes collectes, pour éviter que deux collectes ne sollicitent la base de données en même temps.
Protection de la page d'administration
Tu peux restreindre l'accès à la page d'administration, ou à n'importe quelle page que tu juges sensible, en utilisant la fonctionnalité d'Apache ".htaccess". Pour cela, crée un fichier .htaccess dans le sous-répertoire 'html" de l'installation d'EventCentral. Comme l'explorateur de Windows ne permet pas de créer des fichiers avec seulement une extension, tu devras le faire en ligne de commande :
c:
cd "\program files\eventcentral44"
echo.>.htaccess
Edite ensuite ce fichier, pour qu'il contienne :
<FilesMatch admin.pl>
AuthName "EventCentral"
AuthType Basic
AuthUserFile "c:/program files/eventcentral44/.htpasswd"
require valid-user
</FilesMatch>
Il ne reste plus qu'à créer le fichier contenant le login/mot de passe autorisé à accéder aux pages protégées :
cd ..
c:\program files\Apache Software Foundation\Apache2.2\bin\htpasswd -c .htpasswd <login>
<mot de passe>
Reste à faire
- Modifier la feuille de style eventcentral.css pour un résultat éclatant de beauté.
- Traduire dans toutes les langues l'interface d'EventCentral, grâce aux fichiers d'internationalisation. S'inspirer de EventLog/I18N/en.pm.
Merci de me soumettre le résultat de vos efforts, afin que la communauté des utilisateurs en profite.
Remerciements
- A Mark Russinovich, pour l'outil de dump de journaux "psloglist"
- A David Vignoni pour les icônes Nuvola.
- A www.webelix.net pour le script infobulle2.
- A Jason Cranford Teague, dans "DHTML and CSS: Advanced Visual QuickPro Guide", pour le script popup.