Installer et configurer Munin
... sur une debian.
Aujourd'hui on va voir comment installer et configurer l'outil de monitoring munin
Un petit article aide mémoire comme beaucoup d'autres sur ce blog :)
pour commencer :
apt-get install munin munin-node |
en suite il faut éditer le fichier de configuration : /etc/munin/munin.conf
changer juste la valeur de htmldir pour choisir un répertoire où les fichiers html des rapports seront déposés, pour moi c'est sous un vhosts de statistiques, exemple :
htmldir /var/www/munin |
vous pouvez aussi laisser la valeur par défaut.
un autre fichier de configuration pourrait vous intéresser, personnellement je n'ai pas eu a le toucher : /etc/munin/munin-node.conf
Important : Assurez vous que le répertoire "htmldir" choisi plus haut soit accessible en écriture a l'utilisateur munin (sinon le cron vous bombarde de mails pas cool), moi j'ai fait un :
chown -R munin:www-data MON/HTML/DIR/DE/MUNIN |
maintenant on restart tout ça :
/etc/init.d/munin-node restart |
quelques minutes après (le temps de générer quelques stats) on va a l'url correspondant au htmldir et on admire les garphs :)

Lighttpd vs Apache vs Lighttpd + Apache
Il fut un temps où on ne se posait pas de question quant au serveur web, on prend Apache et on en parle plus, aujourd'hui les choses ont changé, Apache reste quand même le plus utilisé avec plus de 66% des parts de marché, suivi par IIS, puis tous les autres "petits" derrière, néanmoins en fonction des besoins, certains de ces petits peuvent s'avérer bien plus performants qu'Apache, aujourd'hui on va tester 3 configurations possibles avec Apache et Lighttpd.
d'après ce qu'on peut lire un peu partout sur le net, Lighttpd (lighty pour les intimes) est beaucoup plus performant quand il s'agit de servir des pages statiques, mais qu'en est-il vraiment ? et comment s'en sort-il avec le contenu dynamique ? (des sites statiques ça n'existe plus de nos jours ^^).
pour notre test, on va prendre un site très léger, basé sur Zend framework (donc loin d'être statique), contenant une page qui affiche 9 images au hasard a partir d'une tables mysql contenant environ 1000 enregistrements (seulement les emplacement des images sont stockés dans la base). Le serveur de test est un kimsufi L (petit processeur et 1Go de RAM).
versions utilisées :
Apache 2.2.9
Lighttpd 1.4.19
PHP 5.2.6
pour les tests on utilise siege, on lance donc un siege avec 100 concurrency sur 10 minutes, voici la commande :
siege -c100 -t10M URL_DU_SITE |
on note également le Load average de la machine a la fin de l'opération.
1ère configuration : Lighttpd tout seul
voici le resultat :
Load average : 4.87 Lifting the server siege... done. Transactions: 23859 hits Availability: 100.00 % Elapsed time: 600.37 secs Data transferred: 83.25 MB Response time: 2.02 secs Transaction rate: 39.74 trans/sec Throughput: 0.14 MB/sec Concurrency: 80.21 Successful transactions: 23859 Failed transactions: 0 Longest transaction: 5.20 Shortest transaction: 0.10 |
2ème configuration : Apache2 tout seul
le résultat :
Load average : 77.51 Lifting the server siege... done. Transactions: 23543 hits Availability: 100.00 % Elapsed time: 599.66 secs Data transferred: 82.16 MB Response time: 2.04 secs Transaction rate: 39.26 trans/sec Throughput: 0.14 MB/sec Concurrency: 80.22 Successful transactions: 23543 Failed transactions: 0 Longest transaction: 10.51 Shortest transaction: 0.05 |
3ème configuration : Lighttpd + Apache
maintenant faisons le test en couplant les 2, dans cette configuration tout ce qui est statique (images, css, js, etc.) sera servi par lighty alors que les scripts php eux, seront traités par apache, pour cela on active le mod_proxy dans lighty, et on ajoute le code suivant dans le vhost de notre site :
$HTTP["url"] !~ "\.(js|css|gif|jpg|png|ico|txt|swf|html|htm)$" { proxy.server = ( "" => ( ( "host" => "127.0.0.1", "port" => 8080 ) ) ) } |
vous l'aurez compris, Apache écoute sur le port 8080 (c'est fait en changeant le fichier /etc/apache2/ports.conf).
voici le résultat :
Load average : 14.79 Lifting the server siege... done. Transactions: 22684 hits Availability: 100.00 % Elapsed time: 600.25 secs Data transferred: 79.10 MB Response time: 2.13 secs Transaction rate: 37.79 trans/sec Throughput: 0.13 MB/sec Concurrency: 80.53 Successful transactions: 22684 Failed transactions: 0 Longest transaction: 8.61 Shortest transaction: 0.07 |
plutôt surprenant !
Conclusion :
Lighty s'en sort très bien au vu des transactions/s (ou le nombre total de transactions traitées), contrairement a ce qu'on pouvait attendre, coupler les 2 nous fait perdre en performances (on enregistre quand même un load average nettement inférieur a la config d'apache tout seul).
personnellement ce que je retiens, c'est que lighty n'est pas si mauvais que ça pour le contenu dynamique, les performances restent quand très proches dans les 3 cas, donc autant utiliser la solution qui nous plait :-)
Partager un répertoire Windows avec VirtualBox
Dans cet article nous allons voir comment partager, facilement, un répertoire Windows avec une machine virtuelle sous VirtualBox.
Tout d'abord, précisions l'environnement :
Il s'agit d'un système Hôte sous Windows XP, nous installons dessus le logiciel VirtualBox, et dans ce dernier nous créons une machine virtuelle tournant sous Linux (Systême guest).
Pour commencer il faut installer les additions client pour notre VirtualBox, pour cela je vous renvoie à notre article : Additions client pour VirtualBox.
Une fois les additions client installées, procédons comme suit :
- Sélectionner la machine virtuelle est cliquez sur "Répertoires Partagés"
- Cliquez sur le "+" (PLUS) a droite de la fenêtre qui s'ouvre et sélectionner un répertoire à partager, vous pouvez lui donner un nom
- Valider et démarrez votre machine virtuelle
Maintenant, nous allons voir comment monter le partage du coté de notre système guest (Linux), pour cela, exécutez la commande suivante :
mount -t vboxsf NOM_PARTAGE POINT_MONTAGE |
où :
NOM_PARTAGE est le nom que vous avez donné à votre répertoire partagé lors de sa sélection.
POINT_MONTAGE est le point (répertoire, ou encore emplacement) dans la machine virtuelle dans lequel vous voulez monter le répertoire.
voici un exemple avec un partage nommé Downloads :
mount -t vboxsf Downloads /mnt/downloads |
Installer libssh2, ssh2 pour php
Dans cet article nous allons voir comment installer l'extension ssh2 pour php5, cette extension permet l'utilisation de fonctionnalités SSH2 avec php (très utiles quand on veut faire du SFTP par exemple) pour plus d'informations cf. la documentation officielle sur php.net
Pour l'installation, ce n'est pas très compliqué, il suffit de suivre ces quelques étapes à la lettre et tout ira très bien ;-)
tout d'abord il faut s'assurer d'avoir les bons paquets d'installés, en voici une liste :
- php5-dev
- openssl
- libssl-dev
- gcc
- make
- etc. je suppose que si vous installez cette extension, c'est que vous avez déjà php, apache etc.
Toute la suite s'effectue en root
mais avant toute chose, n'oublions pas de faire un petit :
apt-get update apt-get upgrade |
en suite il faut créer un répertoire de travail :
cd ~ mkdir libssh2 cd libssh2 |
ensuite télécharger libssh2 :
wget http://ovh.dl.sourceforge.net/sourceforge/libssh2/libssh2-0.14.tar.gz |
puis l'extraire :
tar -xzvf libssh2-0.14.tar.gz |
aller dans le répertoire créé et installer libssh2 :
cd libssh2-0.14 ./configure && make all install |
maintenant que libssh2 est installée, passons a ssh2 :
on sort du repertoire de libssh2 et on télécharge ssh2 :
cd .. wget http://pecl.php.net/get/ssh2-0.10.tgz |
extraire l'archive téléchargée :
tar -xzvf ssh2-0.10.tgz |
aller dans le répertoire créé et installer ssh2 :
cd ssh2-0.10 phpize && ./configure --with-ssh2 && make |
maintenant que l'installation est terminée, on active l'extension, ici on va copier le fichier ssh2.so dans le répertoire des extension de php5 (il peut être différent du mien selon la distrib et l'installation) :
cp modules/ssh2.so /usr/lib/php5/20060613+lfs |
puis on ajoute l'extension en créant un fichier ssh2.ini dans le répertoire conf.d (comme pour toutes les autres extensions de php) on n'oublie pas de le faire pour apache mais aussi pour le mode CLI.
echo "extension=ssh2.so" > /etc/php5/cli/conf.d/ssh2.ini echo "extension=ssh2.so" > /etc/php5/apache2/conf.d/ssh2.ini /etc/init.d/apache2 restart |
Et voilà, notre extension est installée, a vous ssh2 et sftp avec php :)
Additions client pour VirtualBox
Ici nous allons voir comment installer les additions client sur une virtualbox sous Windows et pour une Debian Etch en guest.
ça parait simple, mais quand on a installé une Debian assez maigre (avec presque rien dessus) la tache ne se résume plus a un simple clic, voici donc ce qu'il faut faire :
la première étape est obligatoire pour nous éviter un message d'erreur du type :
"Please install the build and header files for your current Linux kernel.
The current kernel version is 2.6.17-5mdv
Please install the GNU compiler.
Problems were found which would prevent VirtualBox from installing.
Please correct these problems and try again."
debian-guest:~# apt-get install linux-headers-`uname -r` build-essential |
après il faut aller dans : Périphériques >> Installer les additions client...
retourner dans Debian et faire :
debian-guest:~# cd /media/ debian-guest:~# mount cdrom0 debian-guest:~# cd cdrom debian-guest:~# sh VBoxLinuxAddition-XXXX.run (le XXX c'est la version adm64 ou x86) |
redémarrez les machine virtuelle est ca devrait être bon ;-)