déc
20
2011
Pour un petit projet pour mon boulot, mettre en base les logs apache2 afin de pouvoir faire des statistiques, je me suis amusé à le faire sur 1 ligne.
Il y a surement mieux et de toute façon, il ne s’agit que d’une ébauche de script que je souhaiterais faire. Avant, il faut lire l’article précédent concernant les logs Apache2 ici.
tail -300 /var/log/apache2/access.log | awk ‘{print « insert into toto values (\ »"$1″\ »,\ »"$2″\ »,\ »"$5″\ »,\ »"$7″\ »); » }’;
Rien de bien compliqué mais la sortie, donne quelque chose comme cela :
insert into toto values (« 172.16.31.118″, »[20/Dec/2011:15:23:21″, »/widget_ip.php », »200″);
insert into toto values (« 172.16.31.118″, »[20/Dec/2011:15:23:26″, »/widget_urlpb.php », »200″);
insert into toto values (« 172.16.31.118″, »[20/Dec/2011:15:23:26″, »/widget_sauvegarde.php », »200″);
insert into toto values (« 172.16.31.118″, »[20/Dec/2011:15:23:26″, »/widget_ip.php », »200″);
Il ne resterait qu’à supprimer le « [ » pour le champs date, voir transformer la date … Pour avoir ce résultat, j’ai quelque peu touché la configuration des logs d’apache.
Fichier /etc/apache2/apache2.conf
LogFormat « %h %t \ »%r\ » %>s %O » combined
Bien entendu, cela n’a été fait qu’à des fins de tests. Dans l’idéal, il ne faudrait pas toucher le format de log, enfin tout dépend des informations que vous souhaitez mettre de côté.
Il ne reste donc plus qu’à faire évoluer cette petite chose …
no comments | tags: awk, log, mysql, parser, tail | posted in Astuces / Documentation, Développement, Réseau / Sécurité / Protocole
déc
20
2011
Hello,
Petit billet du jour sur l’aide à la compréhension des logs (par défault) dans Apache2 … Voyons cela un peu plus en détail, cela permettra notamment de récupérer seulement ce que l’on cherche …
Exemple de logs :
82.235.x.x – - [20/Dec/2011:06:25:35 +0100] « GET /repertoire/image/exemple.jpg HTTP/1.1″ 200 42449 « http://www.monsite.com » « Mozilla/4.5 (compatible; HTTrack 3.0x; Windows 98) »
Comment se forment ces logs et comment les modifier ?
Avant toute chose, voici la configuration du virtualhost :
ErrorLog /data/logs/apache2/error.log
LogLevel warn
CustomLog /data/logs/apache2/access.log combined
Ces lignes dans le virtualhost, vous donneront des logs comme mentionné tout en haut. Nous allons également à nous intéresser au fichier : /etc/apache2/apache2.conf et tout particulièrement à la directive « LogFormat« .
LogFormat « %h %l %u %t \ »%r\ » %>s %b \ »%{Referer}i\ » \ »%{User-Agent}i\ »" combined
Voici à quoi correspondent toutes les lettres :
- %h : adresse IP de la machine cliente,
- %l : nom de la machine cliente (souvent vide),
- %u : nom de l’utilisateur de la machine cliente (souvent vide),
- %t : heure anglaise,
- %r : requête exécutée (url),
- %>s : code http (200, 404, etc …),
- %b : taille de la requête ,
- %i : Referer, Navigateur client, etc …
Ce qui donne dans notre cas :
- 82.235.x.x
- (vide)
- (vide)
- [20/Dec/2011:06:25:35
- /repertoire/image/exemple.jpg
- 200
- 42449
- http://www.monsite.com
- Mozilla/4.5 (compatible; HTTrack 3.0x; Windows 98)
A partir de là, il est possible de savoir ce que l’on souhaite récupérer les infos et seulement les informations importantes. Une petite piste :
more access.log | awk ‘{print $1,$4,$6,$7,$9}’ | more
Donnerait :
82.235.xxx.xxx [20/Dec/2011:06:26:17 « GET /component/mailto/?tmpl=component&link=f127cd17d09843f56adbbc8ba2d31cfcae4fe2ca 200
92.160.x.x [20/Dec/2011:06:26:18 « GET /templates/mobile/images/header_mobile.png 200
92.160.x.x [20/Dec/2011:06:26:18 « GET /templates/mobile/images/par-xxx.gif 200
92.160.x.x [20/Dec/2011:06:26:18 « GET /templates/mobile/images/fond_actu_xxxxe.jpg 200
92.160.x.x [20/Dec/2011:06:26:18 « GET /templates/mobile/images/tiret.png 200
82.235.xxx.xxx [20/Dec/2011:06:26:17 « GET /medicaments/toto/toto.html?tmpl=component&print=1 200
92.160.x.x [20/Dec/2011:06:26:19 « GET /templates/mobile/images/next-horizontal.jpg 200
92.160.x.x [20/Dec/2011:06:26:19 « GET /templates/mobile/images/fond-footer-mobile.gif 200
92.160.x.x [20/Dec/2011:06:26:19 « GET /templates/mobile/images/prev-horizontal.jpg 200
92.160.x.x [20/Dec/2011:06:26:19 « GET /components/com_vxxxxx_comments/images/commentaires.png 200
Du coup, cela peut se scripter sans souci, tout ramener dans une base de données mysql. Au préalable, il faudra bien s’assurer que les logs « [ » soient nettoyés.
Doc de référence ici : http://httpd.apache.org/docs/2.0/mod/mod_log_config.html
no comments | tags: access.log, apache2, combined, log | posted in Astuces / Documentation, Web
déc
20
2011

C’est bon ça !!! :p
no comments | tags: humor, Humour / Insolite, spam | posted in Humour / Insolite
déc
15
2011
Hello,
Aujourd’hui nous allons voir comment monter de version de Debian. Rien de bien compliqué. N’oubliez surtout pas de faire une sauvegarde de vos fichiers (si vous en avez besoin).
Par expérience, je préfère réinstaller complètement mon système. Mais là, c’est juste pour le plaisir de la manipulation
Commençons par éditer le fichier /etc/apt/sources.list, remplaçons « lenny » par « squeeze » et mettons à jour.
vi /etc/apt/sources.list
(dans vi) :%s/lenny/squeeze/g
(dans vi) :wq
aptitude update
Une petite commande que je trouve assez sympa, permettant de connaitre l’espace disque qui sera utilisé pour effectuer la migration :
apt-get -o APT::Get::Trivial-Only=true dist-upgrade
Résultat :
After this operation, 183MB of additional disk space will be used.
E: Trivial Only specified but this is not a trivial operation.
On met à jour :
apt-get dist-upgrade
[...] 271 upgraded, 65 newly installed, 2 to remove and 0 not upgraded.
Need to get 178MB of archives.
After this operation, 183MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Et on attend désormais que la commande se soit déroulée. Il faudra répondre à quelques questions qui vous seront posées :
- Configuration Dash,
- Configuration Grub,
- etc …
Il sera désormais possible d’avoir grub 2 et d’utiliser dash à la place de bash.
A noter également que pour la première étape, celle qui consiste à modifier le fichier /etc/apt/sources.list, vous pouvez également procéder comme cela …
sed -i "s/lenny/squeeze/g" /etc/apt/sources.list
sed -i "s/.*volatile.*//g" /etc/apt/sources.list
Volatile n’existe plus sous debian 6 donc vous pouvez le retirer.
Après un redémarrage, votre Debian a été mise à jour en version 6.
no comments | tags: aptitude, deb, debian, dpkg, gnu, lenny, linux, squeeze, unix, upgrade, version | posted in Astuces / Documentation, Open Source
nov
20
2011

Et voilà, ça y est !!!! Ma machine a rejoint la bête … Parmi toutes les machines que j’administre (pas loin de la centaie, voire un peu plus), c’est la première qui arrive à 666 jours d’uptime. Effectivement, elle n’est pas mise à jour souvent et va bien falloir que je monte la version de l’OS debian 6.0 prochainement. J’ai attendu qu’elle arrive à ce chiffre tant aimé (ou pas).
Pour information, la machine est un serveur dédié hébergé chez OVH. Je ne peux que être content de leur travail. Je pourrais faire un billet sur cet hébergeur prochainement
Question : est-ce que je migre tout ce qui est dessus et je la laisse aller jusqu’à 999 jours ?
no comments | tags: 666, beast, debian, gnu, linux, number, uptime | posted in Humour / Insolite
nov
3
2011
J’ai eu cette erreur … étrange car j’avais eu auparavant …
Ign http://security.debian.org/ squeeze/updates/non-free Translation-en_US
Hit http://security.debian.org squeeze/updates Release
Hit http://security.debian.org squeeze/updates/main Sources
Hit http://security.debian.org squeeze/updates/non-free Sources
Hit http://security.debian.org squeeze/updates/main i386 Packages
Hit http://security.debian.org squeeze/updates/non-free i386 Packages
[ ERR] Reading package lists
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/security.debian.org_dists_squeeze_u
E: The package lists or status file could not be parsed or opened.
E: Couldn’t rebuild package cache
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/security.debian.org_dists_squeeze_u
E: The package lists or status file could not be parsed or opened.
E: Encountered a section with no Package: header
E: Problem with MergeList /var/lib/apt/lists/security.debian.org_dists_squeeze_u
E: The package lists or status file could not be parsed or opened.
Comment résoudre ce problème ?
root@srv-tux:/var/lib/apt/lists# ls
ftp.fr.debian.org_debian_dists_squeeze_main_binary-i386_Packages
ftp.fr.debian.org_debian_dists_squeeze_main_source_Sources
ftp.fr.debian.org_debian_dists_squeeze_non-free_binary-i386_Packages
ftp.fr.debian.org_debian_dists_squeeze_non-free_source_Sources
ftp.fr.debian.org_debian_dists_squeeze_Release
ftp.fr.debian.org_debian_dists_squeeze_Release.gpg
lock
partial
security.debian.org_dists_squeeze_updates_main_binary-i386_Packages
security.debian.org_dists_squeeze_updates_main_source_Sources
security.debian.org_dists_squeeze_updates_non-free_binary-i386_Packages
security.debian.org_dists_squeeze_updates_non-free_i18n_Translation-en%5fUS
security.debian.org_dists_squeeze_updates_non-free_source_Sources
security.debian.org_dists_squeeze_updates_Release
security.debian.org_dists_squeeze_updates_Release.gpg
On efface tout :
root@srv-tux:/var/lib/apt/lists# rm -rf *
root@srv-tux:/var/lib/apt/lists#
On relance un apt-get update et le tour est joué. Le problème provient d’un bug semblant empêcher l’accès aux applications de la logithèque, lors d’une mise à jour de la liste des paquets (via apt-get update), la console retourne donc cette erreur.
Par ailleurs, la machine n’avait pas les bonnes locales également (par rapport à mes besoins). Le changement de locale a été fait disparaitre l’erreur.
no comments | tags: apt-get, debian, linux, package | posted in Astuces / Documentation