<?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>squid Archives - Mon linux</title>
	<atom:link href="https://www.monlinux.net/tag/squid/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.monlinux.net/tag/squid/</link>
	<description>by Belgotux</description>
	<lastBuildDate>Tue, 03 Jan 2023 22:42:08 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.5</generator>

<image>
	<url>https://www.monlinux.net/wp-content/uploads/cropped-mon-linux-logo-grey-512-32x32.png</url>
	<title>squid Archives - Mon linux</title>
	<link>https://www.monlinux.net/tag/squid/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>mtalk.google.com flood Squid logs</title>
		<link>https://www.monlinux.net/2014/10/mtalk-google-com-flood-squid-logs/</link>
					<comments>https://www.monlinux.net/2014/10/mtalk-google-com-flood-squid-logs/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Sun, 26 Oct 2014 21:11:05 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Sécurité]]></category>
		<category><![CDATA[flood]]></category>
		<category><![CDATA[mtalk]]></category>
		<category><![CDATA[squid]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=538</guid>

					<description><![CDATA[<p>Attention aux nouvelles applications Google Chrome pour vos proxy Squid. En effet vous risquez l&#8217;avoir des millions de lignes dans vos logs Squid&#8230; Cela risque de saturer votre partition de logs en tr&#232;s peu de temps&#8230; 1410326839.358 1 10.x.x.x TCP_DENIED/403... <a class="more-link" href="https://www.monlinux.net/2014/10/mtalk-google-com-flood-squid-logs/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2014/10/mtalk-google-com-flood-squid-logs/">mtalk.google.com flood Squid logs</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Attention aux nouvelles applications Google Chrome pour vos proxy Squid. En effet vous risquez l&rsquo;avoir des millions de lignes dans vos logs Squid&#8230; Cela risque de saturer votre partition de logs en très peu de temps&#8230;</p>
<pre class="lang:default decode:true ">1410326839.358      1 10.x.x.x TCP_DENIED/403 3496 CONNECT  mtalk.google.com:5228 - NONE/- text/html
1410326839.364      1 10.x.x.x TCP_DENIED/407 3663 CONNECT  mtalk.google.com:443 - NONE/- text/html</pre>
<p>Et comment Squid réagit quand il n&rsquo;y a plus de place sur sa partition de logs ? Il ne traite plus des nouvelles connexions&#8230; <strong>Et donc plus de surf&#8230;.</strong></p>
<p><span id="more-538"></span></p>
<h2>Origine</h2>
<p>Après quelques recherches, il s&rsquo;agit d&rsquo;une nouvelle application de Google Talk pour Chrome. Et donc n&rsquo;importe quel utilisateur Windows avec les droits les plus basiques peut ajouter ce plugin&#8230;</p>
<p>Ce plugin se connecte sur mtalk.google.com sur les ports 443 et 5228. Mais au lieu que l&rsquo;application teste de temps en temps de se connecter au serveur quand l&rsquo;accès lui est refusé, <strong>elle fait des dizaines de requêtes à la seconde!</strong></p>
<p>De la, un seul utilisateur qui laisse sa session en pause avec Chrome d&rsquo;ouvert et c&rsquo;est des Go de logs Squid de générés&#8230; L&rsquo;application est mal conçue de ce côté là&#8230;</p>
<p>Voici la source pour ceux qui veulent quelques infos : <a href="https://blog.chromium.org/2014/04/simplifying-cloud-messaging-for-app.html">Chromium Blog: Simplifying Cloud Messaging for app developers</a>.</p>
<h2>Résolution du problème</h2>
<p>Deux choix s&rsquo;offraient à moi :</p>
<ul>
<li>Configurer le fail2ban pour analyser les logs Squid : afin de blacklister temporairement la machine posant problème pour éviter de saturer les logs. Mais cela risque de bloquer très souvent les personnes qui ne comprendront pas pourquoi ils sont bloqués&#8230; <a href="https://serverfault.com/questions/522081/defensing-againt-ddos-attack-on-squid-server" target="_blank" rel="noopener">Voici une piste si besoin</a>.</li>
<li>Configurer Squid pour éviter de logger ces accès. Dans ce cas, on fait une exception de log pour mtalk.google.com</li>
</ul>
<p>J&rsquo;ai choisi la 2e solution pour ne pas bloquer les utilisateurs mécontents.</p>
<p>Selon votre version de Squid, vous avez plusieurs solutions. Dans mon cas je suis sous Debian Wheezy avec Squid v2.7. Je vais donc faire une seule ACL sur le nom de domaine.</p>
<pre class="lang:sh decode:true">#ACL declaration for domains listing into a file
acl never_log_domains dstdomain "/etc/squid/never_log_list.txt"

#DENY LOGGIN FOR never_log_domains and apply to access.log
log_access    deny    never_log_domains
access_log /var/log/squid/access.log squid !never_log_domains</pre>
<p>On va mettre le domaine mtalk.google.com dans le fichier /etc/squid/never_log_list.txt. Et on applique la règle de log_access.</p>
<p>Attention à bien préciser le format de log « squid » à la dernière ligne et pas « common » si vous voulez garder le même format de logs.</p>
<p>Si vous êtes en Squid version 3.2+ alors vous pouvez combiner les ACL pour être plus précis et faire une exception de log uniquement pour les access denied à mtalk.google.com. Comme ça les accès accordés sont loggés. Je vous conseille <a href="http://www.squid-cache.org/Doc/config/acl/" target="_blank" rel="noopener">ce lien</a> et<a href="https://workaround.org/squid-acls/" target="_blank" rel="noopener"> celui-ci</a> si cela vous intéresse.</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
<p>L’article <a href="https://www.monlinux.net/2014/10/mtalk-google-com-flood-squid-logs/">mtalk.google.com flood Squid logs</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2014/10/mtalk-google-com-flood-squid-logs/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Envoie mensuel des analyses free-sa de Squid</title>
		<link>https://www.monlinux.net/2014/09/envoie-mensuel-analyses-free-squid/</link>
					<comments>https://www.monlinux.net/2014/09/envoie-mensuel-analyses-free-squid/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Thu, 25 Sep 2014 20:16:58 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[cron]]></category>
		<category><![CDATA[cronjob]]></category>
		<category><![CDATA[free-sa]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[squid]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=563</guid>

					<description><![CDATA[<p>Cet article s&#8217;adresse aux connaisseurs de free-sa ayant utilis&#233; les scripts de g&#233;n&#233;ration de rapport free-sa vus dans un article pr&#233;c&#233;dent. Je propose un script qui envoie par mail automatiquement un fichier zip contenant les analyses du mois de tous... <a class="more-link" href="https://www.monlinux.net/2014/09/envoie-mensuel-analyses-free-squid/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2014/09/envoie-mensuel-analyses-free-squid/">Envoie mensuel des analyses free-sa de Squid</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Cet article s&rsquo;adresse aux connaisseurs de free-sa ayant utilisé <a title="Free-SA analyseur de logs Squid" href="https://www.monlinux.net/2014/08/free-analyseur-logs-squid/">les scripts de génération de rapport free-sa vus dans un article précédent</a>.</p>
<p>Je propose un script qui envoie par mail automatiquement un fichier zip contenant les analyses du mois de tous vos servers Squid. C&rsquo;est envoyé au format CSV et cela contient le topsites. Pratique pour savoir qui pompe le plus sur le réseau chaque mois et pouvoir backlister les sites en question <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p><span id="more-563"></span></p>
<h2>Script d&rsquo;envoi de rapport free-sa par mail</h2>
<p>Ce script est a exécuter dans une tâche cron le premier du mois pour bien faire :</p>
<pre class="lang:sh decode:true ">0 4 1 * *    root    /usr/local/sbin/send_csv_mail.sh &gt;/dev/null</pre>
<p>Lien de téléchargement du script : <a href="https://www.monlinux.net/wp-content/uploads/send-csv-mail.sh_.txt">send-csv-mail.sh</a></p>
<pre class="lang:sh decode:true">#!/bin/bash
# Auteur : Belgotux
# Site : www.monlinux.net
# Adresse : b&#101;l&#103;&#111;tux&#64;&#109;&#111;&#110;&#108;&#105;n&#117;x&#46;net
# Version : 1.0
# Date : 24/09/2014
# Description : extract data from free-sa analyses, all package in a zip file and send by mail
# Required : free-sa-genere-report.sh

servers_list="server1 server2 server3 server4"
temp_dir="/tmp"
log_root_directory="/var/www"
    #example topsite : /var/www/server1/01_08_14-31_08_14-1/topsites.html
date_range=$(date +01_%m_%y-%d_%m_%y-1 -d -1day)
    #example date +01_%m_%y-%d_%m_%y-1 -d -1day : execute the cronjob the 1st month day
month_date=$(date +"%m-%Y" -d -1day)
first_month_date=$(date +01_%m_%y -d -1day)
MAILTO="root"

#Cronjob :
# 0 4 1 * *    root    /usr/local/sbin/send_csv_mail.sh &gt;/dev/null

if [ ! -d $temp_dir/$(basename $0 .sh) ] ; then
    mkdir $temp_dir/$(basename $0 .sh) &amp;&amp; echo "Create temp directory $temp_dir/$(basename $0 .sh)" || echo "Error creating temp directory $temp_dir/$(basename $0 .sh)"
fi

#generate the csv files
for server in $servers_list ; do
    echo $server
    #sometime no trafic last day of month
    if [ -e "$log_root_directory/$server/$date_range/topsites.html" ] ; then
        topsites_file="$log_root_directory/$server/$date_range/topsites.html"
    else
        topsites_file="$(ls -1dR /var/www/bratislava/$first_month_date* | tail -n 1)/topsites.html"
    fi
    echo "No,URL,Requetes,Octets,Utilisateurs" &gt; $temp_dir/$(basename $0 .sh)/$server.csv &amp;&amp; cat $topsites_file | tail -n +22 | head -n -5 | sed -e 's/&lt;tr&gt;&lt;td&gt;\([^&lt;]*\)&lt;td class=lt&gt;&lt;a href="\([^"]*\)"&gt;\([^"]*\)&lt;\/a&gt;&lt;td&gt;\([^&lt;]*\)&lt;td&gt;\([^&lt;]*\)&lt;td class=lt&gt;\([^&lt;]*\).*/"\1","\2",\4,"\5","\6"/g'  &gt;&gt; $temp_dir/$(basename $0 .sh)/$server.csv
done

# zip them to send by mutt mail
if [ ! -x /usr/bin/zip ] ; then
    echo "Error zip program not installed!" 1&gt;&amp;2
    exit 1
fi
/usr/bin/zip -r $temp_dir/topsites_$month_date.zip $temp_dir/$(basename $0 .sh)/

#remove temp files
    rm -f $temp_dir/$(basename $0 .sh)/*

# send mail
echo "In attachment the reports for month $month_date" | /usr/bin/mutt -s "CSV report free-sa log analyses $month_date" -a $temp_dir/topsites_$month_date.zip -- $MAILTO

exit $?</pre>
<h2> Topsites anonyme</h2>
<p>Pour avoir le topsite de manière anonyme, voici le filtre sed à remplacer :</p>
<pre class="">s/&lt;tr&gt;&lt;td&gt;\([^&lt;]*\)&lt;td class=lt&gt;&lt;a href="\([^"]*\)"&gt;\([^"]*\)&lt;\/a&gt;&lt;td&gt;\([^&lt;]*\)&lt;td&gt;\([^&lt;]*\).*/"\1","\2",\4,"\5"/g'</pre>
<p>Avec cela vous pouvez envoyer uniquement le top 100 anonyme des sites les plus consultés pour faire réagir pacifiquement les collègues un peu trop souvent sur le web <img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f609.png" alt="😉" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>
<p>&nbsp;</p>
<p>L’article <a href="https://www.monlinux.net/2014/09/envoie-mensuel-analyses-free-squid/">Envoie mensuel des analyses free-sa de Squid</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2014/09/envoie-mensuel-analyses-free-squid/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Free-SA analyseur de logs Squid</title>
		<link>https://www.monlinux.net/2014/08/free-analyseur-logs-squid/</link>
					<comments>https://www.monlinux.net/2014/08/free-analyseur-logs-squid/#respond</comments>
		
		<dc:creator><![CDATA[belgotux]]></dc:creator>
		<pubDate>Tue, 05 Aug 2014 22:12:16 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[free-sa]]></category>
		<category><![CDATA[logs]]></category>
		<category><![CDATA[sarg]]></category>
		<category><![CDATA[squid]]></category>
		<guid isPermaLink="false">http://www.monlinux.net/?p=279</guid>

					<description><![CDATA[<p>Si vous avez besoin d&#8217;analyser des logs Squid, plusieurs moyens s&#8217;offrent &#224; vous : l&#8217;antique SARG (Squid Analysis Report Generator), lightSquid, squid-analyser ou free-SA. Celui-ci est &#233;crit en C et est &#224; compiler. Il pr&#233;sente une commande simple d&#8217;utilisation, mais... <a class="more-link" href="https://www.monlinux.net/2014/08/free-analyseur-logs-squid/">Continue Reading &#8594;</a></p>
<p>L’article <a href="https://www.monlinux.net/2014/08/free-analyseur-logs-squid/">Free-SA analyseur de logs Squid</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Si vous avez besoin d&rsquo;analyser des logs Squid, plusieurs moyens s&rsquo;offrent à vous : l&rsquo;antique SARG (Squid Analysis Report Generator), lightSquid, squid-analyser ou free-SA. Celui-ci est écrit en C et est à compiler. Il présente une commande simple d&rsquo;utilisation, mais surtout une rapidité d&rsquo;exécution par rapport à SARG.</p>
<p>Il présente toutefois un défaut, c&rsquo;est un outil brut. On lui donne le fichier de log de Squid, un scope de dates et il génère un rapport de statistiques en html. Dans mon cas, j&rsquo;ai besoin de traiter plusieurs fichiers, parfois compressés en gzip, parfois plusieurs fichiers à la fois. Free-SA ne le gère pas à la base, mais il y a moyen de l&rsquo;implémenter via un script. En plus de cela j&rsquo;ai une centralisation des logs de plusieurs proxy Squid (gérés par Syslog-ng). Je dois donc gérer tout cela de manière efficace.</p>
<p><span id="more-279"></span></p>
<h1>Free-sa</h1>
<p>Free-sa doit être compilé, pour cela, allez <a href="https://sourceforge.net/projects/free-sa/files/free-sa-dev/2.0.0b6p7/free-sa-2.0.0b6p7.tar.gz/download" target="_blank" rel="noopener">récupérer les sources de free-sa</a>. Si quelqu&rsquo;un à pris la peine de faire un paquet Deb d&rsquo;installation, j&rsquo;ajouterai volontiers son lien.</p>
<h2>Installation</h2>
<p>Paquets nécessaires à la compilation :</p>
<pre class="code-western"># apt-get install apache2 build-essential devscripts dh-make</pre>
<p>Il n&rsquo;y a pas de configuration pour Debian, mais on se base sur celle d&rsquo;Ubuntu.</p>
<p>La configuration pour Debian a été publiée sur leur site : <a class="western" href="https://sourceforge.net/p/free-sa/patches/8/attachment/debian-i586-gcc4.mk">http://sourceforge.net/p/free-sa/patches/8/attachment/debian-i586-gcc4.mk</a>, elle est à mettre dans le dossier « configs/ ».</p>
<p>Ensuite il faut éditer le fichier car on est dans une archi amd64 :</p>
<pre class="code-western"># cd configs/
# cp debian-i586-gcc4.mk debian-amd64-gcc4.mk</pre>
<p>Remplacer :</p>
<pre class="code-western">SARCH = x86-64</pre>
<p>Éditer global.mk pour utiliser ce fichier de conf :</p>
<pre class="code-western">OSTYPE = debian-amd64-gcc4</pre>
<p>Et on compile&#8230;</p>
<pre class="code-western"># make &amp;&amp; make install</pre>
<p>Attention sur Debian Wheezy 7.3 64 bits on utilise gcc-4.7 dans mon cas.</p>
<ul>
<li>Fichiers de conf dans : /etc/free-sa</li>
<li>Ajout de man : /usr/man</li>
<li>Ajout de share : /usr/share/</li>
<li>Ajout de cgi-bin dans : /var/www/free-sa</li>
<li>Et doc dans : /usr/share/doc/free-sa-1.6.2</li>
<li>Binaire : /usr/bin/free-sa</li>
</ul>
<h2>Utilisation</h2>
<p>Voici un exemple d&rsquo;arguments :</p>
<pre class="code-western"># /usr/bin/free-sa -f /etc/free-sa/server.conf -d $(date +%x)-
# /usr/bin/free-sa -f /etc/free-sa/server.conf -d 20/01/14-21/01/14</pre>
<h2>Performances</h2>
<p>Voici les performances d&rsquo;un test effectué avec un log journalier de Squid de 215Mo (~1millions de lignes) :</p>
<ul>
<li>Le fichier a été traité en 15s</li>
<li>184Mo de fichiers web créés.</li>
</ul>
<p>&nbsp;</p>
<h2>Script de génération automatique d&rsquo;analyse</h2>
<p>Un script a été créé pour générer les rapports des proxy distant automatiquement. Pour cela il faut d&rsquo;abord configurer Syslog-ng pour récupérer tous les logs sur votre serveur dédié à l&rsquo;analyse des logs. Ce script s&rsquo;occupe de tout :</p>
<ul>
<li>Création des répertoires nécessaires pour stocker les analyses web s&rsquo;ils n&rsquo;existent pas</li>
<li>Copie d&rsquo;une configuration free-sa « template » pour un nouveau serveur si elle n&rsquo;existe pas</li>
<li>Création d&rsquo;un fichier FIFO associé à un serveur s&rsquo;il n&rsquo;existe pas</li>
<li>L&rsquo;ajout d&rsquo;un proxy dans la page d&rsquo;index se fait automatiquement car cette page liste tous les dossiers présents (avec gestion d&rsquo;exclusion)</li>
<li>Alimenter le fichier FIFO avec les différents fichiers de logs, et cela selon les dates des fichiers afin de limiter la durée du « parsing » du fichier FIFO par free-sa.</li>
<li>Lancer free-sa avec le fichier de configuration associé.</li>
</ul>
<p>&nbsp;</p>
<pre>#!/bin/bash
# Auteur : Belgotux
# Site : www.monlinux.net
# Adresse : &#98;&#101;&#108;g&#111;&#116;ux&#64;&#109;o&#110;&#108;inux&#46;ne&#116;
# Version : 1.1
# Date : 21/01/2014
# Description : 
# Licence : GNU General Public License (GPL), version 3 (https://www.gnu.org/licenses/gpl.html)

#$1 host
#$2 time_range : options from free-sa
# Can be : 20/01/14-21/01/14
# also use next words as PERIODWORD: hour, day, week, month, quarter, year, today, yesterday, thisweek, lastweek, thismonth, lastmonth, thisyear, lastyear



## Check args
if [ "$#" != 2 ] || [ "$1" == "" ] ; then
    echo "$(basename $0) HOST TIME_RANGE"
    exit 1
fi
## Variables
host="$1"                            #don't edit
time_range="$2"                        #don't edit
max_range_day="35"                    #max periode days for free-sa analyse (use to reduce execution time)
CONFFILE="/etc/free-sa/$host.conf"    #don't edit
proxy_log_patern="/var/log/EXT/$host/squid-access.log"    #don't edit
conf_template_file="/etc/free-sa/template.conf"            #template config file to use for config's host generation
web_template_dir="/var/www/free-sa-template"            #template empty free-sa web structure


if [ ! -e "$CONFFILE" ] ; then
    sed -e "s/template/$host/g" "$conf_template_file" &gt; "$CONFFILE" &amp;&amp; echo "WARNING: Create CONFFILE $CONFFILE" || (echo "ERROR : no CONFFILE $CONFFILE present" &gt;&amp;2 &amp;&amp; exit 1)
fi

#sed -ne 's#^ *log_file= *\(.*\)$#\1#p' /etc/free-sa/bruxelles.conf
. $CONFFILE

#test si la configuration web est présente
if [ ! -d "$web_template_dir" ] ; then
    echo "Error no template dir to use $web_template_dir" &gt;&amp;2 &amp;&amp; exit 1
fi
    
if [ ! -d "$target_directory" ] ; then
    cp -r "$web_template_dir" "$target_directory" &amp;&amp; echo "WARNING: Copy web template $web_template_dir to $target_directory" || (echo "ERROR : Impossible to copy web template $web_template_dir to $target_directory" &gt;&amp;2 &amp;&amp; exit 1)
fi

#tester présence du cache
if [ ! -d "$cache_directory" ] ; then
    mkdir "$cache_directory" &amp;&amp; echo "WARNING: Create cache directory $cache_directory" || (echo "ERROR : Impossible to create cache directory $cache_directory" &gt;&amp;2 &amp;&amp; exit 1)
fi

#test if fifo exist
if [ ! -p "$log_file" ] ; then
    mkfifo -m 0600 "$log_file" &amp;&amp; echo "WARNING: Create FIFO file $log_file" || (echo "ERROR : Impossible to create FIFO $log_file" &gt;&amp;2 &amp;&amp; exit 1)
fi

#Récupération de tous des fichiers ayant une date dans le scoope et création de la FIFO
# Un * pour fifo fonctionne mais pas pour free-sa : zcat -f /var/log/EXT/bruxelles/squid-access.log* &gt; /var/cache/free-sa/bruxelles.pipe
#Surement car les fichiers doivent être placés dans le bon ordre de date! Donc classé par date de fichiers plus vieux --&gt; plus jeune
if [ "$max_range_day" != "" ] ; then
    listFiles=$(ls -trR1 /var/log/EXT/$host/squid-access.log* | tail -n $max_range_day)
else
    listFiles=$(ls -trR1 /var/log/EXT/$host/squid-access.log*)
fi
zcat -f $(echo $listFiles) &gt; "$log_file" &amp;
#zcat -f $(ls -trR /var/log/EXT/$host/squid-access.log*) &gt; "$log_file" &amp;

/usr/bin/free-sa -f $CONFFILE -d $time_range

exit $?</pre>
<p>Exemple d&rsquo;exécution :</p>
<pre class="code-western">$/usr/local/sbin/free-sa-genere-report.sh server yesterday
$/usr/local/sbin/free-sa-genere-report.sh server 20/01/14-21/01/14</pre>
<p>Le script prend en paramètre le même format de temps que Free-sa. Il a été conçu pour être utilisé dans des crontab.</p>
<h2>Crontab</h2>
<p>Pour rajouter un nouveau serveur, ayant ses logs exportés sur le serveur centralisé, il suffit de rajouter une ligne dans les tâches cron et tout sera automatiquement créé. Voici un exemple :</p>
<pre>Fichier /etc/cron.d/free-sa
#Every open-day 
30 0 * * 1-5    root    /usr/local/sbin/free-sa-genere-report.sh server yesterday 
#Every week 
30 1 * * 1    root    /usr/local/sbin/free-sa-genere-report.sh server lastweek 
#Every month 
30 2 1 * *    root    /usr/local/sbin/free-sa-genere-report.sh server lastmonth</pre>
<p>&nbsp;</p>
<h2>Page PHP d&rsquo;index</h2>
<p>Voici la page PHP d&rsquo;index que j&rsquo;utilise pour lister les sous-répertoires free-SA.</p>
<pre>&lt;!DOCTYPE html&gt;
&lt;?php
$exclude_list = array(".", "..", "free-sa-template", "index.php","lost+found");
if (isset($_GET["dir"])) {
  $dir_path = $_SERVER["DOCUMENT_ROOT"]."/".$_GET["dir"];
}
else {
  $dir_path = $_SERVER["DOCUMENT_ROOT"]."/";
}
//-- until here
function dir_nav() {
  global $exclude_list, $dir_path;
  $directories = array_diff(scandir($dir_path), $exclude_list);
  echo "&lt;ul style='list-style:none;padding:0'&gt;";
  foreach($directories as $entry) {
    if(is_dir($dir_path.$entry)) {
      echo "&lt;li style='margin-left:1em;'&gt;[`] &lt;a href='?dir=".$_GET["dir"].$entry."/"."'&gt;".$entry."&lt;/a&gt;&lt;/li&gt;";
    }
  }
  echo "&lt;/ul&gt;";
  //-- separator
  echo "&lt;ul style='list-style:none;padding:0'&gt;";
  foreach($directories as $entry) {
    if(is_file($dir_path.$entry)) {
      echo "&lt;li style='margin-left:1em;'&gt;[ ] &lt;a href='?file=".$_GET["dir"].$entry."'&gt;".$entry."&lt;/a&gt;&lt;/li&gt;";
    }
  }
  echo "&lt;/ul&gt;";
}

function list_dir() {
  global $exclude_list, $dir_path;
  $directories = array_diff(scandir($dir_path), $exclude_list);
  echo "&lt;ul style='list-style:none;padding:0'&gt;";
  foreach($directories as $entry) {
      echo "&lt;p&gt; &lt;a href='".$entry."/"."'&gt;".$entry."&lt;/a&gt;&lt;/p&gt;";
  }

}


?&gt;
&lt;html&gt;
&lt;head&gt;
    &lt;meta http-equiv="Content-Type" content="text/html; charset=utf-8" /&gt;
    &lt;title&gt;Projects&lt;/title&gt;
    &lt;style type="text/css"&gt;
        body{
            background: #E6E6E6;
            font-family: Helvetica;
        }
        #wrapper{
            width: 620px;
            margin: 20px auto;
        }
        #logo{
            width: 620px;
            background:#3300FF;
            margin: 20px 0;
            padding: 0px 20px;
            -moz-border-radius: 10px;                //bords ronds
            -moz-box-shadow: 5px 5px 5px #999;        //ombres
        }
        #page{
            width: 620px;
            min-height: 415px;
            background: #fff;
            margin: 20px 0;
            padding: 10px 20px;
            -webkit-border-radius: 10px;
            -webkit-box-shadow: 5px 5px 5px #999;
            -moz-border-radius: 10px;                //bords ronds
            -moz-box-shadow: 5px 5px 5px #999;        //ombres
        }
        #phpinfo{
            display: none;
            width: 620px;
            min-height: 215px;
            background: #fff;
            
            margin: 20px 0;
            padding: 10px 20px;
            -webkit-border-radius: 10px;
            -webkit-box-shadow: 5px 5px 5px #999;
            -moz-border-radius: 10px;                //bords ronds
            -moz-box-shadow: 5px 5px 5px #999;        //ombres
        }

        a span {
            display:none;
        }
        a:hover span {
            display:block;
        }
        h1{
            font-size: 32px;
            color: #fff;
            padding:5px 0 5px 0;
        }
        h2{
            font-size: 24px;
            color: #3300FF;
            margin: 10px 0 15px 0;
        }
        p{
            margin: 10px 25px;
        }
        a{
            color: #4D4D4D;
            text-decoration: none;
            font-weight: bold;
        }
        a:hover{
            text-decoration: un#phpinfoderline;
            color: #3300FF;
        }
        a.small{
            font-size: 12px;
        }
        ul{
            font-size: 12px;
        }
        ul li{
            margin: 0 0 5px 0;
        }
        ul li .bold{
            font-weight: bold;
        }
        img{
        border:0;
        }
        .people{
            background: #fff;
            padding: 10px;
            -webkit-border-radius: 5px;
            -moz-border-radius: 5px;
            margin-bottom: 26px;
            -webkit-box-shadow: margin: 20px 0;3px 3px 3px #999;
            -moz-box-shadow: 3px 3px 3px #999;
        }
    &lt;/style&gt;
&lt;/head&gt;
&lt;body&gt;
&lt;div id="wrapper"&gt;
    &lt;div id="logo"&gt;
        &lt;h1&gt;EXAMPLE&lt;/h1&gt;
    &lt;/div&gt;
    &lt;div id="page"&gt;
        &lt;h2&gt;Servers lists&lt;/h2&gt;
        &lt;?php
        list_dir();
        //-- optional placement
        if (isset($_GET["file"])) {
          echo "&lt;div style='margin:1em;border:1px solid Silver;'&gt;";
          highlight_file($dir_path.$_GET['file']);
          echo "&lt;/div&gt;";
        }
    
        ?&gt;
    &lt;/div&gt;        
        
&lt;/div&gt;
&lt;/body&gt;
&lt;/html&gt;</pre>
<p>&nbsp;</p>
<p>L’article <a href="https://www.monlinux.net/2014/08/free-analyseur-logs-squid/">Free-SA analyseur de logs Squid</a> est apparu en premier sur <a href="https://www.monlinux.net">Mon linux</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.monlinux.net/2014/08/free-analyseur-logs-squid/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/

Mise en cache de page à l’aide de Disk: Enhanced 
Mise en cache de la base de données de 33/46 requêtes en 0.025 secondes utilisant Disk

Served from: www.monlinux.net @ 2026-04-05 20:46:26 by W3 Total Cache
-->