Catégories
Blog Open-source Planet-libre

Hébergements des blogs du Planet Libre

Dans mon dernier billet, j’avais utilisé des scripts pour récupérer automatiquement un certain nombre d’informations sur les blogs Français. J’ai donc adapté ces scripts pour recueillir ces mêmes informations sur les blog du Planet Libre (liste des blogs datées du mois de juillet 2012).

Les informations suivantes sont analysées :

  • le nom de l’hébergeur
  • le type de serveur Web utilisé et si le blog utilise un proxy/cache Varnish

Sur l’hébergement, OVH arrive en tête. Par contre et contrairement aux autres types de blogs, le nombre de serveurs auto-hébergés arrive en troisième position (13%, à égalité avec Online.fr).

Sur les serveurs Web, Apache domine Nginx (pourtant très à la mode) avec plus de 70% des blogs. On peut aussi noter la faible proportion de blogs utilisant Varnish (environ 2%).

Catégories
Blog Nagios Open-source Planet-libre Reseau Systeme Web

Supervision d’un serveur Web/WordPress avec Shinken

Les serveurs hébergeant des services « Web » deviennent de plus en plus critique: un problème technique sur un site marchand fait baisser le chiffre d’affaire, un autre sur un site d’information peut faire passer le lecteur à la concurrence un dernier sur un blog personnel/professionnel peut impacter directement la crédibilité de l’auteur.

Il est donc important de surveiller ces serveurs comme le lait sur le feu. Les outils de supervision permettent de s’acquitter de cette tache de manière plus ou moins automatique en recevant les alertes par mail, Twitter, SMS…

Nous allons dans ce billet configurer un serveur Shinken (étant un fork de Nagios, le billet est également valable pour la configuration d’un serveur sous Nagios) pour surveiller un blog WordPress tournant sur le pile HTTP Varnish+Nginx.

Avant de commencer

Nous partons sur l’hypothèse ou vous disposer d’un serveur sous Debian avec la pile Varnish+Nginx+Wordpress et un serveur Shinken correctement installé et fonctionnel. Idéalement, la brique Shinken sera installé sur un autre serveur lui même hébergé chez un autre hébergeur. Dans ce cas il faudra mettre en place la couche NRPE entre les deux pour que Shinken puisse correctement collecter les informations sur le serveur Web.

Pour simplifier la configuration et que vous puissiez facilement la tester sur vos blogs/sites personnels, j’ai choisi de réunir les deux briques (Web + Supervision) sur une même machine.

Quoi surveiller ?

C’est la question que j’ai posé sur Twitter il y a quelques jours et j’ai reçu un grand nombre de réponses allant toutes dans le même sens. Faute de temps, je n’ai pas pu exploiter toutes les pistes mais je garde cela sous le coude et je ferai sûrement évoluer ce billet dans le futur.

J’ai donc découpé la supervision en deux groupes de services: système / web.

Pour les services système:

  • La charge du serveur: cela permet de s’assurer qu’un processus n’occupe pas toute la CPU et que mon serveur Web (pas très consommateur grâce à l’utilisation de Varnish) aura les ressources pour répondre correctement.
  • La mémoire disponible: c’est un des point critique en terme de performance, comme j’utilise des caches en RAM il faut s’assurer que le système dispose toujours d’une marge de manoeuvre au niveau de la mémoire vive disponible.
  • La mémoire Swap disponible: quand le système n’a plus de RAM disponible, il utilise la mémoire Swap (disque). Je contrôle donc que cet espace n’est jamais trop occupé.
  • RAID1: Mon serveur Dedibox dispose de deux disques durs fonctionnant en RAID1. Je contrôle que les deux disques sont fonctionnels avec un plugin maison.
  • Espace libre sur la partition système: j’ai installé mon serveur Web sur un distribution Debian Squeeze avec le partitionnement par défaut qui affecte une seule partition à /. Je surveille donc que l’espace disque disponible ne devienne pas trop bas.
  • Espace libre sur la partition de backup: mon serveur est hébergé chez Online.net qui propose un espace de stockage accessible en FTP ou j’archive avec RSnapShot tous les répertoire critiques de mon serveur. J’ai donc monté cet espace FTP sur un répertoire de mon disque et j’en surveille l’espace disponible.
  • Nombres de processus actifs: Un trop grand nombre de processus tournant sur le serveur peut mettre en évidence un bug sur un des processus. Je contrôle que ce nombre ne soit pas trop important.
  • Nombres d’utilisateurs connectés simultanément: Comme je suis le seul admin de ce serveur, j’ai mis une alerte qui me prévient quand deux utilisateurs sont connectés simultanément.

Pour les services Web:

  • On commence par surveiller que les processus critiques sont lancés: Varnish (2 processus varnishd), NGinx (5 nginx) et SSH (1 sshd). On passage on vérifie que le nombre de processus est conforme à notre configuration.
  • On surveille les ports en écoutes (local): TCP/80 (Varnish), TCP/8080 (NGinx), TCP/22 (SSH)
  • Pour le site Web à surveiller (par exemple www.mondomaine.com), on contrôle que les URLS suivantes sont bien accessibles:
  • http://www.mondomaine.com (home page)
  • http://www.mondomaine.com/sitemap.xml.gz (le sitemap utilise pour votre référencement)
  • http://www.mondomaine.com/googleXXXXXXXXX.html (le fichier fourni par Google pour faire le check vers ces services)
  • Attaques DOS/DDOS: un plugin me permet de détecter si mon site est victime d’une attaque DOS (facile à bloquer) ou DDOS (bon courage… hein Korben :))

Cette liste est bien sûr très restrictive, j’attend vos idées dans les commentaires !

Les confs, les confs !

L’idée est de fournir les configurations « brutes de décoffrages ». Si vous avez des problèmes pour appliquer cette configuration sur votre serveur, je vous conseille de consulter les billet de la page sur la supervision de ce blog.

La configuration des services système:

[cce]

# Define a service to check the disk space of the root partition

# on the local machine. Warning if < 20% free, critical if

# < 10% free space on partition.

 

define service{

use local-service ; Name of service template to use

host_name localhost

service_description Root Partition

check_command check_local_disk!10%!5%!/

}

 

define service{

use local-service ; Name of service template to use

host_name localhost

service_description Backup Partition

check_command check_local_disk!10%!5%!/mnt/backup

}

 

# Define a service to check the number of currently logged in

# users on the local machine.

 

define service{

use local-service ; Name of service template to use

host_name localhost

service_description Current Users

check_command check_local_users!2!3

}

 

# Define a service to check the number of currently running procs

# on the local machine. Warning if > 250 processes, critical if

# > 400 processes.

 

define service{

use local-service ; Name of service template to use

host_name localhost

service_description Total Processes

check_command check_local_procs!250!400!RSZDT

}

 

# Check memoire avec script check_memory

# http://blog.nicolargo.com/2008/07/surveiller-la-memoire-de-vos-serveurs-avec-nagios.html

# -w 5% -c 1%

 

define service{

use local-service

host_name localhost

service_description Memory

check_command check_mem!10%!5%

}

 

# Define a service to check the load on the local machine.

 

define service{

use local-service ; Name of service template to use

host_name localhost

service_description Current Load

check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0

}

 

# Define a service to check the swap usage the local machine.

# Critical if less than 10% of swap is free, warning if less than 20% is free

 

define service{

use local-service ; Name of service template to use

host_name localhost

service_description Swap Usage

check_command check_local_swap!20!10

}

 

# Check RAID (hardware)

 

define service{

use local-service ; Name of service template to use

host_name localhost

service_description RAID1

check_command check_raid

}

[/cce]

puis les services Web:

[cce]

# Define a service to check SSH on the local machine.

 

define service{

use local-service ; Name of service template to use

host_name localhost

service_description SSH

check_command check_ssh

#notifications_enabled 0

}

 

# Varnish process

# /usr/lib/nagios/plugins/check_procs -w 2:2 -c 1:1024 -C varnishd

 

define service{

use local-service

host_name localhost

service_description Varnish process

check_command check_local_process!2:2!1:1024!varnishd

}

 

# Check process

# /usr/lib/nagios/plugins/check_procs -w 5:5 -c 1:1024 -C nginx

 

define service{

use local-service

host_name localhost

service_description Nginx process

check_command check_local_process!5:5!1:1024!nginx

}

 

# Define a service to check Varnish

 

define service{

use local-service ; Name of service template to use

host_name localhost

service_description Varnish access

check_command check_url!http://localhost/

}

 

# Define a service to check HTTP on the local machine.

 

define service{

use local-service ; Name of service template to use

host_name localhost

service_description Nginx access

check_command check_url!http://localhost:8080/

}

 

# Define a service to check HTTP on the local machine.

 

define service{

use local-service ; Name of service template to use

host_name localhost

service_description URL Blog check

check_command check_url!http://www.mondomaine.com/

}

 

# Define a service to check URL

# http://www.mondomaine.com/googleXXXXXXXX.html

 

define service{

use local-service

host_name localhost

service_description URL Google check file

check_command check_url!http://www.mondomaine.com/googleXXXXXXXXXX.html

service_dependencies localhost,HTTP Blog

}

 

# Define a service to check URL

# http://blog.nicolargo.com/sitemap.xml.gz

 

define service{

use local-service

host_name localhost

service_description URL Sitemap

check_command check_url!http://www.mondomaine.com/sitemap.xml.gz

service_dependencies localhost,HTTP Blog

}

 

# Define a DDOS detection service

# http://blog.nicolargo.com/?p=4100

# Warning: >50 SYN_RECV

# Critical: >70 SYN_RECV

 

define service{

use local-service

host_name localhost

service_description DDOS detect

check_command check_ddos!50!70

}

[/cce]

Et voilà ce que cela donne dans mon Shinken/Thruk:

Catégories
Blog Open-source Web

Migration du blog vers une Dedibox DC

Ce matin, vers les 10h, j’ai procédé à la migration de mon blog depuis un serveur VPS Gandi 4 parts vers une Dedibox DC.  J’ai choisi un samedi matin car c’est à ce moment là que le trafic est le plus faible sur le site.

Voici la procédure que j’ai suivi:

  • Installation du nouveau serveur en suivant cette procédure
  • Sauvegarde de la base MySQL depuis le serveur VPS Gandi
  • Fermeture des commentaires sur le blog WordPress du serveur VPS Gandi
  • Copie du répertoire wp-contents vers la Dedibox DC
  • Importation de la base MySQL sur la Dedibox DC
  • Test du nouveau serveur
  • Modification des serveurs DNS

 

La migration semble se dérouler comme sur des roulettes. J’ai encore quelques connexions sur l’ancien serveur, depuis des réseaux dont les DNS ne sont pas encore à jour.

Au niveau des performances, les graphes suivants parlent d’eux même, le nouveau serveur résiste beoucoup mieux à la charge, il faut dire que j’utilise un nouveau stack HTTP: Varnish 3 + Nginx.

Performances avant la migration:

Performances après la migration:

Si vous rencontrez des problèmes pour accéder à mon blog, merci de me prévenir :).

Update: Certains lecteurs rencontrent des effets de bord (page non mise à jour après un commentaire et affichage de la version mobile), j’ai donc désactivé Varnish en attendant de trouver LA configuration qui va bien. J’ai refait un test avec Load Impact et l’on voit clairement que l’on perd en perfo…

Update2: Tout est rentré dans l’ordre 🙂

Catégories
Blog

[Publi-information] Les annonceurs du blog

Voici un petit billet pour remercier les annonceurs qui participent au développement de ce blog que vous êtes de plus en plus nombreux à suivre. Bien que je ne vive pas de mon site (loin de là :)), ces coups de pouces me permettent de ne pas compter les dépenses sur me moyens de tests (serveurs, accès Internet, VPN…).

Je souhaite également souligner la très bonne relation que j’ai avec ces personnes. N’hésitez donc pas à prendre un peu de temps pour visiter leurs sites.

Si de nouveaux annonceurs sont intéressés, toutes les informations sont sur cette page.

Web4all

Web4all est une association de type loi 1901 spécialisée dans l’hébergement de sites internet. Sa gestion est désintéressée et l’équipe se compose uniquement de bénévoles permettant ainsi de réduire au maximum les dépenses afin de les concentrer sur la partie technique et notamment sur des serveurs haut de gamme. Grâce à son statut, Web4all offre un service de qualité aux clients et adhérents, le tout à un prix compétitif.
La contraction des dépenses s’appuie également sur l’utilisation de systèmes libres dont la réputation n’est plus à faire. On notera ainsi l’utilisation d’applications comme Apache, MySQL, Zimbra, Alfresco et bien d’autres sans oublier les systèmes de supervision (Cacti, Nagios, Centreon, Smokeping).
Bien que juridiquement organisé en association, Web4all propose un service pour héberger vos sites internet équivalent à celui des sociétés commerciales. Les membres du conseil d’administration animés par la volonté de partager leurs compétences, le désir de parfaire leurs connaissances et le souhait d’expérimenter de nouvelles technologies veillent à répondre rapidement aux questions des clients.

LibrA-LinuX

LibrA-LinuX, spécialiste des formations Linux, vous propose des stages, afin de permettre à des utilisateurs de tous niveaux (débutants ou confirmés), d’aborder sereinement l’utilisation et l’administration de systèmes Linux (Debian, Ubuntu, RedHat, Fedora..). Ces formations techniquement enrichissantes, sont animées par des experts, qui mènent en parallèle depuis plusieurs années, la pratique du métier et l’animation de sessions de formation, et ce, dans le but d’accompagner vos équipes dans l’acquisition et le renforcement de leurs compétences sous Linux.

Liste des formations: http://www.libra-linux.com/index.php/Formation-Linux/

M-PLIFY

M-Plify est l’éditeur de la solution en ligne TeamTILT qui permet à partir d’un serveur Nagios, Centreon ou Zenoss d’envoyer des notifications de type  SMS, messages vocaux et notifications push (iPhone) vers vos administrateurs ou vos responsables informatiques. Il suffit juste d’installer le plugin sur votre serveur et de créer un compte sur le site.

A noter que vous pouvez tester gratuitement ce service avec 10 messages offerts à partir de cette adresse.

Catégories
Blog Open-source Web

11 sites pour votre veille technologique sur le libre

Il y a quelques jours, j’ai poser la question suivante sur Twitter, Identi.ca, facebook et Quora:

 » Quels sont vos principales sources d’informations concernant les logiciels libres (sites, blogs…) ? « 

Voici un résumé des réponses.

Les sites spécialisés

GCU-Squad

Depuis plus de 10 ans, l’agrégateur de billet GCU Squad arrive encore à trouver des titres décalés 🙂 Une source indispensable pour les sysadmins :).

>>> http://gcu.info/ <<<

FramaBlog

Le blog de Framasoft, LE défenseur des logiciels libres en France.

>>> http://www.framablog.org/index.php <<<


LinuxFR

Le principe de ce site est le suivant. Les utilisateurs proposes des news dans le domaine des logiciels libres. Les news sont validés par une équipe avant publication assurant ainsi une sélection aux petits oignons…

>>> http://linuxfr.org/ <<<



Ars Technica

Site bien connu en Anglais ayant une section open-source. Orienté grand public plutôt que geek acharnés.

>>> http://arstechnica.com/open-source/ <<<


Le blog de Philippe Scoffoni

Même si Philippe est plus connu pour ces billets fleuves et philosophique sur le monde des logiciels libres, il est en plus une très bonne source d’informations pour la combo « Cloud + Open-source ». Un must have dans votre agrégateur RSS.

>>> http://philippe.scoffoni.net/ <<<


Webynux

Le titre de ce blog est « L’actualité du logiciel libre », il ne pouvait pas être absent de ma sélection 🙂

>>> http://www.webynux.net/ <<<


NixCraft

Un site en Anglais sur des « tips & tricks » quotidiens sur les environnements Linux et BSD.

>>> http://www.cyberciti.biz/ <<<


Planet-Libre

Je ne vous fais pas l’affront de vous le présenter…

>>> http://www.planet-libre.org/ <<<

Les généralistes

Numerama

Porte parole des anti-hadopi. Il aborde également certaines actualités sur le monde des logiciels libres.

>>> http://www.numerama.com/ <<<


PC Inpact

On y parle hard, soft mais aussi libre (en filtrant bien ;))

>>> http://www.pcinpact.com/ <<<

ZDNet

Du sérieux, du posé… Orienté pour les entreprises.

>>> http://www.zdnet.fr/dossier/open-source.htm <<<

Catégories
Blog Web

Petit bilan de l’année 2010

Je profite de ce premier dimanche de 2011 pour faire un petit bilan, concernant ce blog, de l’année qui vient de s’écouler.

Tout d’abord quelques chiffres:

Pour revenir sur le hack du site qui est arrivé en pleine vacance d’août, il a causé une interruption de service de plus de 2 semaines. L’impact en terme de référencement du site dans Google et donc de trafic n’est pas négligeable…

Le point positif est que cette claque m’a permis de repartir sur une base saine (nouveau serveur, nouvelle procédure d’installation, backup…) et donc d’une nouvelle section du l’hébergement sur le site 🙂

Cette année 2011 risque d’être un peu moins active sur ce blog de part mes activités professionnelles. Mais j’ai quelques petits billets dans la tête (suite des billets sur la sécurisation des blogs WordPress, découverte de Shinken, article sur la virtualisation des serveurs…).

Bonne année à vous tous !

Catégories
Blog Nagios Open-source Planet-libre Reseau Systeme Web

Superviser son blog avec Nagios

Pour moi, la vraie révolution Internet de ces dernières années est l’apparition de blogs ayant petit à petit pris le relais des sites institutionnels pour diffuser de l’information. Souvent tenu à bout de bras par des particuliers, ils ne disposent pas d’une infrastructure informatique professionnelle.

Ainsi en cas de problème technique, l’administrateur est souvent prévenu par ses lecteurs…

Nous allons donc voir dans ce billet comment utiliser le logiciel libre de supervision Nagios pour surveiller automatiquement son blog.

Voilà ce que donnera le résultat dans l’interface Web de Nagios:

Contexte

Afin d’illustrer ce billet, nous allons partir sur l’hypothèse ou vous disposer d’un blog hébergé sur un serveur dédié ou virtuel sous Ubuntu Server 10.04 avec un accès SSH et un compte utilisateur avec les droits d’administration (sudo>r00t).

Aller on se connecte en SSH sur son serveur et on suit le guide.

Installation de Nagios

Nous allons utiliser le script d’installation automatique de Nagios (développé par votre serviteur).

On commence par le télécharger le script nagiosautoinstall-ubuntu.sh:

mkdir ~/monitoring/

cd ~/monitoring

wget https://raw.github.com/nicolargo/nagiosautoinstall/master/nagiosautoinstall-ubuntu.sh

chmod a+x nagiosautoinstall-ubuntu.sh

Puis on lance l’installation (il y a quelques questions auxquelles il faudra répondre) :

sudo ./nagiosautoinstall-ubuntu.sh

On devrait ensuite pourvoir accéder à l’interface Web de Nagios à partir de l’URL suivant: http://@IP/nagios/

Ou @IP est l’adresse IP de votre serveur.

Configuration de Nagios

Comme Nagios tourne sur la même machine que le serveur à superviser, toutes la configuration se fera dans le fichier de configuration localhost.cfg.

J’utilise deux plugins non inclus dans les plugins de bases de Nagios (mais installé automatiquement par le script nagiosautoinstall-ubuntu.sh):

On édite le fichier /usr/local/nagios/etc/objects/localhost.cfg (à adapter à votre configuration…):

#######################################################################

#

# Supervision du blog blog.nicolargo.com

#

#######################################################################

 

#######################################################################

#######################################################################

#

# HOST DEFINITION

#

#######################################################################

#######################################################################

 

# Define a host for the local machine

 

define host{

use linux-server

host_name blog

alias blog.nicolargo.com

address 127.0.0.1

}

 

#######################################################################

#######################################################################

#

# SERVICE DEFINITIONS

#

#######################################################################

#######################################################################

 

 

# Define a service to « ping » the local machine

 

define service{

use local-service

host_name blog

service_description PING

check_command check_ping!100.0,20%!500.0,60%

}

 

 

# Define a service to check the disk space of the root partition

# on the local machine. Warning if < 20% free, critical if

# < 10% free space on partition.

 

define service{

use local-service

host_name blog

service_description Root Partition

check_command check_local_disk!10%!5%!/

}

 

 

 

# Define a service to check the number of currently logged in

# users on the local machine. Warning if > 2 users, critical

# if > 3 users.

 

define service{

use local-service

host_name blog

service_description Current Users

check_command check_local_users!2!3

}

 

 

# Define a service to check the number of currently running procs

# on the local machine. Warning if > 250 processes, critical if

# > 400 processes.

 

define service{

use local-service

host_name blog

service_description Total Processes

check_command check_local_procs!250!400!RSZDT

}

 

# Check memoire avec script check_memory

# http://blog.nicolargo.com/2008/07/surveiller-la-memoire-de-vos-serveurs-avec-nagios.html

# -w 800000000 -c 900000000

 

define service{

use local-service

host_name blog

service_description Memory

check_command check_memory!800000000!900000000

}

 

# Define a service to check the load on the local machine.

 

define service{

use local-service

host_name blog

service_description Current Load

check_command check_local_load!5.0,4.0,3.0!10.0,6.0,4.0

}

 

# Define a service to check the swap usage the local machine.

# Critical if less than 10% of swap is free, warning if less than 20% is free

 

define service{

use local-service

host_name blog

service_description Swap Usage

check_command check_local_swap!20!10

}

 

# Define a service to check SSH on the local machine.

# Disable notifications for this service by default, as not all users may have SSH enabled.

 

define service{

use local-service

host_name blog

service_description SSH

check_command check_ssh

#notifications_enabled 0

}

 

 

 

# Define a service to check HTTP on the local machine.

# Disable notifications for this service by default, as not all users may have HTTP enabled.

 

define service{

use local-service

host_name blog

service_description HTTP

check_command check_http

#notifications_enabled 0

}

 

# Define a service to check URL

# http://blog.nicolargo.com/google89d0cf0b89815a2a.html

 

define service{

use local-service

host_name blog

service_description URL Google check file

check_command check_url!http://blog.nicolargo.com/googl

e89d0cf0b89815a2a.html

}

 

# Define a service to check URL

# http://blog.nicolargo.com/sitemap.xml.gz

 

define service{

use local-service

host_name blog

service_description URL Sitemap

check_command check_url!http://blog.nicolargo.com/sitem

ap.xml.gz

}

 

# Define a DDOS detection service

# http://blog.nicolargo.com/?p=4100

# Warning: >50 SYN_RECV

# Critical: >70 SYN_RECV

 

define service{

use local-service

host_name blog

service_description DDOS detect

check_command check_ddos!50!70

}

Ce fichier de configuration va permettre de superviser les choses suivantes:

  • état du serveur (réponse au ping en moins de 500ms et 60% de paquets perdus)
  • espace disque disponible > 5% de la taille totale (10% pour un warning)
  • pas plus de 3 personnes connectés en même temps sur le serveur (2 pour un warning)
  • pas plus de 400 processus lancés en parallèle (250 pour un warning)
  • mémoire disponible (basée sur RAM 1 Go) > 10% de la mémoire totale (20% pour un warning)
  • charge (CPU) moyenne sur 5 minutes < 10% (5% pour un warning)
  • espace de swap disponible > 10% de la taille totale du swap (20% pur warning)
  • Port SSH en écoute
  • Port HTTP en écoute
  • Vérification de l’existence du fichier de check de Google
  • Vérification de l’existence du fichier sitemap.xml (référencement dans moteur de recherche)

Il y a surement plein d’autres choses à vérifier…

A vos claviers pour nous dire cela dans les commentaire.

Catégories
Blog Open-source Planet-libre Web

Le blog de Nicolargo a son application IOS

Mon ami Nicolas Richasse vient de finaliser la première version de l’application du « Blog de Nicolargo » pour iPhone, iPod et iPad. Cette application est d’ores et déjà téléchargeable gratuitement sur l’Apple Store. (voir ici la page officielle de l’application pour plus d’informations).

Vous devez trouver plutôt causasse le fait que ce blog dispose d’une application pour iPhone (axe du mal propriétaire) plutôt que pour Android (les gentils libristes)…

La raison principale est assez simple. Nicolas Richasse m’a proposé de développer gratuitement cette application pour « se faire la main » sur le développement d’application sous IOS. Disposant d’un iPhone 4 à la maison, je n’ai donc pas hésité longtemps (si une âme généreuse veut faire la même chose sous Android je suis preneur :)).

Cependant notre « bon coté de la force » nous a poussé à réfléchir à un modèle plus en accord avec nos convictions. Après quelques discussions avec lui, nous avons donc décidé de proposer l’application sous licence GPL v2.

Elle sera disponible au téléchargement et librement « adaptable » à votre blog dans quelques temps (sur une forge qu’il nous reste à identifier). Nicolas souhaite juste avoir un peu de temps et de recul sur l’application pour proposer une code documenté et facile à forker pour d’autres blogs sous WordPress..

Il faut donc considérer l’application IOS du Blog de Nicolargo comme une démonstration de ce code open-source.

A télécharger, tester puis commenter sans modération !


Que pensez-vous de cette initiative ?

Etes-vous intéressé pour développer un « fork » de cette application pour votre blog ?

Souhaitez vous participer au développement de l’application « core » pour l’améliorer  ?

A vos commentaires…

PS: l’application est bien entendu gratuite. Si vous voulez soutenir Nicolas Richasse  dans son développement vous pouvez acheter son application iNumber qui reprend grosso modo la règle des chiffres de l’émission des chiffres et des lettres.

Catégories
Open-source Planet-libre

10 blogs en Anglais sur l’open-source

Pour ma veille technologique sur l’open-source, en plus des blogs Francophones et des comptes Twitter traitant de ce sujet, j’utilise également des blogs Anglophones.

Voici donc une liste de quelques sites que j’aimerai partager avec vous:


Sujets abordées
Linux in detail’s blog Logiciels libres
OMG! Ubuntu Distribution Linux Ubuntu
Web Upd8 Distribution Linux Ubuntu
Ubuntu Geek Distribution Linux Ubuntu
OStatic Actualité sur le libre
Chromium La source libre de Google Chrome
The Red Devil Linux & Co
MDLog:/Sysadmin Distribution Linux Debian
UbuntuX Distribution Linux Ubuntu
Yet Another Linux Blog Linux & Co


Si vous avez dans vos bookmarks/lecteur RSS de petites perles, merci de laisser les adresses et descriptions dans les commentaires.

Catégories
Blog Open-source Planet-libre Web

Analyser les logs de votre serveur Web avec AWStats

L’analyse des logs des sites Web est de plus en plus externalisé sur des services en ligne dans la veine de Google Analytics. Bien que ces services soient très bien fait, il peut être utile, pour des raisons techniques ou de confidentialité, de faire cette analyse directement sur vos serveurs. Nous allons donc dans ce billet mettre en place le logiciel AWStats pour qu’il analyse les logs générés par un serveur Apache.

La procédure est faire sur une distribution Ubuntu Server 9.04 mais pourra très bien être adapté sur d’autre versions/distributions.

Installation de AWStats

AWStats existe sous la forme de package Debian like (sinon vous pouvez toujours télécharger et compiler à partir des sources):

sudo aptitude install awstats

Les fichiers de configuration se trouvent dans le répertoire /etc/awstats. On va partir du template awstats.conf pour générer le fichier de configuration pour notre serveur (monbeaudomaine.com).

sudo cp /etc/awstats/awstats.conf /etc/awstats/awstats.monbeaudomaine.com.conf

Puis on édite ce fichier, notamment les lignes suivantes:

LogFile= »/var/log/apache2/monbeaudomaine-access.log »

LogFormat=1

SiteDomain= »monbeaudomaine.com »

On finalise l’installation en générant la base de données (stockée dans le répertoire /var/lib/awstats):

sudo /usr/lib/cgi-bin/awstats.pl -config=monbeaudomaine.com -update

Attention: cette étape peut prendre un certain temps selon la taille du fichier de log.

Puis on automatise la mise à jour (toutes les 10 minutes) de cette base en éditant le fichier crontab /etc/cron.d/awstats (il faut adapter la ligne de commande à votre nom de domaine):

0,10,20,30,40,50 * * * * www-data [ -x /usr/lib/cgi-bin/awstats.pl -a -f /etc/awstats/awstats.monbeaudomaine.com.conf -a -r /var/log/apache2/monbeaudomaine-access.log ] && /usr/lib/cgi-bin/awstats.pl -config=monbeaudomaine.com -update >/dev/null

Il faut bien vérifier que www-data a les droits:

  • en exécution sur le script /usr/lib/cgi-bin/awstats.pl
  • en lecture sur le fichier /etc/awstats/awstats.monbeaudomaine.com.conf
  • en lecture sur le fichier /var/log/apache2/monbeaudomaine-access.log

Les nouveaux fichiers de log (générés par logrotate) ne seront pas créés avec les bons droits, il faut donc modifier le fichier /etc/logrotate.d/apache2:

create 640 root www-data

Et vérifier que les répertoire et fichiers existant on les bons droits:

chmod 2755 /var/log/apache2/

chgrp -R www-data /var/log/apache2/

Avant d’accéder à l’interface Web de vos stats, il faut ajouter le fichier de configuration /etc/apache2/conf.d/awstats.conf à Apache:

Alias /awstatsclasses « /usr/share/awstats/lib/ »

Alias /awstats-icon/ « /usr/share/awstats/icon/ »

Alias /awstatscss « /usr/share/doc/awstats/examples/css »

ScriptAlias /awstats/ /usr/lib/cgi-bin/

<Directory « /usr/lib/cgi-bin/ »>

Options ExecCGI

AllowOverride None

AuthName « AWStats Access »

AuthType Basic

AuthUserFile /etc/awstats/htpasswd.users

Require valid-user

</Directory>

Puis on relance le serveur:

sudo /etc/init.d/apache2 restart

Utilisation de AWStats

Si l’installation c’est bien passé, une navigation vers la page http://localhost/awstats/awstats.pl?config=monbeaudomaine.com devrait afficher vos statistiques.

Si vous avez le message d’erreur suivant:

Error: SiteDomain parameter not defined in your config/domain file. You must edit it for using this version of AWStats.

Setup (‘/etc/awstats/awstats.conf’ file, web server or permissions) may be wrong.

Check config file, permissions and AWStats documentation (in ‘docs’ directory).

C’est que vous avez surement mal saisi l’URL http://localhost/awstats/awstats.pl?config=monbeaudomaine.com. Il faut bien vérifier que monbeaudomaine.com correspond au fichier de configuration /etc/awstats/awstats.monbeaudomaine.com.conf.

Sources: