Catégories
Musique Open-source Planet-libre raspberry

Quand votre Raspberry Pi devient serveur Spotify

capture_067C’est en lisant un article sur le blog de Korben que j’ai découvert qu’il était possible de transformer une distribution GNU/Linux en une borne audio Spotify, pilotable à distance. L’objectif étant d’avoir un petit boîtier (type Raspberry Pi ou équivalent) branché directement à sa chaîne Hifi et de pouvoir naviguer à distance sur sa bibliothèque Spotify.

La configuration que j’ai mis en place est la suivante:

Mise en place du système

Je ne vais pas faire un copier/coller de mon billet d’installation de Raspbian Wheezy sur un Raspberry Pi, il suffit de suivre ce lien.

Etape optionnelle, uniquement si vous avez un DAC ou une carte son USB branché à votre Raspberry:

Comme j’utilise un DAC afin de remplacer la médiocre sortie analogique du Raspberry, il faut effectuer une petite configuration complémentaire pour forcer le Raspberry à utiliser le DAC (sortie USB) comme carte son. Il suffit d’éditer le fichier /etc/modprobe.d/alsa-base.conf en commentant une première ligne et en ajoutant une deuxième:

#options snd-usb-audio index=-2
options snd-usb-audio nrpacks=1

Après un dernier redémarrage, votre Raspberry Pi est prêt à recevoir l’installation de Mopidy.

Installation de Mopidy, le serveur Spotify

Mopidy est un serveur Audio compatible avec les clients uPnP et MDP et permet donc de jouer des musiques stockés localement ou de streamer des musiques disponibles sur le service Spotify (c’est sur ce dernier point que nous allons nous focaliser dans ce billet).

On commence par installer le dépôt officiel de Mopidy puis le logiciel:

wget -q -O - http://apt.mopidy.com/mopidy.gpg | sudo apt-key add -
sudo wget -q -O /etc/apt/sources.list.d/mopidy.list http://apt.mopidy.com/mopidy.list
sudo apt-get update
sudo apt-get install mopidy

On doit ensuite lancer un première fois Mopidy:

$ mopidy

INFO     Starting Mopidy 0.13.0
INFO     Platform: Linux-3.6.11+-armv6l-with-debian-7.0
INFO     Python: CPython 2.7.3
INFO     Creating dir /home/pi/.config/mopidy
INFO     Creating dir /home/pi/.local/share/mopidy
INFO     Creating file /home/pi/.config/mopidy/settings.py
WARNING  Could not open tag cache: [Errno 2] No such file or directory: u'/home/pi/.local/share/mopidy/tag_cache'
INFO     Loading tracks from /home/pi/None using /home/pi/.local/share/mopidy/tag_cache
INFO     Loading playlists from /home/pi/.local/share/mopidy/playlists
INFO     Audio output set to "autoaudiosink"
INFO     Audio mixer set to "alsamixer" using track "PCM"
ERROR    Setting "SPOTIFY_USERNAME" is empty.
ImportError: could not import gtk.gdk

Cela va permettre à Mopidy de créer l’arborescence ~/.config/mopidy qui va contenir les fichiers de configuration.

On doit éditer le fichier  ~/.config/mopidy/settings.py avec les paramètres:

  • du serveur MDP qui va permettre de contrôler à distance Mopidy
  • du répertoire local (ou distant sur un NAS) ou sont stockés vos fichiers audios
  • du compte Spotify Premium (obligatoire)
  • du compte LastFM (optionnel, uniquement pour le scrobbling)
FRONTENDS = (u'mopidy.frontends.mpd.MpdFrontend', u'mopidy.frontends.lastfm.LastfmFrontend')

MPD_SERVER_HOSTNAME = u'0.0.0.0'
MPD_SERVER_PASSWORD = u'mdppassword'

LOCAL_MUSIC_PATH = u'/home/nicolargo/Musiques'

SPOTIFY_USERNAME = u'spotifylogin'
SPOTIFY_PASSWORD = u'spotifypassword'
SPOTIFY_BITRATE = 320

LASTFM_USERNAME = u'lastfmlogin'
LASTFM_PASSWORD = u'lastfmpassword'

On peut relancer ensuite Mopidy:

$ mopidy
INFO     Starting Mopidy 0.13.0
INFO     Platform: Linux-3.6.11+-armv6l-with-debian-7.0
INFO     Python: CPython 2.7.3
WARNING  Could not open tag cache: [Errno 2] No such file or directory: u'/home/pi/.local/share/mopidy/tag_cache'
INFO     Loading tracks from /home/pi/.config/mopidy/None using /home/pi/.local/share/mopidy/tag_cache
INFO     Loading playlists from /home/pi/.local/share/mopidy/playlists
INFO     Audio output set to "autoaudiosink"
INFO     Audio mixer set to "alsamixer" using track "PCM"
INFO     Mopidy uses SPOTIFY(R) CORE
INFO     MPD server running at [0.0.0.0]:6600
INFO     Connected to Spotify
ImportError: could not import gtk.gdk
ERROR    MPRIS frontend setup failed (org.freedesktop.DBus.Error.NotSupported: Unable to autolaunch a dbus-daemon without a $DISPLAY for X11)
INFO     Connected to Last.fm
INFO     Loaded 57 Spotify playlist(s)

Vous pouvez ignore les erreurs, les lignes importantes étant:

INFO     MPD server running at [0.0.0.0]:6600
INFO     Connected to Spotify
INFO     Connected to Last.fm
INFO     Loaded 57 Spotify playlist(s)

Piloter à distance votre borne Mopidy

Pour piloter votre tout nouveau serveur Mopidy, il suffit d’installer un client compatible avec le protocole implémenté dans MPD. Personnellement, j’utilise GMPC sur mon PC Ubuntu mais d’autres solutions existes:

  • Sous GNU/Linux: En ligne de commande Ncmpcpp (bon corage pour retenir le nom mais il marche à merveille) ou en GUI avec GMPC
  • Sous Andoid: MPDroid
  • Sous iOS: MPaD

Conclusion

Encore une utilisation sympa d’un Raspberry dans le monde de la Hifi. J’ai encore quelques problèmes de son (gros tics quand je passe d’un morceau à l’autre) mais dans l’ensemble c’est une solution bien pratique pour écouter sa bibliothèque musicale sur sa chaîne !

Retrouvez tous mes billets sur le Raszberry Pi sur ma page dédiée !

Catégories
Hardware Open-source Planet-libre raspberry

Raspberry Pi 512, déballage et installation

Certains buzz démarrent avec pas grand chose, d’autre sont issus de vraies bonnes idées. Le Raspberry Pi B 512 est de cette catégorie là. Proposer une carte mère pour moins de 30€ avec un CPU ARM à 700 Mhz, un GPU bi-core pour un affichage « full HD » et 512 Mo de RAM. J’ai donc décidé d’acheter le modèle Raspberry PI B 512 avec un jolie boitier transparent. Ce kit est en vente chez Kubii au prix de 50€ (au passage je tiens à signaler le très bon service client de Kubii. Service rapide et personnalisé. C’est suffisamment rare pour le signaler).

Passons au vis du sujet avec le déballage et l’installation de la bête.

Pour quoi faire ?

L’avantage d’un prix aussi bas est de pouvoir se lancer dans son achat sans avoir vraiment d’idée précise d’utilisation en tête. Après quelques jours, voici une liste de choses que l’on peut ou ne peut pas faire avec un Raspberry.

Le Raspberry Pi B 512 est parfaitement adapté pour:

  • Lire des fichiers audio et vidéo en haute définition (en utilisant OMXplayer le player spécifique du Raspberry Pi)
  • auto-héberger son site personnel (avec les limites d’usages au niveau du débit de la liaison montante de votre ligne Internet) avec une configuration basée sur LightHTTPd ou sur Nginx
  • héberger son serveur VPN pour accèder à son réseau personnel depuis l’exterieur
  • superviser votre réseau (jusqu’à une centaine de machines avec 10 services/machine sans aucun problème) avec une installation de Shinken et de Munin
  • créer une borne Airplay à moindre prix (autre article en Anglais sur le même sujet)
  • développer des applications de domotique (quelques exemples ici et encore )
  • … pleins d’autres idées qui peuvent vous passer par la tête (en voir 50 chez l’ami Korben)

Il peut être utilisé occasionnellement pour:

  • surfer sur Internet (mais il est vrai que l’on est habitué à un affichage rapide des pages, ce que l’on obtient pas avec le Raspberry Pi)
  • lire ces mails et faire un peu de bureautique simpliste

Passez votre chemin si vous voulez:

  • remplacer votre PC fixe ou mobile par un Raspberry Pi B 512…

Déballage

Commençons par la fin en montrant le résultat: mon Raspberry PI B 512 en action avec un écran, un clavier et une souris.

Raspberry PI 512

Regardons de plus prêt le coeur du système:

 

Installation

Choisir son système d’exploitation

Le Raspberry Pi est compatible avec les systèmes d’exploitations GNU/Linux. Certaines distributions se sont spécialisées pour ce matériel spécifique. La liste des systèmes d’exploitations compatibles se trouve sur cette page du site officiel. Mon choix c’est porté vers la Raspbian « Wheezy » qui est une distribution dérivée de Debian que je manipule tous les jours. Il existe également une autre distribution basée sur Arch Linux qui offre des performances équivalentes (voir l’article de P3ter sur le sujet).

Le système d’exploitation doit être stocké sur une carte SD à insérer dans le lecteur du Raspberry PI. Pour mettre le système Raspbian sur la carte SD j’ai utilisé mon PC portable sous Ubuntu 12.10 qui dispose d’un lecteur intégré de carte SD. La procédure suivante est donc à adapter selon votre matériel.

On commence donc par télécharger l’image de la dernière version de Raspbian puis de vérifier avec le logiciel sha1sum que l’archive est complète.

$ wget http://files.velocix.com/c1410/images/raspbian/2013-02-09-wheezy-raspbian/2013-02-09-wheezy-raspbian.zip

$ sha1sum 2013-02-09-wheezy-raspbian.zip 
b4375dc9d140e6e48e0406f96dead3601fac6c81  2013-02-09-wheezy-raspbian.zip

La valeur barbare donnée par la commande sha1sum est à comparer avec celle de référence disponible sur la page de téléchargement. Si elles différent alors il ne vous reste plus qu’à recommencer le téléchargement.

On peut ensuite décompresser le fichier pour obtenir l’image disque (2013-02-09-wheezy-raspbian.img dans mon cas):

$ unzip 2013-02-09-wheezy-raspbian.zip
inflating: 2013-02-09-wheezy-raspbian.img

Graver son système sur la carte SD (source: eLinux)

On commence par insérer la carte dans son lecteur (celui de mon PC portable dans mon cas), puis on utilise la commande df -h pour obtenir le point de montage (/dev/sdb1 dans mon cas) correspondant à la carte SD. Attention de bien utiliser le point de montage pour éviter de formater votre disque système !!!:

capture_036

Une fois le point de montage identifié, il faut saisir les commande suivante (en remplaçant /dev/sdb1 par votre point de montage):

sudo dd bs=4M if=./2013-02-09-wheezy-raspbian.img of=/dev/sdb

Quelques explications sur cette dernière commande:

  • elle doit être lancée avec les droits root (d’ou l’utilisation de sudo)
  • if donne l’emplacement de l’image de Raspbian « Wheezy »
  • of donne le point de montage racine (égal à votre point de montage sans le nombre finale soir /dev/sdb dans mon cas)
  • l’exécution va prendre un peu de temps…

Très bien, votre carte contenant l’OS Raspbian « Wheezy » est prête à être utilisée !

Insérer votre carte dans le lecteur SD du Raspberry PI, brancher un clavier et l’alimentation micro USB et c’est parti !

capture_048

Configuration initiale du système

Au premier démarrage, vous allez avoir droit au lancement automatique de l’utilitaire de configuration « raspi-config » qu’il est possible de rappeler par la suite en saisissant la commande suivante dans un terminal:

sudo raspi-config

Raspi-config se présente sous la forme suivante:

capture_040

Les différentes fonctions permettent de:

  • expand_rootfs: étendre la partition principale à la taille maximale de la carte SD (par exemple si vous avez une carte SD de 16 Go et que vous n’utilisez pas cette fonction, alors vous resterez avec une partition principale de 2 Go)
  • overscan: force l’affichage de marge pour s’adapter à des écrans 16/9 ou supérieur.
  • configurer: le clavier (configure_keyboard), le mot de passe par défaut (raspberry) de l’utilisateur par défaut (pi) (change_pass) , votre lieu géographique (change_locale) et le temps (change_timezone)
  • overclocking: comme Raspberry est une société intelligente, elle autorise l’overclocking de son matériel sans perte de la garantie (mais avec une durée de votre matériel qui risque de diminuer). Fonction à activer si vous voulez utilisez le Raspberry en mode graphique (comme client léger) ou tout autre besoin consommateur de CPU. On a le choix d’overcloking suivant:

capture_041

  • memory-split: pour définir la quantité de mémoire vive dédiée au GPU (64 Mo par défaut).
  • ssh: permet de définir si le serveur SSH doit être lancé par défaut.
  • boot_behavor: choisir si on veut démarrer le boitier en mode texte (utilisation serveur) ou graphique (client léger avec l’environnement OpenBoxLXDE).
  • update: qui est en fait un raccourci vers la commande « apt-get update && apt-get upgrade » et ainsi mettre à jour votre système (qui doit être connecté à Internet).

Premières impressions

Comme lors de  mon test du Linutop 4,  la première impression quand on utilise le Raspberry Pi avec son interface graphique LXDE, est un retour en arrière de quelques années ou il fallait attendre quelques secondes avant l’affichage des fenêtres. La lecture vidéo HD est par contre bleufante (voir le paragraphe en de billet), on voit que le GPU est parfaitement exploité.

Une fois dans un terminal, la machine réagi bien. Dans un très appréciable silence total, on utilise un système GNU/Linux minimaliste mais réactif.

Quelques tests

CPU, GPU et RAM

Sur ces aspects là, rien de notable, on est dans la norme avec ce type de matériel. Si vous voulez des chiffres pour comparer avec d’autres machines, je vous conseille la lecture de cette page Wiki chez eLinux.

Interface réseau

L’interface Ethernet est à la norme FastEthernet (soit un débit théorique maximum de 100 Mbps). Comme le Raspberry Pi n’a pas une capacité de stockage importante, cette vitesse pourra être pénalisante lors de l’accès à vos données stockées sur un NAS ou une autre machine.

Un rapide test avec Iperf montre un débit maximum en TCP de 90 Mbps en entrée et 65 Mbps en sortie. On a donc de bonnes performances pour une interface FastEthernet, en espérant une évolution en Giga pour la prochaine version de Raspberry Pi.

Multimédia

Là ou le Raspberry Pi est bluffant c’est sur les lectures audio et vidéo. En effet, avec les efforts pour adapter XBMC sur ce matériel on dispose de logiciel permettant sans aucun problème de lire des vidéos H.264 full HD.

Si vous ne souhaitez pas passer par XBMC, vous pouvez utiliser OMXPlayer de la manière suivante:

omxplayer -o hdmi <nondufichiervideo>

Il est même possible, pour certains besoins spécifiques d’acheter, pour des sommes assez modiques, des licences pour des codecs MPEG-2 ou VC-1.

Il lui manque quoi ?

Personnellement, je serais assez intéressé par une version luxe (à 60€ max faut pas déconner non plus) intégrant les choses suivantes:

  • une interface Gigabit Ethernet, pour avoir un connectivité haut débit vers mon NAS
  • une sortie audio numérique pour connecter le Raspberry Pi à mon DAC (iPhone + Airplay + Shairport + Raspberry Pi + DAC + Ampli = Bonheur)
  • une troisième interface USB, car les deux premières sont occupées par mon clavier et ma souris et je ne sais pas ou mettre ma clés USB 🙂

Conclusion

Nous voici arrivé au bout de ce premier article sur le Raspberry Pi, d’autres viendront vites, plus spécialisés. Je dois avoué avoir été agréablement surpris pas les capacités et le potentiel de cette petite machine. Le futur est là, devant nos yeux.

Et vous ? Avez vous craqués ? Si oui pour quelle utilisation ?

Retrouvez mes articles sur l’écosystème Raspberry Pi en cliquant ici.

Catégories
Open-source Planet-libre Systeme

Apprentissage de Qemu/LibVirt par l’exemple

La rédaction des billets de ce blog nécessite de travailler sur plusieurs systèmes d’exploitations différents. Plutôt que de monter une salle machine dans ma maison (pas sur que ma compagne soit d’accord), j’ai donc opté pour un virtualisation sur un serveur dédié OVH qui a le gros avantage de disposer d’une RAM conséquente de 16 Go (pour une machine en l’an 2012). Travaillant la plupart du temps du temps sous Linux, mon choix c’est donc porté sur la solution Qemu/KVM (Kernel-based Virtual Machine).

Installation de Qemu/KVM

Pour que Qemu/KVM ait des performances acceptables, il faut vérifier que votre processeur soit compatible avec les extensions de virtualisation. Sous Linux, il est facile de vérifier cela avec la ligne de commande suivante.

[cce lang= »bash »]

egrep ‘^flags.*(vmx|svm)’ /proc/cpuinfo >/dev/null && echo OK || echo KO

[/cce]

Sur mon serveur de test (Kimsufi 16G chez OVH) pas de problème de ce coté là. J’obtiens un beau OK.

Le serveur peut donc supporter la virtualisation hardware. Chez OVH, le noyau par défaut est statique, il n’est donc pas possible d’ajouter dynamiquement des modules (comme le kvm_intel par exemple). Il faut donc suivre cette procédure. La dernière version des noyaux semble intégrer par défaut les modules KVM.

On peut ensuite passer à l’installation des briques logicielles (environ 257 Mo à télécharger):

  • qemu-kvm – Full virtualization on x86 hardware
  • virtinst – Programs to create and clone virtual machines
  • libvirt-bin – the programs for the libvirt library

On utilise les versions disponibles dans les dépôts Debian:

[cc lang= »bash »]

sudo apt-get install qemu-kvm virtinst libvirt-bin

[/cc]

Un petit reboot de la machine pour être sûr que tous les modules sont chargés avant de poursuivre.

Création de sa première machine virtuelle (VM)

Nous allons commencer par créer une machine virtuelle avec comme système hôte une Ubuntu Desktop 11.10. Une machine virtuelle a besoin d’un conteneur dans lequel elle va pourvoir s’exécuter: ce conteneur s’appelle une image disque. Ensuite, il faudra installer le système hôte à l’intérieur de cette image disque.

Il est possible d’utiliser la ligne de commande pour effectuer ces opérations (ce qui ouvre la voie à une automatisation par scripts). Nous aborderons cela un peu plus loin dans l’article. Pour commencer, nous allons utiliser le module libvirt-manager qui propose une interface graphique (GTK) permettant d’administrer à distance (via un tunnel SSH) son serveur d’hypervision Qemu/KVM.

On commence par vérifier que le daemon d’administration est bien lancé sur le serveur d’hypervision (ce qui devrait être le cas si vous avez suivi les étapes d’installations de ce billet):

[cc lang= »bash »]

sudo /etc/init.d/libvirt-bin status

Checking status of libvirt management daemon: libvirtd running.

[/cc]

Ensuite il faut ajouter votre utilisateur (nicolargo dans mon cas) dans les groupes ‘libvirt‘ et ‘kvm‘:

[cc lang= »bash »]

sudo usermod -a -G libvirt nicolargo

sudo usermod -a -G kvm nicolargo

[/cc]

Sur la machine GNU/Linux cliente (disposant d’une interface graphique), il faut installer les packages (par exemple sous Debian/Ubuntu):

[cc lang= »bash »]

sudo apt-get install virt-manager

[/cc]

Au lancement du client, il faut cliquer sur le menu File > Add connection…

Puis paramétrer la connexion vers votre serveur:

Notre serveur est alors disponible dans la liste, on peut alors configurer ses propriétés:

On configure le type de réseau que l’on va utiliser. Comme je ne dispose que d’une seule adresse publique sur mon serveur OVH Kimsufi, j’utilise la translation d’adresse (voir l’explication dans un chapitre suivant) qui est configurée par défaut:

Puis on configure les répertoires ou l’on pourra trouver les ISOs pour l’installation des machines hôtes:

 

 

Et voila le résultat après téléchargement de quelques images ISO depuis le répertoire ~/iso (le serveur disposant d’une accès 100 Mbs direct sur Internet, cela va assez vite !).

On peut passer à la création de la VM proprement dite en cliquant sur le bouton « Create a new virtual machine ». On accède alors à un wizard:

On entre le nom de la VM (sans espace):

Puis l’image ISO qui va nous servir pour l’installation du système d’exploitation (le « Browse » sur le serveur peut prendre un certain temps):

On défini ensuite les ressources de la VM (CPU et mémoire). A noter que la limite à 2 Go de RAM sur ma configuration de test:

On donne ensuite la taille de l’image disque qui contiendra notre VM. Je conseille 16 Go pour les OS récents.

Enfin on finalise la configuration coté réseau (NAT) et hyperviseur (KVM):

Une fenêtre avec un déport d’affichage devrait alors s’afficher et l’installation du système guest (Ubuntu 11.10) commencer:

 Il ne vous reste plus qu’à finaliser l’installation !

Utilisation de sa VM

Une fois l’installation de la VM effectuée (voir le chapitre précédant). Celle-ci devrait apparaître dans la liste proposé par Virtual Machine Manager. Pour la lancer, il faut sélectionner la VM puis cliquer sur le bouton ‘play’ (Power On the virtual machine):

Et voilà le travail:

Niveau performance ?

Il ne faut pas s’attendre à des miracles. La virtualisation par Qem/KVM bien qu’aillant fait de gros progrès dans les dernières versions restent en dessous d’une solution comme VmWare ou Xen. Elles sont par contre suffisante dans mon cas ou je souhaite valider des procédures et des logiciels système et réseau.

Gestion en ligne de commande

Création de l’image disque

On commence par créer un répertoire ~/vm qui va contenir toutes mes images disques:

[cc lang= »bash »]

mkdir ~/vm

[/cc]

Puis on utilise la commande qemu-img pour générer l’image disque « vierge »:

[cc lang= »bash »]

cd ~/vm

qemu-img create -f qcow2 debian6server.qcow2 16G

[/cc]

Cette dernière commande va donc générer une image disque nommée debian6server.qcow2 de type qcow2 (voir ci-dessous la liste des types disponibles sous Debian 6) avec une taille maximale de 16 Giga octets.

Sur mon système, la liste des « types » d’image disque est la suivante:

  • raw: pas de compression, l’image disque est directement « dumpée » dans un fichier
  • host_device
  • qcow2: format par défaut de Qemu (Qemu Image Format)
  • qcow: ancien format utilisé par Qemu (ne pas utiliser pour la création de nouvelle image disque)
  • vdi: format compatible avec VirtualBox
  • vmdk: format compatible avec VMWare
  • vpc: format compatible avec VirtualPC

Il est possible de convertir une image d’un format à un autre. Par exemple, si vous avez une image au format VMWare et que vous voulez la convertir vers un format Qcow2, il suffit de saisir la commande suivante:

[cc lang= »bash »]

qemu-img convert -f vmdk disk.vmdk -O qcow2 disk.qcow2

[/cc]

Création de la VM

Pour installer la VM, nous avons besoin de l’image ISO du système d’exploitation à installer (Debian 6 server dans mon exemple). On va donc télécharger cette image sur notre serveur (c’est dans ces moments là que l’on est heureux d’avoir un serveur avec une connexion à 100Mbps vers Internet…):

[cc lang= »bash »]

mkdir ~/iso

cd ~/iso

wget http://cdimage.debian.org/debian-cd/6.0.3/i386/iso-cd/debian-6.0.3-i386-CD-1.iso

[/cc]

Maintenant que nous disposons de l’image disque ~/vm/debian6server.qcow2 et du média d’installation ~/iso/debian-6.0.3-i386-CD-1.iso, nous allons créer la machine virtuelle en utilisant la couche d’abstraction libvirt.

Pourquoi utiliser libvirt plutôt que d’utiliser directement les commandes équivalentes Qemu ? Si demain vous décidez de changer votre système de virtualisation, vos procédures/scripts resteront les mêmes. En effet libvirt communique de manière transparente vers un grand nombre de systèmes de virtualisation en proposant en bonus une API de développement (notamment en Python).

On utilise donc la commande suivante pour créer la VM:

[cc lang= »bash »]

virt-install –ram=2047 –name=debian6server –file=/home/nicolargo/vm/debian6server.qcow2 –cdrom=/home/nicolargo/iso/debian-6.0.3-i386-CD-1.iso –hvm –vnc –noautoconsole

[/cc]

Note: la commande virt_install ne semble pas trop aimer les ~ dans les paths. Il faut donc donner le chemin absolu.

Note2: La taille maximale de RAM que je peux allouer est de 2047Mo.

Cette commande va donc créer une VM nommée debian6server qui disposera de 2 Go de RAM (d’ou l’avantage de faire tourner votre hyperviseur sur une machine disposant de pas mal de RAM / 16 Go dans mon cas sur une Kimsufi 16G).

Si tout est ok, le message suivant devrait s’afficher:

Domain installation still in progress.

You can reconnect to the console to complete the installation process.

Pour l’accès à la console (déport VNC via un tunnel SSH), je vous conseille d’utiliser l’interface d’administration de libvirt que vous pouvez lancer sur un PC client disposant d’une interface graphique.

Gestion du réseau par translation

Mon serveur dispose d’une seule adresse IP publique. Les VM auront donc des adresses IP privées et l’on utilisera la translation s’adresse (NAT) pour permettre au VM de sortir sur Internet (voir ce billet pour la création d’un réseau par NAT).

Certaines configurations sont à faire sur votre serveur:

[cc]

sudo sh -c « echo 1 > /proc/sys/net/ipv4/ip_forward »

[/cc]

[cc]

sudo vi /etc/sysctl.conf

# Uncomment the next line to enable packet forwarding for IPv4

net.ipv4.ip_forward=1

[/cc]

Si vous utilisez des règles Iptables alors il faut ajouter les lignes suivantes dans votre scripts (attention de bien vérifier que votre script ne repositionne pas la valeur net.ipv4.ip_forward à 0… je me suis fais avoir):

[cc]

# Qemu rules (NAT VM and allow VM to DHCP)

/sbin/iptables -t nat -A POSTROUTING -s 192.168.122.0/24 ! -d 192.168.122.0/24 -j MASQUERADE

/sbin/iptables -A INPUT -i virbr0 -j ACCEPT

/sbin/iptables -A OUTPUT -o virbr0 -j ACCEPT

/sbin/iptables -A INPUT -i virbr0 -p udp -m udp –dport 53 -j ACCEPT

/sbin/iptables -A INPUT -i virbr0 -p tcp -m tcp –dport 53 -j ACCEPT

/sbin/iptables -A INPUT -i virbr0 -p udp –dport 67:68 –sport 67:68 -j ACCEPT

/sbin/iptables -A FORWARD -d 192.168.122.0/24 -o virbr0 -m state –state RELATED,ESTABLISHED -j ACCEPT

/sbin/iptables -A FORWARD -s 192.168.122.0/24 -i virbr0 -j ACCEPT

/sbin/iptables -A FORWARD -i virbr0 -o virbr0 -j ACCEPT

echo 1 > /proc/sys/net/ipv4/ip_forward

[/cc]

Petite note pour les guests « BSD »

Pour un guest sous OpenBSD, il faut penser à effectuer les actions suivantes pour faire fonctionner correctement la carte réseau:

  • arrêter la VM
  • éditer le fichier /etc/libvirt/qemu/OpenBSD_5.0.xml

[cce]

<interface type=’network’>

<model type=’e1000′>

</interface>

[/cce]

  • Relancer la VM

Sources utilisées lors de la rédaction de cet article:

Catégories
Open-source Planet-libre Reseau Systeme

Installation et configuration de Munin, le maître des graphes

Munin est un logiciel de supervision permettant de centraliser la gestion des graphes de données RRDTools. Il permet en quelques commandes que nous allons détailler dans ce billet de générer des graphes complexes pour surveiller vous machines et les processus qui tournent dessus.

Voici un exemple de graphe sur les statistiques remontées par un serveur utilisant Varnish:

Introduction

Munin est proposé sous la forme de deux packages complémentaires: munin et munin-node.

Le premier (munin) est à installer sur votre serveur de supervision (appelé maître). Son objectif principal est de récupérer les données venant des machines à surveiller puis de générer des graphes qui seront présentés aux utilisateurs via une interface Web.

Le second  (munin-node) est à installer sur toutes les machines à superviser (appelées noeuds). Son objectif est de collecter les informations systèmes en utilisant des plugins (présent dans le package munin-node et dans munin-plugins-extra).

La communication entre le serveur maître et les machines noeuds utilise, par défaut le protocole TCP/4949 (initialisation de la connexion TCP de la part du serveur maître).

Installation de Munin

Pour la suite de ce billet (et sauf mention spécifique), je partirai sur le principe ou vous utilisez des machines sous Debian/Ubuntu.

Installation de Munin sur le serveur maître

Le serveur maître doit disposer d’un serveur Web (voir ce billet pour installer simplement NGinx sur votre système) configuré avec le répertoire root par défaut: /var/www.

Comme Munin est présent dans les dépôts officiels, il suffit de saisir la commande suivant qui va installer le package maître ainsi que le package esclave histoire de pouvoir superviser son serveur de supervision…:

sudo apt-get install munin munin-node munin-plugins-extra

sudo ln -s /var/cache/munin/www /var/www/munin

sudo /etc/init.d/munin-node restart

En faisant pointer un navigateur Web vers l’URL:

http://votreserveurdesupervision/munin

Vous devriez voir s’afficher les statistiques de votre serveur. Il faut attendre quelques minutes avant de voir les premiers graphes, le temps que les bases de données soient renseignées.

Installation de Munin sur les machines noeuds

Installation des noeuds sous GNU/Linux

Là encore c’est assez simple:

sudo apt-get install munin-node munin-plugins-extra

La configuration de Muni sur les machines noeuds est centralisée dans le fichier /etc/munin/munin-node.conf. Il faut éditer ce fichier pour y configurer l’adresse IP de votre serveur maître à la ligne suivante:

# A list of addresses that are allowed to connect. This must be a

# regular expression, since Net::Server does not understand CIDR-style

# network notation unless the perl module Net::CIDR is installed. You

# may repeat the allow line as many times as you'd like

allow ^192\.168\.1\.200$

Cette configuration (à adapter à votre besoin) va autoriser la machine maître d’adresse IP 192.168.1.200 à se connecter sur cette machine noeud pour y récupérer les données à superviser.

Il faut ensuite relancer le service Munin-node pour faire prendre en compte la nouvelle configuration:

sudo /etc/init.d/munin-node restart

Installation des noeuds sous Windows

Le projet Munin ne fourni pas de « node » pour WIndows, il faut donc se retourner du coté de la communauté pour trouver notre bonheur. En l’occurrence du coté du logiciel Munin-Node-Win32 disponible au téléchargement sur cette page.  Il suffit de lancer l’installer pour que l’installation et le lancement du processus en tache de fond soit effectué (procédure testé sous Windows 7).

Installation des noeuds sous MacOS

Si vous avez à surveiller des machines sous Mac OS X, il va falloir mettre un peu plus les mains dans le cambouis. En effet, il faut obligatoire passer par l’installation des gestionnaires de paquets Fink ou MacPorts. Je vous conseille la lecture du Wiki officiel.

Configuration des plugins sur les machines noeuds

Nous allons voir dans cette sections comment configurer ce que l’on souhaite superviser sur les machines noeuds. Munin utilise le fichier  /etc/munin/plugin-conf.d/munin-node (ainsi que tous les fichiers se trouvant dans le même répertoire) pour configurer les paramètres des plugins (bien souvent de simples script Perl).

Le répertoire /etc/munin/plugins/ contient la liste des plugins utilisables par la machine noeud et le répertoire /usr/share/munin/plugins/ l’ensemble des plugins. En y regardant de plus prêt, le répertoire  /etc/munin/plugins/ fait des liens symboliques vers le répertoire /usr/share/munin/plugins/.

Pour voir la liste des plugins disponibles sur le noeud, on peut utiliser:

# sudo munin-node-configure

Exemple de l’ajout des plugins NGinx (permettant de surveiller un serveur Web NGinx) sur un noeud:

Pour faire prendre en compte un nouveau plugin sur un noeud (node) il faut faire un lien symbolique entre le fichier en question dans ce répertoire et /etc/munin/plugins/. Par exemple pour accéder aux stats de mon serveur NGinx:

sudo ln -s /usr/share/munin/plugins/nginx_status /etc/munin/plugins/nginx_status

sudo ln -s /usr/share/munin/plugins/nginx_request /etc/munin/plugins/nginx_request

Il est quelquefois necessaire d’installer des dependances pour que le plugin fonctionne.

Pour voir les dépendances nécessaire il suffit de saisir la commande:

sudo munin-node-configure --suggest | grep nginx

nginx_request | yes | no [LWP::UserAgent not found]

nginx_status | yes | no [LWP::UserAgent not found]

Il faut donc installer la librairie perl contenant le module LWP qui est présente dans le package libwww-perl sur Debian/Ubuntu:

sudo apt-get install libwww-perl

Cela a l’air OK:

sudo munin-node-configure --suggest

nginx_request | yes | yes

nginx_status | yes | yes

On peut faire prendre en compte la configuration par Munin-node:

sudo /etc/init.d/munin-node restart

Configuration du maître pour prendre en compte les machines noeuds

Une fois toutes vos machines noeuds configurés (voir le chapitre précédant), il faut maintenant modifier la configuration du serveur maître pour les prendre en compte. Là encore, fidèle à la philosophie Unix, la configuration est centralisé dans le fichier /etc/munin/munin.conf.

En plus des répertoires systèmes en début de fichier:

# The next three variables specifies where the location of the RRD

# databases, the HTML output, logs and the lock/pid files. They all

# must be writable by the user running munin-cron. They are all

# defaulted to the values you see here.

#

dbdir /var/lib/munin

htmldir /var/cache/munin/www/

logdir /var/log/munin

rundir /var/run/munin

Il faut configurer la liste des noeuds de la manière suivante:

# A simple host tree for mondomaine.com

[maitre.mondomaine.com]

address 127.0.0.1

[noeud1.mondomaine.com]

address noeud1.mondomaine.com

[noeud2.mondomaine.com]

address noeud2.mondomaine

Reste à relancer le serveur Munin pour prendre en compte la configuration:

su - munin --shell=/bin/bash

/usr/share/munin/munin-update

exit

En faisant pointer un navigateur Web vers l’URL:

http://votreserveurdesupervision/munin

Puis par exemple les graphes sur l’occupation mémoire:

Pour voir une démonstration en ligne des capacités de Munin, vous pouvez consulter ce serveur maître qui est en accès libre.

Plus de plugins ?

Un des gros avantage de Munin est le fait de pouvoir simplement écrire de nouveaux plugins en utilisant votre langage favori (nous reviendrons bientôt sur ce sujet dans un prochain billet).  Pas mal d’exemples sont proposés  dans le dépôt GitHub suivant (vous devriez trouver votre bonheur).
Catégories
Open-source Planet-libre Systeme

Script de post installation de Mint 12 (aka Lisa)

L’utilisation par défaut de l’environnement Unity dans la dernière version d’Ubuntu (la 11.10) a beaucoup fait parler d’elle dans le petit monde des utilisateurs GNU/Linux. En effet, cette nouvelle interface demande à l’utilisateur une période d’adaptation pour retrouver ses marques. Personnellement, j’ai dans un premier temps renoncé à l’utiliser sur mon PC personnel mais pas pour cette raison. Comme j’utilise des distributions diverses et variées (Debian, Fedora, Ubuntu, BSD…), je souhaite avoir un environnement similaire entre tous ces systèmes. Comme Unity est seulement utilisée dans l’écosystème Ubuntu, je me suis penché sur Gnome 3 (Gnome Shell) et je l’ai donc installé puis configuré sur mon Laptop perso.

Aujourd’hui sort Mint 12 (« Lisa »), une distribution GNU/Linux basée sur Ubuntu (11.10) mais avec Gnome Shell comme environnement graphique par défaut. J’ai donc installé cette distribution sur une de mes machines et je dois avouer que j’ai été assez bluffé par le degré et la maturité d’intégration de Gnome Shell.

J’en ai également profité pour écrire un script de post installation qui permet de peaufiner le système en installant des logiciels manquants (voir la liste ici) et en améliorant encore un peu plus Gnome Shell (installation de thèmes et d’icônes supplémentaires).

Le script est disponible sur le repo GitHub (lien direct pour le téléchargement).

Pour exécuter le script sur une Mint fraichement (hahaha) installée:

[cc lang= »bash »]
mkdir ~/install
cd ~/install
wget https://raw.github.com/nicolargo/ubuntupostinstall/master/mint-12-postinstall.sh
chmod a+x mint-12-postinstall.sh
sudo ./mint-12-postinstall.sh
[/cc]

Voici le résultat:

Je suis bien sûr preneur de toutes les remarques sur le script. Vous pouvez également contribuer à son évolution en suivant ce tutoriel.

Avec quelques jours de recul, je pense le plus grand bien de cette distribution, elle apporte une cohérence et une continuité au niveau de l’interface graphique que l’on ne retrouve pas (ou plus) chez Ubuntu.

Avez-vous essayé Mint ? Qu’en pensez-vous ?

Catégories
Open-source Planet-libre Systeme

Que faire après l’installation de Ubuntu 11.10 ?

Je viens de finaliser l’installation sur mon PC portable perso (le pro reste sous Debian Stable) de la toute dernière version d’Ubuntu Desktop: Oneiric 11.10. Voici donc les actions que j’ai suivi pour en faire mon système maison.

Le script de post-install

Comme j’aime partager, j’ai mis sur mon GitHub la version du script de post install pour cette version d’Ubuntu. Pour l’installer  et l’executer sur un système fraichement installé, il suffit de  lancer les commandes suivantes:

[cce]

wget https://raw.github.com/nicolargo/ubuntupostinstall/master/ubuntu-11.10-postinstall.sh

chmod a+x ubuntu-11.10-postinstall.sh

sudo ./ubuntu-11.10-postinstall.sh

[/cce]

Il faut être patient car le script prend un certain temps à s’exécuter…

Que va faire ce script ?

  • Installer une liste impressionnante de logiciels que je trouve utile (la liste se trouve ici). Libre à vous de modifier le script pour l’adapter à vos besoins. On peut citer Dropbox, Google Earth, Jupiter (pour les PC portables)…
  • Installer Gnome Shell (Gnome 3) car je n’arrive pas à me faire à Unity (je suis sûrement trop vieux).
  • Installer un thème pour ce même Gnome Shell.
  • Faire quelques configurations systèmes (remettre les icônes d’agrandissement et de réduction des fenêtres, passer la barre de notification dans celle du haut, ajout d’alias dans le .bashrc…).

A noter que pour finaliser l’installation de Dopbox, il faut lancer l’application après la fin du script.

Configuration à la mimine

Il reste maintenant à mener des actions qui ne sont pas automatisable par le script de post install.

Update: les 2 premières étapes sont maintenant automatisées par le script (merci à Makidoko).

Etape 1 – On passe sous Gnome Shell

Après un bon petit reboot, vous allez normalement arriver sur le gestionnaire LightDM ou il faudra sélectionner GNOME (Gnome Shell) comme interface utilisateur en lieu et place d’Ubuntu (UNITY).

Devant vos yeux ébahis, vous devriez avoir l’interface Gnome Shell par défaut.

Etape 2 – On change de (Gnome) thème

Pour sélectionner un thème plus agréable à ces mêmes yeux, il suffit de lancer l’utilitaire Gnome Tweak Tool:

  • d’appuyer sur la touche SUPER (Windows) de votre clavier
  • entrer « gnome tweak tool » dans la zone de recherche
  • cliquer sur l’icône Advanced Settings

Puis quand le logiciel est lancé, il faut se rendre dans le menu Shell Extensions et activer le plugin User Themes Extension qui va prendre en compte les thèmes qui se trouve dans le répertoire $HOME/.themes.

Il faut ensuite relancer Gnome Tweak Tool puis aller dans le menu Theme et sélectionner Faience. En bonus, j’utilise les icônes Faenza-Dark.

Etape 3 – On configure sa barre de lancement

Ici c’est affaire de goût, personnellement, j’ai les applications suivantes:

  • Chromium, the navigateur Web (même si il m’arrive d’utiliser Firefox en //)
  • Terminator, parce que les lignes de commandes il n’y a rien de mieux
  • VLC, c’est français, léger, rapide, complet… Le top du multimédia
  • Shutter, pour faire de beaux screenshots
  • Spotify car ma musique est virtuelle

Voila un petit aperçu final:

Et de votre coté, vous avez switchés vers la 11.10 ? Cela donne quoi ?

Catégories
Developpement Open-source Planet-libre Systeme

MySQL Cluster – Installation 3/5

Ce billet est le premier d’une série de 5 articles sur Cluster MySQL écrite par Rémy Verger(auteur invité).

Je rappelle que ce billet est le second d’une série de 5 billets:

1. Introduction

2. Concepts de base de MySQL Cluster / Configuration simple-multi serveurs

3. Installation

4. Demarrage du MySQL Cluster

5. Commande d’administration

Il est préférable de télécharger directement les paquets sur le site officiel de MySQL.

Dans notre cas nous utiliserons une distribution CentOS 6.0 avec les paquets RedHat Cluster Suite . On commence donc par téléchargez les paquets suivant :

MySQL-Cluster-gpl-client-7.1.15a-1.rhel5.x86_64.rpm

MySQL-Cluster-gpl-tools-7.1.15a-1.rhel5.x86_64.rpm

MySQL-Cluster-gpl-storage-7.1.15a-1.rhel5.x86_64.rpm

MySQL-Cluster-gpl-shared-7.1.15a-1.rhel5.x86_64.rpm

MSQL-Cluster-gpl-management-7.1.15a-1.rhel5.x86_64.rpm

MySQL-Cluster-gpl-server-7.1.15a-1.rhel5.x86_64.rpm

On les installe avec la commande suivante:

[cce lang= »bash »]

rpm-ivh mysql-cluster-gpl-*

[/cce]

Je vous conseille de faire l’installation pas à pas. Si jamais lors de l’installation des paquets, vous rencontrez une erreur similaire a celle ci :

Vous devez désinstaller la librairie qui pose soucis . Car elle corrompt les paquets de MySQL-Cluster .

Serveur de management

Dans un premier temps il est préférable de commencer par les serveurs de management, il s’agit de la même configuration sur les deux, avec la même installation de paquet.

Nous devons créer config.ini dans le répertoire /var/lib/mysql-cluster qui permettra le chargement des fichiers de configuration pour le Cluster. On ajoute des directives de configuration suivantes dans le fichier.

[cce lang= »bash »]

# vim /var/lib/mysql-cluster/config.ini

[NDBD DEFAULT]

NoOFReplicas=2

LockPagesInMainMemory=1

DataMemory=4000M

IndexMemory=768M

ODirect=1

NoOfFragmentlogFiles=300

MaxNoOfConcurrentOperations=100000

TimeBetweenGlobalCheckpoints=1000

TimeBetweenEpochs=200

DiskCheckpointSpeed=5M

DiskCheckpointSpeedInRestart=50M

RedoBuffer=16M

MaxNoOfTables=9096

MaxNoOfAttributes=10000

MaxNoOfExecutionthreads=4

MaxNoOfOrderedIndexes=5000

[MYSQLD DEFAULT]

[NDB_MGMD DEFAULT]

[TCP DEFAULT]

SendBufferMemory=8M

ReceiveBufferMemory=8M

[NDB_MGMD]

NodeId=1

HostName=12.0.1.10

[NDB_MGMD]

NodeId=2

HostName=12.0.1.11

[NDBD]

NodeId=3

HostName=12.0.1.30

[NDBD]

NodeId=4

HostName=12.0.1.31

[MYSQLD]

Hostname=12.0.1.20

[MYSQLD]

Hostname=12.0.1.21

[/cce]

Il faut que les deux serveurs de management possède exactement le même fichier de configuration, si vous êtes sous CentOS et que vous n’avez jamais touché a la configuration du parefeu, pensez a le désactiver.

[cce lang= »bash »]

# chkconfig iptables off

[/cce]

Serveurs SQL et serveurs de nœud

Il vous faut installer les mêmes paquets sur ces quatres autres machines, et elles possèdent toutes le même fichier de configuration /etc/my.cnf

[cce lang= »bash »]

# vim /etc/my.cnf

[client]

port=3306

socket=/var/lib/mysql/mysql.sock

[MYSQLD] # Options du processus mysqld

ndbcluster # Fonctionne en mode NDB

ndb-connectstring=12.0.0.100 # Situation du noeud MGM

[MYSQL_CLUSTER] # Options pour le processus ndbd

ndb-connectstring=12.0.0.100 # Situation du noeud MGM

[/cce]

Sur les serveurs SQL pensez a utiliser la commande :

[cce lang= »bash »]

# mysql_secure_installation

[/cce]

Elle permet de donner un mot de passe par défaut a votre serveur SQL, ainsi que l’accès a distance .

Catégories
Open-source Planet-libre Systeme Web

Installer et maintenir à jour Chromium sur Mac OS X

Cela faisait longtemps que je n’avais pas écrit un billet sur Mac OS X, il faut avouer que le MBP de la maison est souvent dans les mains de ma compagne. J’ai donc profité de ce week-end en solo pour jouer un petit peu avec la bête.

Après 5 minutes d’utilisations de Safari, j’ai décidé d’installer Chromium, mon navigateur dans le monde GNU/Linux. C’est alors que je me suis rendu compte que Google ne faisait pas une grosse pub pour ce navigateur libre sous Mac OS X, il préfère mettre en avant Google Chrome, on peut comprendre pourquoi…

J’ai donc décidé de regarder du coté des scripts d’installation et après quelques tests infructueux, j’ai décidé d’en écrire un qui à une double utilité: installer et maintenir à jour la dernière version de Chromium.

Le script est disponible sur le GitHub suivant: https://github.com/nicolargo/chromium-on-mac

Pour tester le script sur votre Mac, il suffit d’ouvrir un terminal et de saisir les commandes suivantes:

curl -L https://raw.github.com/nicolargo/chromium-on-mac/master/chromium-on-mac.sh > ./chromium-on-mac.sh
chmod a+x ./chromium-on-mac.sh
./chromium-on-mac.sh

Vous devriez ensuite avoir la dernière version de Chroium disponible dans vos applications: CTRL + ESPACE / Chromium.

Catégories
Open-source Planet-libre Reseau Web

Installation de Zimbra Collaboration Server 7

Zimbra est une suite collaborative regroupant des fonctions de messagerie (IMAP et POP), de gestion de vos contacts, de calendrier, de partage de documentations (voir la liste complète des fonctions ici). L’éditeur de cette suite à la très bonne idée de diffuser une version open-source de cette suite qui s’appelle Zimbra Collaboration Server Open-Source édition.

Benjamin Carion, de la société Absystech vient de me faire parvenir une documentation d’installation qui servira de complément au wiki officiel. Elle détaille une installation de la version 7 de la suite sur une distribution Ubuntu 10.04 LTS.

Cette documentation est disponible sous deux formats: PDF et MediaWiki. Il suffit de cliquer sur le format de votre choix pour lancer le téléchargement.

Si vous voyez des erreurs ou des compléments à apporter à cette procédure, n’hésitez pas à laisser un commentaire un peu plus bas.

Merci beaucoup à Benjamin pour le partage, c’est aussi cela la forme des logiciels libres.

Catégories
Open-source Planet-libre Web

Remplacer Google Analytics par Piwik

Pour rebondir sur le billet des administrateurs du Planet Libre, voici une rapide, mais néanmoins efficace, procédure pour remplacer le propriétaire Google Analytic (bouh !) par le libre Piwik (houra !).

Piwik est un service Web permettant d’afficher un tas de statistique sur qui fait quoi sur votre site / combien de temps, combien de fois… Bref un vrai big brother perso !

Cette procédure est honteusement inspirée de la procédure officielle et adaptée à l’analyse de mon blog sous WordPress.

On commence par préparer le terrain…

Il vous faut:

  • un serveur Web (Apache ou autre NGinx)
  • un base de donnée (MySQL)
  • un accès FTP ou mieux: SSH

Nous partons sur l’hypothèse ou Piwik est installé sur la même machine que le site à superviser. Si ce n’est pas le cas, le seul changement à faire sera dans la configuration de la base de donnée en remplaçant localhost par % (qui est un alias pour tout les sites…).

On créé la base de donnée MySQL nommé piwik, accessible depuis la machine locale (localhost) et seulement par celle-ci à partir d’un utilisateur MySQL nommé piwik (très original je sais). Voici le déroulement de ces actions à partir de PHPMyAdmin:

Installation de Piwik

On se connecte sur notre serveur en SSH, puis on va dans l’arborescence on se trouve notre serveur Web (par exemple /var/www):

cd /var/www

puis on saisit les commandes suivantes:

wget http://piwik.org/latest.zip

unzip latest.zip

rm latest.zip How\ to\ install\ Piwik.html

Si votre serveur http://monbeausite.com/ pointe sur /var/www alors il suffit de saisir l’URL http://monbeausite.com/piwik/ pour continuer l’installation via l’interface Web.

Celle-ci va se dérouler en 9 étapes:

On commence par vérifier les pré-requis systèmes de votre serveur:

Perso je suis tombé sur le message d’erreur suivant que j’ai corrigé en saisissant la commande donnée:

chmod a+w /var/www/piwik/config

On passe ensuite à la configuration de la base de donnée. Il faut saisir les paramètres par rapport à la configuration faite dans le premier chapitre. Dans mon cas, j’ai du remplacer le 127.0.0.1 par localhost (pas trop compris pourquoi…).

Ensuite on entre le nom, le mot de passe et le mail de l’administrateur (c’est avec ce compte que l’on pourra se connecter à l’interface Web). Je vous conseille de donner un compte/mot de passe différent que celui affecté à la base de donnée…

On passe ensuite au paramétrage du site que l’on souhaite analyser:

Piwik va automatiquement générer le code Javascript à insérer dans vos pages HTML:

Dans le cas d’un blog sous WordPress, il suffit d’ajouter le code dans le fichier footer.php de votre thème (juste avant la balise /body):

Il ne reste plus qu’a attendre un peu que les visites sur votre site soit prise en compte dans la base de donnée Piwik puis de se rendre sur l’URL http://monbeausite.com/piwik pour voir vos statistiques:

Optimisation de Piwik

Si votre site génère plus de 500 visites par jour, il est conseillé de suivre cette procédure pour optimiser le traitement des données.

Dernière étape et non des moindres: supprimer le code JavaScript de Google Analytics 🙂

Et voilà le travail !