<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Le blog de Michauko &#187; dns</title>
	<atom:link href="http://michauko.org/blog/tag/dns/feed/" rel="self" type="application/rss+xml" />
	<link>http://michauko.org/blog</link>
	<description>Si tu ne comprends pas le titre de l&#039;article, passe ton chemin</description>
	<lastBuildDate>Mon, 16 Apr 2012 10:10:58 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Catch-all DNS, VirtualHost et on fait mumuse avec les noms de sous-domaines</title>
		<link>http://michauko.org/blog/2012/03/28/catch-all-dns-virtualhost-et-on-fait-mumuse-avec-les-noms-de-sous-domaines/</link>
		<comments>http://michauko.org/blog/2012/03/28/catch-all-dns-virtualhost-et-on-fait-mumuse-avec-les-noms-de-sous-domaines/#comments</comments>
		<pubDate>Wed, 28 Mar 2012 16:07:17 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[Debian]]></category>
		<category><![CDATA[dev]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[catch-all]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[VirtualHost]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/?p=1316</guid>
		<description><![CDATA[Salut lecteur, Un bail que je n&#8217;ai rien écrit sur ce blog, la faute à un petit projet perso qui me prend un peu de temps chez moi, semble-t-il. L&#8217;idée Ceci dit, je voulais laisser une trace de cette manip&#8217; qui consiste à autoriser n&#8217;importe quel nom de sous-domaine d&#8217;un domaine que vous possédez, exemple [...]]]></description>
			<content:encoded><![CDATA[<p>Salut lecteur,</p>
<p>Un bail que je n&#8217;ai rien écrit sur ce blog, la faute à un petit projet perso qui me prend un peu de temps chez moi, semble-t-il.</p>
<h2>L&#8217;idée</h2>
<p>Ceci dit, je voulais laisser une trace de cette manip&#8217; qui consiste à autoriser n&#8217;importe quel nom de sous-domaine d&#8217;un domaine que vous possédez, exemple le fameux &laquo;&nbsp;mon_domaine.com&nbsp;&raquo; en ayant la possibilité d&#8217;envoyer vers un site ou un autre (au sens, un VirtualHost/DocumentRoot ou un autre) suivant le nom de sous-domaine appelé, la liste de ces sous-domaines étant potentiellement illimitée.</p>
<p>Bon, OK, pour la formulation, c&#8217;est pas forcément limpide. Un exemple concret : mon_domaine.com est <span id="more-1316"></span>une société qui propose un service web personnalisé pour ses clients. Le gérant de la chose décide de mettre en place les sous-domaines suivants :</p>
<ul>
<li>www.mon_domaine.com</li>
<li>demo.mon_domaine.com ; même mieux : une liste de plusieurs instances de démo : demo1, demo2 etc</li>
<li>une série infinie de clientXXX.mon_domaine.com, exemples : http://client.mon_domaine.com, http://autreclient.mon_domaine.com</li>
</ul>
<p>
On voudrait que le &laquo;&nbsp;www&nbsp;&raquo; renvoie vers le site &laquo;&nbsp;commerçant&nbsp;&raquo;, que les &laquo;&nbsp;demoX&nbsp;&raquo; renvoient vers le service en mode démo (chacun étant une instance différente, une base de données différente, par exemple) et que chaque &laquo;&nbsp;clientXXX&nbsp;&raquo; pointe vers le vrai outil, dont le code est commun pour tous les clients, là aussi avec une peut-être une base de donnée différente par client.<br />
Pourquoi ne pas juste passer un paramètre dans l&#8217;URL pour indiquer le client ? car dans mon cas, je préférais faire des sous-domaines différents, ça enlève un tas d&#8217;épines du pied en ce qui concerne la gestion des sessions, gestion qui est liée au nom complet du domaine, pas à ce qu&#8217;il y a après le &laquo;&nbsp;.com&nbsp;&raquo;, comme un http://&#8230;.com/?client=xxx</p>
<p>On a toujours la possibilité de faire n&#8217;importe quelle crassouillerie pour avoir un script d&#8217;index[.php] qui dirige vers tel ou tel code/outil suivant l&#8217;URL appelée. Pourquoi pas. Mais lorsque l&#8217;un des outils est par exemple un outil dont on ne veut pas modifier l&#8217;index[.php], ça peut poser problème. Exemple, le &laquo;&nbsp;www&nbsp;&raquo; est un wordpress, le reste un outil maison. Je ne veux pas avoir à jouer avec le htaccess du WordPress, ce genre de choses. Bref, je scinde les mondes avant et je limite les risques de passage de l&#8217;un à l&#8217;autre.</p>
<p>Bon, ça y est ? le contexte est clair ?<br />
Voici la solution que je trouve la plus élégante.</p>
<h2>Côté DNS : catch-all</h2>
<p>Si le gérant de votre nom de domaine le permet, créez d&#8217;abord un enregistrement DNS type A ou CNAME nommé &laquo;&nbsp;*&nbsp;&raquo; et pointant vers votre serveur. Exemple : &laquo;&nbsp;<code>*.mon_domaine.com CNAME mon_domaine.com</code>&laquo;&nbsp;.<br />
Tous ne le permettent sûrement pas. Je sais au moins que OVH le tolère, il suffit de mettre &laquo;&nbsp;*&nbsp;&raquo; comme nom de sous-domaine.<br />
Ensuite, on peut tester avec la commande &laquo;&nbsp;<code>host/nslookup nimportequoi.mon_domaine.com</code>&laquo;&nbsp;.</p>
<h2>Côté Apache : identification du sous-domaine demandé</h2>
<p>Avec la manip&#8217; DNS, on est sûr que nimportequoi.mon_domaine.com renvoie bien vers le serveur. Reste à trier au niveau Apache (plutôt qu&#8217;au niveau code derrière, comme j&#8217;ai expliqué plus haut).<br />
Déjà pour être sûr que ça marche, une conf simpliste consiste à créer un unique VirtualHost comme ceci :</p>
<pre>< VirtualHost *>
        ServerName mon_domaine.com
        ServerAlias *.mon_domaine.com
        ServerAdmin webmaster@mon_domaine.com
        ...
        DocumentRoot /quelque/part/
        ...
< /VirtualHost>
</pre>
<p>Avec ça, vous pouvez appeler http://peu_importe.mon_domaine.com ou http://www.mon_domaine.com et atterrir sur le même VirtualHost/DocumentRoot, le même &laquo;&nbsp;site&nbsp;&raquo;.</p>
<p>Ensuite, on améliore pour scinder les 3 jeux de sous-domaines. Supprimez le VirtualHost d&#8217;avant et mettez :</p>
<pre>< VirtualHost *>
        ServerName www.mon_domaine.com
        ServerAdmin webmaster@mon_domaine.com
        ...
        DocumentRoot /quelque/part/le/site/www/
        ...
< /VirtualHost>
< VirtualHost *>
        ServerAlias demo*.mon_domaine.com
        ServerAdmin webmaster@mon_domaine.com
        ...
        DocumentRoot /quelque/part/le/code/des/sites/de/demo/
        ...
< /VirtualHost>
< VirtualHost *>
        ServerName mon_domaine.com
        ServerAlias *.mon_domaine.com
        ServerAdmin webmaster@mon_domaine.com
        ...
        DocumentRoot /quelque/part/le/code/des/sites/de/production/
        ...
< /VirtualHost></pre>
<p>Bah voilà, c&#8217;est tout, les 3 répertoires mentionnés dans les DocumentRoot sont indépendants.<br />
Il ne resterait plus que dans l&#8217;outil, à récupérer le nom du sous-domaine (exemple à partir de <code>$_SERVER['SERVER_NAME']</code> en PHP) et faire le traitement adéquat.</p>
<p>En espérant que ça serve à quelqu&#8217;un,</p>
<p>A la prochaine !</p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2012/03/28/catch-all-dns-virtualhost-et-on-fait-mumuse-avec-les-noms-de-sous-domaines/feed/</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Exchange, outlook&#8230; dans un monde de serveurs Linux</title>
		<link>http://michauko.org/blog/2008/03/13/exchange-outlook-dans-un-monde-de-serveurs-linux/</link>
		<comments>http://michauko.org/blog/2008/03/13/exchange-outlook-dans-un-monde-de-serveurs-linux/#comments</comments>
		<pubDate>Thu, 13 Mar 2008 08:29:36 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[bureautique]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[mails]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[windows]]></category>
		<category><![CDATA[agenda]]></category>
		<category><![CDATA[autodiscover]]></category>
		<category><![CDATA[bind]]></category>
		<category><![CDATA[calendrier]]></category>
		<category><![CDATA[découverte automatique]]></category>
		<category><![CDATA[disponibilités]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[exchange]]></category>
		<category><![CDATA[free/busy]]></category>
		<category><![CDATA[outlook]]></category>
		<category><![CDATA[srv]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/2008/03/13/exchange-outlook-dans-un-monde-de-serveurs-linux/</guid>
		<description><![CDATA[Je passe sur les raisons longuement discutées (pendant environ un an) qui nous ont poussés à installer un Exchange pour son calendrier offline (pour les hommes pressés en déplacement), sur un smartphone/outlook (port de la cravate obligatoire), son outil de CRM (cravate et grosse bagnole sont de mises), etc etc. La partie e-mail reste en [...]]]></description>
			<content:encoded><![CDATA[<p>Je passe sur les raisons longuement discutées (pendant environ un an) qui nous ont poussés à installer un Exchange pour son calendrier offline (pour les hommes pressés en déplacement), sur un smartphone/outlook (port de la cravate obligatoire), son outil de CRM (cravate et grosse bagnole sont de mises), etc etc. La partie e-mail reste en Linux et la cohabitation des 2 mondes (exchange+imap linux) dans un Outlook se passera honorablement.<br />
Il y aurait tant à dire sur les solutions de contournement qu&#8217;on n&#8217;a qu&#8217;à troller dans les commentaires si vous le souhaitez.</p>
<p><strong>Avant de capituler, sachez juste que j&#8217;ai testé en long en large et en travers les solutions de synchro outlook<-> egroupware type <a href="http://www.funambol.com/">Funambol (ex Sync4j), Funambol server</a> et blablabli et je ne sais quoi d&#8217;autres généralement bien moisi. </strong>S&#8217;il fallait donner un bilan : Funambol, ça marche, mais ça se limite à remonter des créneaux horaires (pas des participants, pas de pièce jointe etc). Les autres solutions, ça vaut pas un cachou. Et du <a href="http://www.zimbra.com/">Zimbra</a> etc, c&#8217;est finalement à peine moins cher qu&#8217;un Exchange, chiffres à l&#8217;appui.</p>
<p>Voilà, maintenant qu&#8217;on ne peut plus m&#8217;accuser d&#8217;avoir déserté sans livrer bataille, je vous livre 2/3 remarques sur le fonctionnement d&#8217;Outlook 2003 et 2007, vis-à-vis d&#8217;Exchange et d&#8217;une intégration d&#8217;un Exchange dans un environnement Linux, notamment un DNS Linux (BIND9 en l&#8217;occurrence).</p>
<h3>Petite intro</h3>
<p>Ces cons de clients mail fonctionnent différemment et Exchange 2007 conserve les deux modes d&#8217;accès (pour compatibilité) à certains types de données, notamment aux données disponibilités de chacun pour planifier des réunions facilement. On trouve de la doc sur le sujet, mais c&#8217;est pas simple. Et fidèle à lui-même, Microsoft n&#8217;a pas cru bon de rendre ses applications bavardes (ie, générer des logs) et à trop vouloir simplifier l&#8217;interface utilisateur (même dans un mode de configuration manuelle), certains mécanismes sont complètement occultés et quand ça merde, l&#8217;appli ne dit rien !<br />
(Tiens j&#8217;oubliais une note positive : en Outlook 2007, l&#8217;IMAP est un peu mieux géré : on peut désigner un répertoire d&#8217;envoi sans bidouiller comme un malade&#8230;)</p>
<h3>Imaginons donc le scénario suivant</h3>
<p>- un serveur Exchange 2007 dans un domaine (forêt) autonome qui n&#8217;est pas le domaine SAMBA &laquo;&nbsp;principal&nbsp;&raquo; de notre réseau<br />
<em>(- une double maintenance d&#8217;utilisateurs dans l&#8217;Active Directory et dans l&#8217;OpenLDAP (Linux), moyennement quelques scripts, c&#8217;est tout à fait vivable.)</em><br />
- des clients Outlook 2003 et 2007 avec un compte Exchange pour le calendrier et un compte IMAP pour le mail (IMAP hébergé sur Linux)</p>
<h3>Imaginons que ça bug après une installation toute fraîche (facile hein ?)</h3>
<p>- lorsque je planifie une réunion, je ne vois pas les infos de dispo des gens alors que je peux consulter l&#8217;agenda d&#8217;un collègue s&#8217;il m&#8217;autorise (partage)</p>
<h3>La solution, après 12000 recherches et forums</h3>
<p>- Pour outlook 2003 :<br />
Disons que le serveur ait un FQDN &laquo;&nbsp;test.exchg.societe.com&nbsp;&raquo;. Le petit &laquo;&nbsp;exchq&nbsp;&raquo; dans le nom vient du nom du domaine sur lequel est installé Exchange. Donc tous les applicatifs connaissent cette machine sous ce nom complet, et pas &laquo;&nbsp;test.societe.com&nbsp;&raquo;, encore moins &laquo;&nbsp;test&nbsp;&raquo;.<br />
Manque de bol, lorsque vous déclarez votre compte Exchange dans Outlook, vous spécifiez le serveur &laquo;&nbsp;test&nbsp;&raquo; et ce tocard vous dit qu&#8217;il a trouvé et remplace votre saisie par &laquo;&nbsp;test.exchg.societe.com&nbsp;&raquo;, alors même que votre PC (faisant tourner Outlook) ne sait pas résoudre ce nom complet.<br />
De là, tout marche à peu près *sauf* l&#8217;accès aux &laquo;&nbsp;public folders&nbsp;&raquo; du serveur, donc aux infos de dispo des gens&#8230;<br />
Il suffit donc de déclarer ce nom test.exchg dans la zone &laquo;&nbsp;societe.com&nbsp;&raquo; de votre DNS bind.<br />
Et hop, tout se met à marcher.<br />
Bien sûr, si outlook avait dit dès le départ &laquo;&nbsp;cannot find test.exchg.societe.com&nbsp;&raquo;, j&#8217;aurais gagné 2 semaines&#8230;</p>
<p>- Pour Outlook 2007 :<br />
Même genre de bordel, sauf que lui, avec un nouveau procédé &laquo;&nbsp;autodiscover&nbsp;&raquo;, veut tout faire tout seul. Même souci : quand il ne trouve pas le serveur comme il le souhaite, il ne dit rien, mais ça marche mal.<br />
Avec une trace tcpdump sur le DNS (genre : <code>tcpdump -i ethxxx port 53 src host mon-ip-PC-client-outlook</code>), et avec l&#8217;aide de quelques personnes <a href="http://forums.msexchange.org/m_1800468049/mpage_1/key_/tm.htm">sur un forum bien sympa</a>, j&#8217;ai vu que ce bouffon de client cherchait deux enregistrements DNS :<br />
- l&#8217;un de type A pour chercher autodiscover.masociete.com<br />
- l&#8217;autre de type SRV, nommé _autodiscover._tcp.masociete.com<br />
Une remarque, pour être sûr de voir la requête lors du tcpdump, videz votre cache DNS du poste client Windows avant :</p>
<pre>C:\Documents and Settings\toto>ipconfig /flushdns

Configuration IP de Windows

Cache de résolution DNS vidé.</pre>
<p>Enfin, pour régler le problème, vous créerez donc 2 entrées dans votre DNS, zone masociete.com :</p>
<pre>autodiscover    A       10.x.y.z ;serveur exchange
_autodiscover._tcp      1D IN SRV 0 1 443       test.exchg ;serveur exchange</pre>
<p>Et là, &laquo;&nbsp;par magie&nbsp;&raquo;, vous voyez les infos de dispo des gens lors d&#8217;une réservation de réunion.<br />
C&#8217;est pas bioutifoule ça ?</p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2008/03/13/exchange-outlook-dans-un-monde-de-serveurs-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ressusciter de l&#8217;historique (Apache) pour Webalizer</title>
		<link>http://michauko.org/blog/2008/03/11/ressusciter-de-lhistorique-apache-pour-webalizer/</link>
		<comments>http://michauko.org/blog/2008/03/11/ressusciter-de-lhistorique-apache-pour-webalizer/#comments</comments>
		<pubDate>Tue, 11 Mar 2008 20:06:31 +0000</pubDate>
		<dc:creator>michauko</dc:creator>
				<category><![CDATA[autres outils]]></category>
		<category><![CDATA[Debian]]></category>
		<category><![CDATA[ligne de commande]]></category>
		<category><![CDATA[planet-libre.org]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[flood]]></category>
		<category><![CDATA[ip]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[referrer]]></category>
		<category><![CDATA[statistiques]]></category>
		<category><![CDATA[stats]]></category>
		<category><![CDATA[webalizer]]></category>

		<guid isPermaLink="false">http://michauko.org/blog/2008/03/11/ressusciter-de-lhistorique-apache-pour-webalizer/</guid>
		<description><![CDATA[Derrière ce titre qui veut tout et rien dire, un besoin réel. Récemment, sur un site web avec une audience non négligeable (sans être démentielle : 70 000 hits hebdo), j&#8217;ai eu à mettre en place un outil de statistiques vite fait bien fait. J&#8217;ai choisi webalizer car je connaissais et car ça se met [...]]]></description>
			<content:encoded><![CDATA[<p>Derrière ce titre qui veut tout et rien dire, un besoin réel.</p>
<p>Récemment, sur un site web avec une audience non négligeable (sans être démentielle : 70 000 hits hebdo), j&#8217;ai eu à mettre en place un outil de statistiques vite fait bien fait. J&#8217;ai choisi <a href="http://www.webalizer.org/">webalizer</a> car je connaissais et car ça se met en place en 3 minutes et que ça sort mine de rien déjà pas mal d&#8217;infos (volume de hits, pays d&#8217;origine, mots-clefs, référant etc). Et c&#8217;est mieux que &laquo;&nbsp;pas de stats du tout&nbsp;&raquo; dans un premier temps.</p>
<p>Il y avait deux trucs tout bêtes dans l&#8217;histoire : j&#8217;avais un an de logs non &laquo;&nbsp;synthétisés&nbsp;&raquo; par webalizer. Il a donc fallu les faire passer dans webalizer pour rattraper l&#8217;historique. Et deuxièmement, c&#8217;est à ce moment là que j&#8217;ai vu que le <code>HostnameLookups</code> était à Off dans la conf <code>/etc/apache2/apache2.conf</code>. <strong>Donc les logs ne contenaient que les IP, pas les hostname</strong>. Donc pas de statistiques par pays dans Webalizer. Dommage pour une boîte internationale qui veut voir un peu où en est sa notoriété sur la planète&#8230;</p>
<p>J&#8217;ai donc remédié à tout ça. Cet article présente donc l&#8217;installation de la conf rapide de Webalizer (et Apache2 en conséquence) et donne une ligne de commande pour récupérer l&#8217;année d&#8217;historique (apache2 garde par défaut 52 fichiers de logs en rotation hebdo) et enfin, le plus marrant, mouliner sur les logs pour retrouver les <em>hostnames</em> correspondants aux IP&#8230; (en espérant que mon hébergeur ne me flingue pas en voyant le nombre de requête DNS que je crache en ce moment même <img src='http://michauko.org/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Je lui ai posé la question, ne négligez pas ce point, ce serait bête de se faire des ennemis)<span id="more-111"></span></p>
<h3>Installation et conf Webalizer</h3>
<p>Sous Debian, un simple :</p>
<pre>aptitude install webalizer</pre>
<p>L&#8217;outil de conf pose 2/3 questions assez simples à répondre, comme votre nom de serveur web, le nom du fichier &laquo;&nbsp;logrotaté&nbsp;&raquo;, typiquement <code>/var/log/apache2/access.log.1</code> (et pas <code>/var/log/apache2/access.log</code>).<br />
De toute manière, on va repasser sur le fichier de conf tout de suite après l&#8217;install. Sachez que &laquo;&nbsp;webalizer&nbsp;&raquo; fait ses calculs via la <code>cron.daily</code>, au petit matin (par défaut sur Debian) quand vous dormez.<br />
Je mets 2/3 commentaires sur certains paramètres ; voyons ce que donne <code>egrep -v "^$|^#" /etc/webalizer/webalizer.conf</code> :</p>
<pre>LogFile         /var/log/apache2/access.log.1
OutputDir       /var/www/webalizer # A vous de voir. Pensez à un htaccess si besoin...
Incremental     yes
ReportTitle     Statistiques d'utilisation de mon serveur web
HostName        toto.com
TopReferrers    50
TopAgents       30
HideSite        *toto
HideSite        *toto.com
HideReferrer    www.toto.com/ # sinon vous passez votre temps à votre les mouvements interne au site
HideReferrer    toto.com/ # idem
HideReferrer    Direct Request
HideURL         *.gif
HideURL         *.GIF
HideURL         *.jpg
HideURL         *.JPG
HideURL         *.ra
HideURL         *.png
GroupURL        /cgi-bin/*
GroupAgent      MSIE
HideAgent       MSIE*
GroupAgent      Mozilla
HideAgent       Mozilla*
GroupAgent      Lynx
HideAgent       Lynx*
GroupAgent      Konqueror
HideAgent       Konqueror*
GroupAgent      Opera
HideAgent       Opera*
IgnoreSite      localhost # je tunnele l'accès à mon propre site et je suis un gros visiteur de mon propre site
IgnoreReferrer  localhost # idem
MangleAgents    4</pre>
<p>Dans la conf Apache2 <code>/etc/apache2/apache2.conf</code>, pensez à activer le paramètre <code>HostnameLookups</code> si vous voulez avoir un semblant de trace des pays rendant visite à votre site web (et rechargez Apache).</p>
<h3>Chargement de l&#8217;historique</h3>
<p>Il faut décompresser les logs Apache puis les importer un à un dans webalizer.Simple.<br />
En considérant que vous avez copié vos fichiers access.log.*.gz dans /tmp, vous faites ceci :</p>
<pre>for i in access*gz
do
        gunzip $i
done</pre>
<p>Et ensuite, lancement de l&#8217;import :</p>
<pre>for i in `./seq_reverse.py`
do
        webalizer access.log.$i
done</pre>
<p>Je ne sais plus si on peut faire un <code>seq</code> sortant les chiffres de 1 à 52 dans l&#8217;ordre inverse, <a href='http://michauko.org/blog/wp-content/uploads/2008/03/seq_reverse.py' title='seq -r ça n’existe pas ?'>alors j&#8217;ai pondu un script python pour le faire</a>.</p>
<p>A la fin, si votre répertoire <code>/var/www/webalizer</code> est blindé de fichiers, c&#8217;est bon. Vous pouvez voir vos stats sur l&#8217;année écoulée.</p>
<h3>Retrouver les hostnames</h3>
<p>C&#8217;est la partie amusante (et bourrin). Si vous n&#8217;aviez pas les hostnames des IP visitant votre serveur web, vos logs Apache ressemblait à ça :</p>
<pre>86.x.y.190 - - [15/Mar/2007:06:25:25 +0100] "GET /favicon.ico HTTP/1.1" 200 2238 "-" "Mozilla/5.0 (Windows; U; Windows NT 5.1; fr; rv:1.8.1.2) Gecko/20070219 Firefox/2.0.0.2"</pre>
<p>Si vous aviez activé le lookup dans Apache, vos logs ressemblent partiellement à ce qu&#8217;il y a ci-dessus (pour les serveurs n&#8217;ayant pas de nom) et généralement, ils contiennent plutôt ça :</p>
<pre>truc.machin.com - - [02/Mar/2008:06:26:27 +0100] "GET / HTTP/1.1" 200 27488 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"</pre>
<p>L&#8217;idée est de retrouver les noms lorsque vous n&#8217;avez que les IP. J&#8217;ai écrit un script Python pour ça (excusez-moi, je débute en Python). <a href='http://michauko.org/blog/wp-content/uploads/2008/03/retrouve_hostname.py' title='Script Python pour retrouver les hostnames à partir des IP d’un log Apache2'>Script Python pour retrouver les hostnames à partir des IP d’un log Apache2</a></p>
<p>Et donc à la fin, vous envoyez la purée :</p>
<pre>for i in /tmp/access.log.*
do
        ./retrouve_hostname.py $i
done</pre>
<p>Attention, c&#8217;est bourrin, faites le sur un petit fichier d&#8217;abord. Le script vous génère un fichier <code>$i.new</code>, à vous de vider vos statistiques webalizer (<code>rm /var/www/webalizer/*</code>) ensuite et de relancer la moulinette d&#8217;import sur ces nouveaux fichiers.</p>
<p>walaaaa, c&#8217;est tout pour aujourd&#8217;hui.</p>
]]></content:encoded>
			<wfw:commentRss>http://michauko.org/blog/2008/03/11/ressusciter-de-lhistorique-apache-pour-webalizer/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

