Catégories
Image Open-source Planet-libre Systeme

Mon desktop 201103

C’est le début du mois, encore un billet pour vous montrer mon desktop pro sous GNU/Linux Ubuntu 10.10 post configuré avec mon script ubuntupostinstall.sh.

Voici ce que cela donne sans fenêtre:

et avec:

Les principales caractéristiques

Installer de la combo magique (Equinox Glass + Faenza + Nautilus Elementary)

Je reste fidèle a cette configuration des fenêtres depuis quelques mois, si vous avez mieux je suis preneur !

Equinox Glass est clair, les icônes Faenza sont lisibles et facile à reconnaître et Elementary est pour moi devenu indispensable aux utilisateur de Nautilus:

sudo aptitude install gtk2-engines-equinox equinox-theme equinox-ubuntu-theme faenza-icon-theme

nautilus -q

Pour activer Equinox, il faut aller dans le menu: “Système > Préférences > Apparences > Thème > Equinox Glass“.

Installation de AWN

Si vous suivez cette rubrique, vous avez du vous rendre compte que je suis passé de Docky à AWN. Toutes les explications sont dans ce billet.

Dans mon dock il y a…:

  • Cairo menu
  • Lien vers mes répertoires
  • TodoList
  • Switch écran
  • Barre de lancement rapide (Terminator, Chromium,…)
  • Supervision du CPU
  • Supervision de la température de la carte mère
  • Supervision de la bande passante de mon interface Ethernet
  • La corbeille

A vous de nous montrer vos écrans (par exemple en utilisant http://twitpic.com/) !

Catégories
Gstreamer Open-source Planet-libre Video Web

Un serveur RTSP basé sur GStreamer

Dans le petit monde du streaming vidéo, RTSP est un protocole permettant à un client (lecteur multimédia) de contrôler un serveur (serveur de streaming) en lui envoyant des ordres simples: lire, pause, stop, déplacement temporel (pour avoir une liste des fonctions théoriquement disponibles, vous pouvez lire la RFC 2326). Il est important, pour comprendre la suite de ce billet que le protocole RTSP ne fait pas lui même le streaming vidéo (il utilise pour cela le protocole RTP). RTSP est juste une couche complémentaire permettant de contrôler ce streaming.

Nous allons dans ce billet étudier un serveur basé sur le framework GStreamer. Maintenu par Wim Taymans, un des développeurs de GStreamer, gst-rtsp se compose d’un ensemble de librairies permettant de concevoir simplement son propre serveur RTSP. Pour effectuer des tests, les développeurs fournissent quelques exemples de serveurs.

Installation de gst-rtsp

On commence par récupérer les sources puis à compiler:

mkdir ~/src

cd ~/src

wget http://gstreamer.freedesktop.org/src/gst-rtsp/gst-rtsp-0.10.8.tar.bz2

bzip2 -d gst-rtsp-0.10.8.tar.bz2

tar xvf gst-rtsp-0.10.8.tar

cd gst-rtsp-0.10.8/

./configure

make

Premier streaming RTSP: la mire

On commence par lancer le serveur de test qui va streamer une mire:

cd examples/

./test-readme

Le serveur est maintenant lancé, en écoute sur le port TCP/8554 et l’URL: rtsp://127.0.0.1:8554/test

Note: si vous lancer le client sur une autre machine il faut bien sur remplacer 127.0.0.1 par l’adresse IP (ou le nom d’hôte) de votre serveur.

Si on regarde le code C de ce premier serveur (./test-readme.c), on peut retrouver la pipeline GStreamer qui va s’occuper de diffuser le flux sur le réseau:

videotestsrc is-live=1 ! x264enc ! rtph264pay name=pay0 pt=96

On a donc la génération de la mire avec videotestsrc, puis un encodage H.264 avec x264enc puis enfant un streaming RTP avec rtph264pay.

Pour lire se genre de flux, on peut utiliser plusieurs logiciels. Le plus « populaire » est le très frenchie VLC. On lance donc le logiciel puis on va dans le menu Média / Ouvrir un flux réseau, puis on entre l’URL: rtsp://127.0.0.1:8554/test

Après quelques secondes, la vidéo devrait s’afficher:

On peut aussi utiliser FFplay (le player basée sur FFmpeg):

ffmplay rtsp://127.0.0.1:8554/test

Ou bien directement une pipeline GStreamer, ce qui ouvre la porte à des post traitements:

gst-launch -v rtspsrc location=rtsp://127.0.0.1:8554/test ! queue ! decodebin ! ffmpegcolorspace ! autovideosink

Il est bien sur possible de lancer plusieurs clients vers la même source RTSP (j’ai testé 3 clients en parallèle).

Une mire c’est bien, un fichier MPEG-4 c’est mieux

Les esprits chagrins vont me dire que pour tester les fonctions de seekink (déplacement temporel) avec une mire ce n’est pas terrible… Nous allons donc streamer une vidéo MPEG-4 (j’ai utilisé le logiciel Avidemux pour produire une vidéo de 640×360 en MPEG-4 ISO à partir d’une source Big Buck Bunny 720p AVI).

On va lancer le serveur avec les commandes suivantes (toujours dans le sous répertoires examples):

./test-mp4 ~/big_buck_bunny_360p_surround.mp4

Lecture à partir de VLC:

On a alors, pour cette vidéo, un flux réseau entre le serveur et le client variant entre 350 et 550 Kbps. Ceci est normal car la pipeline suivante que l’on peut trouver dans le fichier test-mp4.c ne fait en fait aucun transcodage. Comme la vidéo n’a pas été encodé en CBR (constant bit rate) on se retrouve avec des variations de débits:

filesrc location=%s ! qtdemux name=d d. ! queue ! rtph264pay pt=96 name=pay0 d. ! queue ! rtpmp4apay pt=97 name=pay1

Coté occupation CPU du coté client je suis à environ 25% sur un Core 2 à 1.8 Ghz.

Capture réseau

Pour les plus curieux d’entre vous, voici le résultat d’une capture réseau entre mon serveur RTSP (192.168.29.79) et un client (192.168.29.148).

On peut notamment y voir la négociation RTSP avec la liste des fonctions disponibles sur le serveur (OPTIONS, DESCRIBE, GET_PARAMETER, PAUSE, PLAY, SETUP, SET-PARAMETER, TEARDOWN) puis le début du streaming RTP.

Conclusion

Bien qu’en développement, ce projet de serveur RTSP basé sur GStreamer est très stable (je n’ai pas rencontré de plantage lors de mes tests) et facile à intégrer dans un développement en C. Si vous voulez faire mumuse et développer votre propre serveur, je vous conseille la lecture du fichier README qui se trouve dans le sous répertoire docs.

A vos serveurs !

Catégories
Open-source Video Web

Vidéos de Youtube roses sous Ubuntu ?

Si comme moi vous rentrez de vacance et qu’en ouvrant votre navigateur Web les vidéos sous Youtube ont une facheuse tendance à être affichées avec un filtre rose/rouge:

… alors ces deux petites commandes (à saisir dans un terminal) devraient résoudre votre problème:

sudo mkdir /etc/adobe

sudo bash -c « echo ‘OverrideGPUValidation = 0’ >> /etc/adobe/mms.cfg »

Il faut ensuite fermer et relancer sont navigateur pour que la modification soit prise en compte.

Pour information , ce problème vient d’un bug dans Adobe Flash 10.2 (encore lui…).

Source: WebUpd8

Catégories
Nagios Open-source Planet-libre Reseau

Le script de supervision d’Asterisk par Nagios évolue

Grâce à la contribution de Fréderic Jean, le script Perl Nagisk que j’avais développé il y a quelques temps passe en version 1.2. Cette nouvelle mouture apporte les nouveautés suivantes:

  • adaptation du script pour Asterisk version 1.6.13.2
  • modification de la commande pour avoir les informations sur les channels (« core show channels »)
  • ajout de l’option -p pour spécifier un peer

Pour rappel, Nagisk est un plugin pour Nagios permettant de récupérer, via NRPE, des informations sur votre serveur Asterisk (serveur PABX software).

La syntaxe est la suivante:

Syntax: ./nagisk.pl [-hv] [-c OPT] [-s NB|-p NAME]

-c version: Display the Asterisk version

-c peers: Display the SIP peers status

-c peer: Display the status of a particular peer

-c channels: Display the SIP channels status

-c zaptel: Display the status of the zaptel card

-c span: Display the status of a specific span (set with -s option)

-s <span number>: Set the span number (default is 1)

-p <peer name>

-h: Display the help and exit

-v: Display version and exit

Toutes les informations pour télécharger et installer ce script dans Nagios se trouve dans ce billet (mis à jour pour cette version).

Catégories
Blog Open-source Planet-libre

Mise à jour vers WordPress 3.1

WordPress 3.1 vient de sortir. Je vous laisse découvrir les nouveautés sur le site officiel et je me concentre sur la procédure de mise à jour que nous allons voir dans ce billet.

On sauvegarde !

Avant de commencer, un peu de bon sens, ne pas faire de mise à jour quand on est pressé par le temps. Il suffit que quelque chose tourne mal pour qu’une opération de routine ne se transforme en véritable moment de stress…

On sauvegarde la totalité de son blog, c’est à dire:

  • les fichiers statiques de votre serveur Web (contenue intégrale du répertoire WordPress)
  • la base de donnée MySQL

On met à jour

Selon le type d’installation que vous avez faite, vous pouvez mettre à jour directement depuis l’interface Web d’administration (page Updates, pas encore disponible au moment de l’écriture de ce billet) ou bien par SVN (c’est mon cas ou le votre si vous avez suivi mon billet sur l’installation d’un blog WordPress sécurisé).

Si vous voulez transformer une installation standard en une installation SVN, vous pouvez suivre cette section de la documentation officielle de WordPress.

Pour une mise à jour d’une version 3.0.5 vers une version 3.1 par SVN, il faut se rendre dans le répertoire racine de votre blog WordPress puis saisir les commandes suivantes:

svn switch http://core.svn.wordpress.org/tags/3.1/ .

Il faut ensuite se rendre sur l’URL: http://<votreblog>/wp-admin/upgrade.php

On teste

Il faut ensuite tester l’ensemble de votre blog, notamment les sections utilisant des plugins…

Et voilà le travail !

Catégories
Blog Open-source Web

Le panier du marché libre #7

Elle sont belles mes nouvelles, elles sont fraiches, qui veut des nouvelles !?!?!?

Et pour finir une très bonne recette: les spaghettis alla mafiosi (je sais c’est pas dans la ligne éditoriale du blog mais m’en bati sieu Nissart).

Catégories
Open-source Planet-libre Reseau

Calculer la gigue réseau avec des outils libres

Pour certaines applications, notamment la voix sur IP, la variation du délais de transit (aussi appelée gigue) est une des caractéristique les plus importante à étudier avant une installation et à superviser à travers le temps.

Il existe, sur le très juteux marché des outils réseaux pour le système d’informations, un grand nombre de logiciels permettant de calculer cette gigue de manière très précise. Malheureusement, la plupart sont trop chers car ils font beaucoup plus que ce que l’on veut faire.

Nous allons donc aborder dans ce billet deux techniques (mais il en existe d’autres) pour calculer simplement la gigue entre deux points de votre réseau en se basant sur des logiciels libres. Ces deux points pouvant se trouver sur le même réseau LAN ou bien séparés par des réseaux WAN (Internet, VPN dédié…).

Mesure de la gigue en utilisant IPerf

L’avantage de cette première technique est que Iperf est disponible sous Windows. Donc si votre réseau est composé de PC sous cet OS, il n’y aura pas de PC à déplacer pour faire vos tests.

Je pars sur le principe ou vous avez IPerf installé sur les deux postes (#A et B) de chaque coté dur réseau à valider.

Sur le PC #A:

iperf -s -u -i 1

Sur le PC #B:

iperf -c IP-A -u -i 1 -b 64K -t 60

PS: remplacer IP-A par l’adresse IP ou le nom d’hôte de la machine #A.

Par exemple, le résultat (à lire sur la dernière ligne, coté #B) sur ma liaison Internet donne:

[ 3] Server Report:

[ 3] 0.0-60.3 sec 464 KBytes 63.0 Kbits/sec 2.563 ms 5/ 328 (1.5%)

J’ai donc une gigue moyenne de 2.563 ms (pour 1.5% de paquets perdus).

Mesure de la gigue en utilisant SJitter

SJitter est un programme que j’ai développé il y a maintenant quelques années mais qui me sert toujours pour effectuer les mesures de gigue. Contrairement à IPerf, il n’est disponible que sous GNU/Linux.

Pour l’installation, vous avez le choix entre les sources ou un PPA pour Ubuntu.

Sur le PC #A:

sjitters -i

Sur le PC #B:

sjitterc -c IP-A -t 60 -b 64

PS: remplacer IP-A par l’adresse IP ou le nom d’hôte de la machine #A.

Par exemple, le résultat (à lire sur la dernière ligne, coté #A) sur ma liaison Internet donne:

Jitter summary (ms) : Min=0.38 / Max=5.34 / Avg=4.36

J’ai donc une gigue moyenne de 4.36 ms (la liaison était clairement plus chargée au moment de ce test).

Que faire des résultats ?

Il convient, selon vos système de ne pas avoir une gigue supérieure à 30ms (bien que les systèmes de VoIP et de codecs dernières générations accepte des gigue pouvant aller jusqu’à 50ms). Une bonne idée est également de surveiller cette gigue tout au long de l’année (par exemple en écrivant un petit script pour votre serveur Nagios).

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

Sécuriser son blog WordPress #4

Nous voici donc dans le dernier volet de notre saga sur la sécurisation d’un serveur Web hébergeant un blog WordPress. Si vous avez suivi les recommandations des billets précédant vous devriez  avoir un serveur avec un niveau de sécurité acceptable…

La perfection n’existant pas, du moins en sécurité informatique, il est nécessaire d’avoir sous la main les moyens de remonter rapidement votre serveur en cas de piratage.

Je vous rappelle que cet article est découpé en plusieurs billets (vous êtes en train de lire le #4):

Cette série de billets a été co-écrite avec Jérémie Marguerie étudiant à EPITA (un dernier grand merci à lui :)).

Sauvegardes régulières

En effet, quelque soit les moyens que vous aller mettre en oeuvre, votre serveur ne sera jamais protégé à 100%. Il est donc essentiel d’avoir une sauvegarde récente de l’ensemble de votre blog, c’est à dire:

  • vos fichiers statiques (images, videos, fichiers de données…)
  • votre base de donnée SQL
  • une procédure (ou encore mieux un script comme celui-ci) à jour de réinstallation de votre serveur

Voici donc le détail de ces actions.

Sauvegarde des fichiers statiques

J’effectue cette sauvegarde en deux étapes.

1) La première est un backup de l’ensemble de mon répertoire Web (contenant WordPress et les fichiers statiques) sur un deuxième disque qui est attaché à mon serveur virtuel (VPS). Ainsi en cas de crash disque, les données seront disponibles localement. Attention de bien vérifier auprès de votre hébergeur que ce deuxième disque virtuel est bien sur un disque physique différent de celui sur lequel est hébergé votre blog !

J’utilise le logiciel RSnapShot pour effectuer cette tache. J’ai rédigé un billet sur le sujet que vous pouvez consulter ici.

2) La seconde étape est de copier de manière régulière (et si possible automatique) ces sauvegardes sur une autre machine. En effet, si un méchant hackeur pirate votre serveur, il y a de fortes chances qu’il s’en prenne également à vos sauvegardes locales.

Pour cela, j’utilise le service « in the cloud » Dropbox (en attendant un service équivalent basée sur des clients libres). Pour installer et utiliser Dropbox sur un serveur sans interface graphique, vous pouvez suivre cette procédure. J’archive avec une commande tar l’ensemble du répertoire WordPress puis je le copie dans un sous répertoire de ma Dropbox.

Sauvegarde de la base de donnée SQL

J’utilise le plugin WordPress WP-DBManager qui, en plus d’optimiser automatiquement ma base de donnée,  sauvegarde et envoi une archive directement sur mon adresse mail (la fréquence des expéditions est configurable).

Il est également possible d’automatiser une commande mysqldump dans votre crontab systeme et comme les fichiers statiques copier l’archive dans une copie locale et dans votre Dropbox.

Re-installation rapide de son serveur « from scratch »

Ce point est souvent négligé, à tort !

Quoi de plus long que de ré-installer et re-configurer un serveur en production sous la pression du temps… Avoir un script qui reproduit ces étapes de configuration est plus qu’utile en cas de problème : piratage ou bien panne matérielle. En cas de piratage, il faudra évidemment chercher la cause du problème et la résoudre avant de remettre son serveur en ligne et bien entendu modifier tous les mots de passes (système, WordPress, base de donnée SQL…).

Maintenance et supervision

Dans la première partie de cette série de billets, nous avons installé le logiciel cron-apt qui envoie automatiquement un mail quand des mises à jour son disponible pour votre serveur. Il faut bien sûr prendre le temps de lire ces mails et de les traiter le cas échéant.

On peut également installer le logiciel log-watch qui surveiller pour vous les fichiers de log et envoyer automatiquement un rapport par mail. J’ai personnellement laissé tombé ce type de logiciel sur mon serveur personnel car la quantité des informations remontées nécessitait trop de temps pour être interprétée . Dans le même ordre d’idée il y a également logcheck qui permet de recevoir un rapport toutes les heures sur les lignes « anormales » trouvées dans les logs.

aptitude install logcheck

Le fichier de configuration se trouve dans /etc/logcheck/logcheck.conf. La liste des fichiers de log à surveiller dans /etc/logcheck/logcheck.logfiles.

Il faut également surveiller les rootkit (petit programme permettant d’obtenir les droits d’administration de votre serveur en se basant sur des failles connues). Pour cela il faut installer un détecteur de rootkit comme  chkrootkit:

sudo aptitude install chkrootkit

Puis le lancer régulièrement (le plus simple est de le faire par crontab et d’envoyer le résultat par mail).

sudo chkrootkit

A noter que dans la version actuelle de chkrootkit (0.49). Un faux positif est détecté sous Ubuntu 10.04 LTS dans le fichier /etc/init:

Searching for Suckit rootkit… Warning: /sbin/init INFECTED

Le message est donc à ignorer jusqu’à la prochaine mise à jour.

Pour conclure ce chapitre quelques logiciels que l’on peut installer:

  • tmpreaper : vider le /tmp régulièrement
  • vérifier l’intégrité des fichiers systèmes avec Samhain (disponible dans les dépots Ubuntu).

Conclusion

Vous l’aurez compris, sécurisé son système prend du temps, consomme des performances non négligeables et demande des connaissances approfondies. C’est néanmoins une étape fondamentale pour se protéger des pirates et autres scripts automatisés qui se feront une joie de rentrer dans votre site web ou pire, votre serveur.

Les applications présentées devraient néanmoins vous permettre de limiter la casse, mais gardez à l’esprit que la plupart des attaques se faisant via votre site web, le protéger correctement reste une des meilleurs solutions existantes.

/etc/logcheck/logcheck.conf
Catégories
Open-source Planet-libre Systeme

J’ai testé Debian GNU/kFreeBSD

La dernière version de la distribution Debian propose en option l’utilisation d’un noyau FreeBSD en lieu et place du classique noyau Linux. Si vous suivez ce blog, vous savez tout le bien que je pense de ce noyau BSD. On se retrouve donc avec une distribution Debian GNU/kFreeBSD (k comme kernel) qui, sur le papier, a de quoi séduire…

Nous allons donc dans ce billet détailler l’installation de cette distribution sur une machine virtuelle VirtualBox afin de vous faire une propre idée.

Installation de Debian GNU/kFreeBSD

On commence par récupérer l’image ISO:

wget -O debian-6.0-kfreebsd-i386.iso http://ftp.nl.debian.org/debian/dists/squeeze/main/installer-kfreebsd-i386/current/images/netboot/mini.iso

L’image ISO ne fait que 9 Mo. C’est donc une procédure d’installation minimale (netinstall) qui va télécharger les paquets nécessaires sur Internet. Il faut donc compter une petite heure d’installation avec une liaison Internet correcte.

On créé ensuite une machine virtuelle (1+ Go de RAM et 6+ Go de disque) en utilisant cette image. Pour me simplifier la vie, j’ai choisi une installation par défaut dans le premier menu: « Default install »


Le wizard d’installation va vous poser les questions habituelles (nom et domaine de la machine, partition ou installer le système, mot de passe root, compte utilisateur par défaut, clavier…), bref rien de compliqué.

Lors de mon test je me suis retrouvé avec un clavier qwerty pendant cette installation, faites donc attention lorsque vous allez saisir le mot de passe root…

Une fois la procédure d’installation terminée, il faut rebooter sur le disque système. J’ai rencontré l’erreur critique suivante durant le démarrage:

Mmmmhhhh pas glop

Pour résoudre ce problème j’ai du forcer l’ordre de démarrage des disques dans VirtualBox en mettant le disque système en premier:

Le démarrage se passe ensuite sans problème ! Glop

On a donc dans les main un système Debian GNU 6.0 avec un noyau FreeBSD 8.1 !

Mais ou est le rc.conf ?

Pour diablotins qui souhaiteraient passer du coté obscur, il va falloir perdre certaines habitudes. En effet, même si on utilise un noyau FreeBSD, tout l’écosystème de cette distribution reste une Debian GNU. Ainsi l’organisation des fichiers de configuration reste la même que sur une Debian « classique » (voir la documentation ici). Point donc du si pratique fichier rc.conf qui permet de configurer l’ensemble des processus lancés au démarrage de votre machine et se contenter d’une gestion par des scripts dans le répertoire /etc/init.d.

Et mes ports ?

Là encore, point de répertoire /usr/ports. En effet, le gestionnaire de paquets est apt-get (ou aptitude). Dommage j’aime bien le principe de compilation à l’installation de nouveaux logiciels.

Voilà PF !

Tout comme Linux, le noyau FreeBSD est de type monolitique modulaire (je vous conseille de lire ce wiki pour voir de quoi je parle). On peut ainsi charger des fonctions complémentaires « à chaud ».

C’est par exemple le cas du module PF qui ajoute un firewall intégré vraiment très puissant (de mon humble avis, l’un des principal avantages du noyau FreeBSD part rapport à Linux).

Il n’est pas activé par défaut dans le noyau fourni par la distribution Debian. Il faut donc pour l’activer, saisir les commandes suivante qui permette de charger le bon module:

su –

kldload pf.ko

pfctl -e

Pour une petite introduction à PF vous pouvez lire un billet que j’avais écrit il y a maintenant deux ans (ou bien RTFM…).

On peut également s’amuser à customiser le stack IP FreeBSD, réputé pour sa fiabilité et sa performance, en utilisant la commande sysctl.

Conclusion

C’est fini pour cette rapide introduction à Debian GNU/kFreeBSD. Je trouve l’initiative intéressante pour contre balancer l’hégémonie du noyau Linux dans les systèmes libres.

Catégories
Open-source Reseau Systeme

Architecture de haute-disponibilité avec OpenSVC

Ce billet a été rédigé par Tony Roger (de la société LibrA-LinuX) en collaboration avec OpenSVC éditeur du logiciel libre du même nom.


LibrA-LinuX, spécialiste des formations Linux à la carte, 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..). Dans le contexte d’un nouveau cursus de cours lié aux technologies de Clustering sous Linux, nous vous proposons cet article ayant pour but de présenter une solution de clustering sous Linux, permettant de mettre en oeuvre simplement une architecture  pour apporter la haute-disponibilité à vos applications critiques.

A l’instar des solutions existantes du monde libre (Linux HA) , cette solution utilise le logiciel libre  OpenSVC (produit Français) qui, couplé à un mécanisme de bascule automatique (HeartBeat, Keepalived, OpenHA) permet une gestion centralisée de vos services sous Linux, indépendamment des couches applicatives (Services web apache, J2EE, base de données, stockage et serveurs de fichiers, messagerie, DNS ,LDAP …). L’atout majeur de cette solution consiste en cette couche d’abstraction (technologie de clustering autour d’OpenSVC) qui permet comme tout type de cluster actif/passif, le pilotage des ressources et services,  la reprise de vos services en minimisant le temps d’interruption grâce au mécanisme de bascule automatique, mais garantit également la cohérence des données entre les noeuds du cluster, par la synchronisation de snapshots filesystem LVM.

Introduction

OpenSVC (framework python sous licence GPLv2) est un gestionnaire de « services » fonctionnant en mode cluster. Les services sécurisés sont définis comme des ensembles de ressources (IP, Volume de Disques, Filesystems, synchronisations, et lanceurs d’applications). Ces services sont ainsi pilotés via opensvc installé sur chacun des noeuds du cluster et  compatible avec toutes les distributions Linux, FreeBSD, les unix Solaris et Opensolaris, HP-UX, AIX.

Dans le cadre d’un déploiement massif du framework OpenSVC,  les développeurs du produit ont conçus un collecteur central, contenant la configuration des services, leurs états et les journaux d’actions de chacun des noeuds, que l’on peut consulter grâce à une interface web. La partie collecteur est quand à elle non libre et soumise à une tarification de licence par service /an, mais celle-ci n’est pas nécessaire au bon fonctionnement du cluster.

Les services typiques qui peuvent bénéficier d’une haute-disponibilité grâce à l’implémentation de cette solution sont :

  • Serveurs de mail : IMAP, POP, SMTP
  • Serveurs de Proxy cache et Reverse-Proxy
  • Serveurs web : HTTP, HTTPS
  • Serveurs d’application J2ee : Websphere, WebLogic, JBOSS, Tomcat
  • Serveurs de fichiers et stockage : FTP, SAMBA, LV…
  • Serveurs de noms : DNS
  • Serveurs d’annuaire : LDAP
  • Base de données : Oracle, MySQL, PosgreSQL
  • etc …


Fonctionnalités et architecture
Fonctionnalités et architecture


Les principales fonctionnalités et avantages que fournit ce gestionnaire de cluster Linux :

  • Scalabilité et mutualisation : permet de gérer des milliers de noeuds et services basés sur une seule et même technologie de clustering.
  • Compatibilité : OpenSVC fonctionne aujourd’hui sur les OS Linux, FreeBSD, Solaris, OpenSolaris, AIX et HP-UX et peut aisément être portés sur d’autres systèmes d’exploitation (python).
  • Cohérence des données entre des noeuds sans stockage partagés : Permet de piloter les réplications des données par snapshot de filesystems LVM et synchronisation rsync, ZFS et réplication DRBD, mais également les systèmes de stockage (EMC SRDF, NetApp snapmirror). L’idéal pour un cluster OpenSVC étant 2 noeuds de production (PRD) en shared disk, avec un noeud de reprise (DR) en copie asynchrone.
  • Virtualisation : OpenSVC peut piloter des services eux-mêmes intégrés sous forme de machines virtuelles ou containers (kvm, xen , lxc, zones, jail, oracle Ldoms…)
  • Haute-disponibilité : La haute-disponibilité et la reprise des services est apportée par la compatibilité avec les mécanismes standards de bascules automatiques et battement de coeur (OpenHA, heartbeatd, keepalived). Gestion des IP virtuelles de service. Possibilité de définir des plans de reprise (Disaster recovery plans) dans la configuration des services.
  • Déploiement : Rapidité de déploiement des outils OpenSVC et des créations des containers de services
  • Standard et Open source: Le framework OpenSVC est sous licence GPLv2, le collector est quant à lui soumis à un système de licence
  • Tracabilité et audit : toutes les commandes executées par OpenSVC sont inscrites dans des journaux de logs en local sur chaque noeud, mais également centralisés sur le collector
  • Supervision: Remontée d’alertes mail, et flux RSS, intégration facilitée pour la remontée d’alertes vers des systèmes de supervision

Gestion centralisée (collecteur)

Le collecteur est une interface web de gestion de vos différents services clusterisés qui, au travers de différentes vues et tableaux de bords, apporte des fonctionnalités supplémentaires  :

  • monitoring : pour afficher l’état des différentes ressources des services à l’aide d’un tableau de bord (graphique dynamique de la topologie de vos services)
  • audit : vous permettant de visualiser les journaux de logs des actions entreprises par OpenSVC et d’agir en conséquence
  • plan de reprise : pour concevoir des plans de reprise (disaster recovery plans)
  • délégation d’administration : possibilité d’assigner des responsables à des services ou groupe de services, aiguillage des alertes
  • nodes (asset): pour paramétrer les différentes informations matérielles et de géo-localisation de vos noeuds physiques, afin de pouvoir déterminer le périmètre des services impactés par un incident (fuite sur un rack…)
  • audit et performance système pour monitorer les ressources systèmes (I/O, Mem, CPU …) de chacun des noeuds, les incohérences de paquetages entre les noeuds d’un service
  • alertes: pour visualiser les différentes remontées d’alertes du systèmes, et les gérer en ligne.


Mise en oeuvre

L’installation d’OpenSVC nécessite pyhton2.6 comme pré-requis et les packages pour CentOS, RedHat, Debian et Ubuntu sont disponibles dans le repository d’OpenSVC.

Liens utiles: