|
|
Cet article est disponible en: English Castellano Deutsch Francais Italiano Nederlands Portugues Turkce |
par Egon Willighagen <egonw(at)logreport.org> L´auteur: En plus de participer au projet LinuxFocus, Egon a travaillé pour la fondation Stichting Logreport jusqu'au premier novembre de cette année. Un des objectifs de la fondation est de concevoir des logiciels pour l'analyse de relevés de transactions sous license GPL. Traduit en Français par: Jean-François Messier <messier(at)yahoo.com> Sommaire: |
Résumé:
Cet article est le second d'une série sur le logiciel Lire qui analyse les relevés de transactions de serveurs d'applications. Cet article vous montre comment personnaliser les rapports générés. Le premier article de cette série expliquait comment Lire est installé.
Cet article est basé sur la dernière version de Lire, soit : lire-20011017. Veuillez noter que la configuration a beaucoup changé depuis la précédente version, et que cet article est déjà dépassé. L'idée générale de lr_config, toutefois, n'a pas changé.
Parmi les nouvelles fonctionnalités, on retrouve: deux nouveaux super-services (FTP et firewall), de nombreux nouveaux rapports (plus de 68), de nouveaux formats de sortie (XHTML et RTF) et de nombreuses corrections. Mais le changement le plus important de cette version se trouve dans le moteur. Le processus de rapport a été entièrement réécrit, afin d'utiliser la technologie XML.
Cet article présentera un des formats XML utilisés dans Lire, et comment s'en servir pour spécifier des rapports. Ce n'est pas un tutoriel sur la conception de rapports, mais il vous montrera comment modifier des rapports prédéfinis en détail. Mais tout d'abord, cet article expliquera comment vous pouvez demander à Lire de générer les rapports et comment en spécifier les paramètres.
Chaque super service (ex: `email' est un super service, les services `postfix' et `sendmail' appartiennent à ce super service) possède un nombre de rapports disponibles, qui extraient l'information des relevés de transaction pour vous. Le super service WWW, par exemple, possède 31 rapports. Tous les rapports ne sont pas intéressants pour chacun d'entre nous. Par défaut, la plupart de ces rapports sont sélectionnés, mais il est prudent de les personnaliser.
Les fichiers utilisés dans la génération de rapports sont dans le fichier <prefix>/etc/lire/<superservice>.cfg (en supposant que Lire est installé dans le répertoire <prefix>). Par exemple, le fichier de configuration pour le super service FTP ressemble à ce qui suit :
# Report configuration for the FTP super service
# Top X reports
top-remote-host hosts_to_show=10
#top-files files_to_show=10
top-files-in files_to_show=10
top-files-out files_to_show=10
top-users users_to_show=10
# By day reports
bytes-by-day
# Transfers by X reports
transfers-by-direction
transfers-by-type
Le super service FTP a donc huit rapports définis et tous, sauf un, sont sélectionnés. Le "top-files" est désélectionné, en utilisant le caractère "#". Le retrait de "#" resélectionne le rapport.
A noter que les lignes commençant par "#" ne sont pas toutes des lignes de rapports. Dans ce fichier de configuration, les lignes "Report configuration for the FTP super service", "Top X reports", "By day reports" et "Transfers by X reports" sont des commentaires. Il en est de même pour d'autres fichiers de configuration.
Le classement est très simple. L'ordre des lignes de rapports dans le fichier de configuration est l'ordre de sortie des rapports. Un changement dans cet ordre change l'ordre de sortie des rapports. Ainsi, dans l'exemple ci-dessus, "transfers-by-type" sera le dernier rapport en entrée.
Plusieurs rapports peuvent être personnalisés en partie avec les fichiers de configuration, comme expliqué dans la précédente section. Par exemple, pour la configuration du super service DNS:
# Report configuration for the DNS super service
# Top reports
top-requesting-hosts hosts_to_show=10
top-requesting-hosts-by-method hosts_to_show=10 method='recurs'
top-requesting-hosts-by-method hosts_to_show=10 method='nonrec'
top-requested-names names_to_show=10
top-requested-names-by-method names_to_show=10 method='recurs'
top-requested-names-by-method names_to_show=10 method='nonrec'
requesttype-distribution
requesttype-distribution-by-method method='recurs'
requesttype-distribution-by-method method='nonrec'
# By Day reports
requests-by-period period=1d
requests-by-period-by-method period=1d method='recurs'
requests-by-period-by-method period=1d method='nonrec'
# By Hour reports
requests-by-period period=1h
requests-by-period-by-method period=1h method='recurs'
requests-by-period-by-method period=1h method='nonrec'
Les quinze rapports sont sélectionnés, mais de plus, pour les rapports ayant un Top X, le nombre X peut être défini. Avec la configuration ci-dessus, le rapport top-requesting-hosts affichera les 10 hôtes se connectant le plus fréquemment.
Ces rapports sont générés à partir seulement de huit spécifications de rapport. C'est l'utilisation des paramètres (period, method, hosts_to_show, et names_to_show) qui permet cela. C'est une des forces du nouveau moteur basé sur XML.
Important: toutes les définitions de variables doivent être sur la même ligne que le nom du rapport !
Un exemple plus exotique, provient du fichier de configuration du super service WWW:
top-referers-by-page referer_to_show=5 page_to_show=10 referer_exclusion='^-$'
Dans cet exemple, une expression régulière est utilisée comme contenu de la variable referer_exclusion. Cette expression correspond à toutes les références "-". De telles références se retrouvent dans le relevé de transaction dans les cas par exemple, où l'adresse web est entrée par l'utilisateur client. (Quand des utilisateurs visitent votre page web, en cliquant sur un lien dans une page, la page de provenance figure dans le champ de référence.) Toutes les références qui correspondent à "-" seront exclues de l'analyse.
Cette nouvelle version commence une toute nouvelle branche de Lire. La génération de rapports et le processus de spécification ont été entièrement réécrits pour l'utilisation de la technologie XML. Les rapports sont spécifiés en XML, mais la définition de variables est faite en format ASCII. La spécification de rapport précédente était un script Perl qui devait connaître à la fois le format d'entrée et le format de sortie. Avec le nouveau format XML, l'implémentation est distincte de la spécification, et il n'est plus nécessaire de connaître les formats d'entrée et de sortie; seulement l'information à traiter.
Donc, pour personnaliser des rapports à bas niveau, il faut connaître un peu le XML. Un exemple de rapport, extrait du répertoire <prefix>/share/lire/reports/firewall :
<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE lire:report-spec PUBLIC
"-//LogReport.ORG//DTD Lire Report Specification Markup Language V1.0//EN"
"http://www.logreport.org/LRSML/1.0/lrsml.dtd">
<lire:report-spec xmlns:lire="http://www.logreport.org/LRSML/"
superservice="firewall" id="bytesperfrom" charttype="bars">
<lire:title>Top Bytes per From-IP Report</lire:title>
<lire:description>
<para>
This report lists the IP addresses sending the highest data volume.
</para>
</lire:description>
<lire:param-spec>
<lire:param name="ips_to_show" type="int" default="10">
<lire:description>
<para>This parameter controls the number of sending IP adresses to
display in the report.
</para>
</lire:description>
</lire:param>
</lire:param-spec>
<lire:display-spec>
<lire:title>Volume per sending IP, Top $ips_to_show</lire:title>
</lire:display-spec>
<lire:report-calc-spec>
<lire:group sort="-rcvd_volume" limit="$ips_to_show">
<lire:field name="from_ip"/>
<lire:sum name="rcvd_volume" field="length"/>
</lire:group>
</lire:report-calc-spec>
</lire:report-spec>
Tout d'abord, il faut noter que presque chaque élément XML de ce rapport commence par lire:. Ceci sert à affecter un "namespace" à cet élément. Chaque élément avec le namespace lire est défini dans le XML DTD de http://www.logreport.org/LRSML/1.0/lrsml.dtd (lien vide!) qui peut être visualisé à http://www.logreport.org/pub/docs/dtd/lrsml/.
Tous les autres éléments sont censés appartenir au DocBook XML 4.2 DTD. Comme l'élément <para> sur la sixième ligne de l'exemple.
Pour changer le titre qui apparaît dans le rapport, vous devez modifier le contenu de <lire:title> dans le <lire:display-spec>. Rappelez-vous que les phrases commençant par "$" sont des variables Perl, où le nom correspond à un des paramètres spécifiés dans la section <lire:param-spec>.
La chose la plus délicate, c'est d'utiliser le bon élément <lire:title>. Vous avez besoin de l'élément qui est le contenu du noeud <lire:display-spec>. Ce dernier contient l'information à afficher dans le rapport. Le premier élément <lire:title> contient le titre du rapport utilisé dans la documentation du logiciel Lire.
L'exemple suivant montre un fragment des spécifications du rapport de WWW requests-by-result. On peut voir que le <lire:display-spec> affiche maintenant non seulement un titre, mais aussi d'autres explications. A noter que tout le contenu de l'élément <lire:description> n'utilise pas le namespace lire et c'est donc un contenu DocBook.
<lire:display-spec>
<lire:title>Requests By HTTP Result</lire:title>
<lire:description>
<para>
The most common HTTP status codes are given below:
<variablelist>
<varlistentry>
<term>200</term>
<listitem>
<para>OK (The request has succeeded.)</para>
</listitem>
</varlistentry>
<!-- rest is cut out -->
</variablelist>
</para>
</lire:description>
</lire:display-spec>
Voici un exemple (partiel) du résultat de ce rapport:
Requests By HTTP Result
The most common HTTP status codes are given below:
200 OK (The request has succeeded.)
201 Created (The request has been fulfilled and resulted in a new resource being created.)
206 Partial Content (The server has fulfilled the
La plupart des rapports ont des graphiques associés aux données. Ces images sont générées à partir des données et les spécifications du rapport définissent aussi le format de génération de l'image. Prenons par exemple, l'extrait suivant du rapport FTP transfers-by-type.
Pour ce rapport, les données sont visualisées sous forme de camembert comme le montre l'attribut @charttype dans le code ci-dessus. Le résultat ressemble à :
En changeant le type de graphe par bars comme dans 'charttype="bars" le résultat devient:
Il est à noter que le titre du rapport contient un bogue. Le rapport est sur le type de transfert, et non pas sur le type de fichier. Ce bogue a été déjà signalé.
Une information plus détaillée sur le langage XML utilisé dans la spécification de rapport peut être trouvée sur le site web de LogReport. Vous verrez que le langage est très étendu, et pour l'instant je peux recommander d'utiliser les spécifications de rapport disponibles dans la distribution comme guide principal.
Les éléments qui n'ont pas été couverts dans cet article, mais utilisés dans ces rapports, sont destinés à la spécification des paramètres (<lire:param-spec>) et au calcul des données produites (<lire:report-calc-spec>). Plus précisément, ce dernier a plusieurs options et utilise une connaissance préalable du format interne (nommé DLF) où les données de relevé sont stockées. Nous expliquerons ceci dans un futur article.
Cet article a présenté le moteur de génération de rapports basé sur le XML et expliqué comment vous pouvez personnaliser les rapports obtenus. De plus amples informations sont disponibles sur le site web de LogReport : http://www.logreport.org/.
Pour contacter l'équipe de LogReport, vous pouvez joindre l'IRC. Les développeurs se retrouvent souvent sur le canal #logreport du site OpenProjects.org IRC network. Les questions, commentaires et demandes d'aide sont les bienvenus. Si vous préférez utiliser le courrier électronique, vous pouvez contacter l'équipe sur la liste de diffusion publique [email protected].
|
Site Web maintenu par l´équipe d´édition LinuxFocus
© Egon Willighagen, FDL LinuxFocus.org Cliquez ici pour signaler une erreur ou envoyer un commentaire à Linuxfocus |
Translation information:
|
2001-11-07, generated by lfparser version 2.21