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

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 Open-source Planet-libre Web

Booster votre site n’est pas qu’un truc de geek

Depuis la généralisation des accès hauts débits sur Internet, la rapidité de chargement d’un site est devenu un critère important à prendre en compte dès la phase de conception.

Les moteurs de recherche (Google, Yahoo, Bing…) incluent dans leurs algorithmes la vitesse d’affichage de votre site. Ainsi, Google considère qu’une page est lente si elle met plus de 4.97 secondes pour se charger. La rapidité de chargement aura donc un impact plus ou moins important (difficile d’avoir des chiffres précis) sur le référencement de votre site.

Une étude a montrée qu’un utilisateur venant sur votre site à partir d’un moteur de recherche aura une patience d’environ 4 secondes. Au delà de cette valeur le taux d’abandon devient important.

Bref, vous l’avez compris, le temps de chargement des pages est un paramètre tout aussi important que le design quand vous mettez un site en ligne.

Je me suis penché sur ce sujet lors de conception de la nouvelle version du blog de Nicolargo. Il en ressort quelques billets ciblés sur les problèmatiques de performances des blogs WordPress (basée sur des solutions libres bien sûr :)):

Au niveau des outils de tests, le Web fourmille de service en ligne. Attention lorsque vous faite vos tests de choisir des URL représentatives (pas seulement un test sur votre Home page qui ne représente que 1% de vos visiteurs…). Personnellement, j’utilise surtout:

  • GTMetrix qui permet d’automatiser le test de votre site en calculant automatiquement les valeurs Y-Slow, Page Speed.
  • WebWait: très utile pour tester les modifications que vous faites sur votre site et en mesurer l’impact en terme de vitesse de chargement.
  • Apache Benchmark (ab pour les intimes): un outil libre sous licence Apache permettant de tester la montée en charge de votre site (c’est à dire comment votre site va réagir quand beaucoup d’utilisateurs vont le consulter simultanément). Un exemple de ligne de commande que j’utilise en local sur mon serveur:

ab -t 30 -c 5 http://blog.nicolargo.com/2010/10/booster-votre-blog-wordpress-avec-varnish.html

Requests per second:    578.10 [#/sec] (mean)

Time per request:       8.649 [ms] (mean)

Time per request:       1.730 [ms] (mean, across all concurrent requests)

Transfer rate:          329.82 [Kbytes/sec] received

Et vous blogueurs, webmasters, comment prenez-vous en compte la problématique de rapidité d’affichage de vos pages ?

Catégories
Blog Web

Blog, wiki ou forum ?

blog-site-forum.png

Avant l’arrivée de la blogosphère dans le monde de l’Internet (j’adore écrire ce genre de phrase), vous me croirez si vous le voulez, mais le web étaient majoritairement composé d’objets étranges nommés sites et forums…

En consultant les statistiques d’accès à mon blog, force est de constater que les billets de types « tutoriaux » drainent le plus de visiteurs et génèrent le plus de commentaires. Or ces billets sont un peu des ovnis dans le monde des blogs. En effet un blog ne permet pas de structurer facilement un tutorial comme on peut le faire sur un site Web « classique » ou encore mieux un Wiki. D’un autre coté, la gestion des commentaires n’est pas adaptée quand ces derniers sont longs ou nombreux et il n’est, pour l’heure, pas facile d’y insérer des éléments autres que du texte et des liens. Les forums ont donc ici une longueur d’avance.

Alors me direz-vous, à quoi bon entretenir un blog comme le mien alors que d’autres moyens seraient plus efficaces ?

J’ai, au commencement, créé ce blog pour partager mes notes (le terme est important) dans le domaine de l’open-source. De fil en aiguille les technologies de blogging, l’actualité du Web 2.0 et d’autres sujets qui me tiennent à coeur sont venus l’enrichir. Je pense que la grande force du blog par rapports aux autres sites est là: sa capacité intrinsèque d’évolution.

Je reste cependant convaincu que les blogs doivent coexister avec d’autres formes de présentations et qu’ils complètent parfaitement les wikis et les forums. Je garde d’ailleurs comme projets de créer un Wiki regroupant les tutoriaux les plus intéressants et un forum sur les sujets gravitants autours de l’open-source.

Je suis sûr que je ne suis pas le seul à m’être posé se genre de question. Quels sont vos avis ?

Catégories
Blog Developpement Web

Un effet d’ombre pour votre blog

Depuis la création de mon thème, je trouvais que les pages ne se détachaient pas assez du fond d’écran du blog. J’ai donc décidé de mettre en place un effet d’ombre come on peut le trouver sur de nombreux sites et sur les dernières versions des systèmes d’exploitations.

  
Avant – Aprés

Voici comment j’ai procédé. Il faut dans un premier temps créer une image qui servira de base à votre fond d’écran. Cette image dépend des dimensions de votre blog. L’image ci-dessous correspond à une ombre pour un site dont la page fait 800 pixels de large avec une couleur de fonds blanc cassé (code #EEEEEE).

Il faut ensuite éditer votre feuille de style et modifier la section « body » de la manière suivante:

body {
background-color: #EEEEEE;
background-position: center top;
background-repeat: repeat-y;
background-image: url(images/ombre.gif);

Je trouve le résultat assez sympathique, le contenu étant plus lisible.

Catégories
Blog Web

Tester son site sous IE

IE vs FirefoxEncore un site pour tester son site sous IE si comme moi vous n’avez pas accès à une machine sous Windows. Il faut se rendre sur le site suivant: IPNetRenderer, choisir la version d’IE à tester (7, 6 ou 5.5), saisir l’URL à tester et cliquer sur le bouton « Render ». Quelques secondes plus tard, l’image de la visualisation d evotre site sur le navigateur testé est affiché.

Par rapport aux autres sites (voir article sur ce sujet), IE NetRenderer se détache par sa rapidité de traitement (moins de 20 secondes lors de mes tests).

PS: j’ai ainsi remarqué que IE a une interprétation bien particulière des normes CSS…

Catégories
Blog Web

Des sites pour choisir les couleurs…

… de vos sites, blogs, logiciels, documents… Si comme moi vous aviez toujours en dessous de la moyenne en dessin au collège (tient cela existe encore ou pas cette matière ?), que vous ne comprenez pas que « le beige et le bleu ne vont pas bien » ensemble, enfin si vous n’êtes pas un Monnet ou un Picasso en puissance, il exite heureusement des sites pour vous aidez à choisir vos palettes de couleurs. J’en ai retenu 3 (cliquez sur les images pour aller visiter les sites).

Steel dolphin creative

C’est le moins complet des 3, il ne propose pas de palettes enregistrées par d’autres utilsateurs. Il permet par contre simplement, à partir d’une couleur que vous lui fournissez, de connaître les couleurs complémentaires.

Site couleur 1

Kuler

Proposé par Adobe, c’est un outil qui se veut complémentaire à Photoshop&Co. Il propose de visionner des palettes concues par d’autres Internautes (pour les fans on peut même s’abonner aux flux RSS…). On peut également faire une palette étape par étape. Très pratique et bien fait.

Site couleur 2

Colourlovers

Peut être le plus complet des 3. Il permet comme Kuler de visionner des palettes d’autres utilisateurs et également de concevoir la sienne.

Site couleur 4

Bon moi je retourne au design de mon blog… (je comprend pas pour le beige et le bleu).

Catégories
Blog Open-source

Images et photos gratuites pour votre blog

Voici une liste utile de différents sites offrant des images libre de droit pour illustrer vos articles. Je me suis basée sur un article du blog de Lorelle et j’ai sélectionné les sites les plus pertinents (c’est-à-dire vraiment gratuit (tout au moins pour une qualité web), avec un moteur de recherche et qui donne des résultats…).

Deviantart

Donc sans plus attendre la liste:

Si vous avez de bonnes adresses n’hésitez pas à laisser un commentaire, je tiendrais la liste à jour.

Catégories
Web

Site sur la photo numérique…

… je ne fais pas beoucoup de pub pour d’autres sites, mais là je viens de tomber sur le portail des passionnés de la photo numérique (http://www.virusphoto.com/) et je dois avouer que je cherchais un site comme celui-ci depuis un moment. Simple, clair, avec de bons tutos, bref le paradis 🙂

Virus photo

A voir de toute urgence.