Catégories
Image Open-source Planet-libre Systeme

Les raccourcies d’Unity sur une image

La prochaine version d’Ubuntu intégrera, par défaut, l’interface Unity en lieu et place de Gnome. Comme tout système GNU/Linux, il sera bien entendu possible d’en choisir une autre (par exemple Gnome 3), mais si ce n’est pas votre choix alors l’image suivante devrait vous intéresser.

Elle propose en effet la plupart des touches de raccourcies clavier pour manipuler Unity comme un pro (source Webupd8).

Pour avoir testé Unity sur une machine virtuelle sous Ubuntu 11.04, je dois avouer que je ne suis pas un gros fan. J’attend cependant d’avoir une version définitive (fin avril) entre les mains pour me faire une idée définitive. Les freins du changement sont parfois forts…

Que pensez-vous de cette nouvelle interface ? Apporte t’elle selon vous une « expérience utilisateur » plus intéressante ? Simplifie t’elle les taches les plus courantes ?

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

Varnish n’a pas peur de la montée en charge

Ce matin, un tweet de Philippe Scoffoni m’a permis de re-découvrir le site Load Impact qui permet de tester la montée en charge de votre service Web en simulant un nombre croissant de connexion. J’ai profité de cet outil sympa pour tester les performances de mon blog sans et avec le proxy cache Varnish (dont j’avais détaillé l’installation dans ce billet).

Avant de commencer la comparaison, un détail de ma configuration serveur:

  • Hébergeur Gandi
  • OS Ubuntu 10.04 LTS
  • CPU 1 coeur avec 1 Go de RAM

Perfos sans Varnish

Le test est alors effectué dans l’architecture suivante:

On obtient ces résultats:

Sans grande surprise on voit que les performances s’écroulent quand le nombre de lecteurs simultanés augmente. Pour 50 lecteurs simultanés sur le Blog (ce qui est quand même un pic que je ne vois pas tous les jours :)), on a un temps de chargement de la page qui passe à plus de 25 secondes (alors qu’il est de moins d’une seconde quand il y a un seul lecteur).

Perfos avec Varnish

En ajoutant Varnish en front-end à Apache, on a l’architecture suivante:

Et les résultats…

… sont à la hauteur des attentes de Varnish !

En effet pour 50 lecteurs consultant le blog en simultané, le temps de chargement ne dépasse pas les 2 secondes. Pas mal pour un logiciel qui ne prend que 1 Go d’espace disque…

Alors vous attendez quoi pour passer à Varnish ?

Catégories
Gstreamer Open-source Planet-libre Video

Transcoder facilement ses vidéos avec Arista

Arista est un projet développé en parallèle de Transmageddon qui a pour objectif d’avoir une solution logicielle libre et simple pour transformer une vidéo en un beau fichier compressé et compatible avec vos périphériques de lectures. Le logiciel se base sur le merveilleux framework GStreamer.

Nous allons donc voir dans ce billet comment installer puis utiliser ce logiciel sur une distribution Ubuntu 10.10 (vous pouvez bien-sur utiliser ce logiciel sur d’autre distribution, seule la procédure d’installation sera à changer).

Installation de Arista

C’est très simple sous Ubuntu:

sudo aptitude install arista nautilus-arista

Lancement de Arista

On passe par le menu principal > Son et vidéo > Arista Transcoder:

Transcodage pas à pas

1) Sélection de la source

On commence par sélectionner la source vidéo parmi:

  • un disque DVD (à insérer dans votre lecteur)
  • un fichier vidéo quelconque
  • une caméra / une webcam

2) Sélection du périphérique cible

On doit choisir le périphérique sur lequel on voudra lire la vidéo transcodé. On a le choix entre (cette liste évolue automatiquement selon les changement de version et des mises à jour spécifiques):

  • Android
  • Apple iPad
  • Apple iPod/iPhone
  • Ordinateur (Linux)
  • Lecteur DVD
  • Nokia N
  • Sony PSP
  • Sony PS3
  • Web (navigateur)

3) Sélection du format de pré réglage

Ce dernier choix dépend du périphérique cible. Par exemple pour une lecture sur un ordinateur, on a le choix entre H.264, WebM (VP8) ou Theora.

4) Sélection du fichier de la vidéo transcodé

On sélectionne enfin le nom du fichier de destination en cliquant sur le bouton « + Ajouter à la file« :

Puis on entre le nom du fichier.

Attention, le transcodage commence tout de suite, avec un aperçu en « live ».

Et voilà le résultat:

  • Fichier source (RAW): football_cif.y4m de 38 Mo
  • Fichier transcodé (VP8): football_cif.webm de 1.5 Mo

Conclusion

Arista est un transcoder simple à utiliser dans la pure tradition des logiciels Unix, une tache, un logiciel. Le fait que la liste des périphériques se mette automatiquement à jour est vraiment un plus non négligeable. Et hop un logiciel de plus dans mon script de post installation d’Ubuntu !

Catégories
Nagios Open-source Planet-libre Reseau

Script d’installation automatique de Shinken/Thruk

Dans le petit monde des systèmes de supervision système et réseau, un nouveau venu pointe le bout de sa… lame: Shinken.

Développé de main de maître par Jean Gabes (un des spécialiste Français de Nagios), il en reprend la structure au niveau des fichiers de configuration tout en apportant de plus grandes des performances, le tout distribué sous une licence libre AGPL v3. Basée sur le langage Python, il offre une liste pour le moins  impressionnante de fonctions que vous pouvez consultez sur cette page.

Nous allons dans ce premier billet sur le sujet, détailler un script d’installation automatique du couple Shinken + Thruk (interface Web) sur une distribution GNU/Linux Debian (le script doit également fonctionner sur une distribution Ubuntu moyennant, peut être, quelques modifications, notamment l’édition des lignes arch_version et perl_version).

La version actuelle du script, va installer Shinken version 1.0 (à noter que cette version inclue une UI maison) et Thruk 1.1.7. Pour information, ces deux versions peuvent être utilisées dans un environnement de production.

Récupération du script d’auto installation de Shinken/Thruk

Il suffit d’ouvrir un terminal puis de saisir les commandes suivantes:

cd ~

rm -f shinkenautoinstall-debian.sh

wget –no-check-certificate https://raw.github.com/nicolargo/shinkenautoinstall/master/shinkenautoinstall-debian.sh

chmod a+x shinkenautoinstall-debian.sh

Vous pouvez également récupérer le script / remonter des demandes de nouvelles fonctions ou des bugs sur GitHub.

Lancement du script d’auto installation de Shinken/Thruk

Là encore rien de compliqué:

sudo ./shinkenautoinstall-debian.sh

Le script devrait se dérouler tout seul. Il vous demandera juste à un moment donnée de saisir le mot de passe que vous voulez affecter à l’utilisateur Unix shinken.

A la fin de l’installation, le serveur Shinken et l’interface Web Thruk seront lancées automatiquement.

—————————————————-

Installation terminée

—————————————————-

Fichiers de configuration : /etc/shinken

Fichiers de logs : /var/lib/shinken/nagios.log

Script de lancement de Shinken : /etc/init.d/shinken

Script de lancement de Thruk : /etc/init.d/thruk

Interface d’administration : http://@IP:3000

Arrivé à ce stade, vous pouvez éditer la configuration de Shinken (contenue dans le répertoire /etc/shinken) et vous connecter à l’interface Web d’administration (http://@IP:3000 ou @IP est à remplacer par l’adresse IP de votre serveur de supervision).

Petite astuce complémentaire pour les utilisateurs voulant faire transiter les connections vers l’interface d’administration Web par un serveur Web Nginx. Il suffit d’ajouter la configuration suivante dans un fichier de conf Nginx:

server {

listen 80;

server_name nagios.mondomaine.com;

location / {

proxy_pass http://127.0.0.1:3000;

proxy_redirect off;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

Toute les requêtes entrantes sur le port TCP 80 et le nom de machine  nagios.mondomaine.com (à adapter à votre serveur) seront redirigées vers Nagios (http://127.0.0.1:3000). Cela permet d’éviter d’avoir à ouvrir un port supplémentaire (le 3000) sur votre serveur…

Que fait exactement le script d’auto installation de Shinken/Thruk ?

Pas grand chose, mis à part:

  • installation des pré-requis système
  • création de l’utilisateur shinken et du groupe associé
  • téléchargement des sources de Shinken et de Thruk
  • mise en place des scripts de démarrage de Shinken et Thruk (init.d)
  • vérification de la configuration de Shinken (l’équivalent de l’option -v de Nagios)
  • premier lancement de Shinken
  • premier lancement de Thruk

Si vous testez ce script sur Debian ou sur une autre distribution, je suis preneur de vos retours.

Sources:

Catégories
Open-source Planet-libre Systeme

Mon desktop 201104

Avec quelques jours de retard, voici le desktop qui va me suivre pendant le beau mois d’avril 2011.

Voici ce que cela donne sans fenêtre:

et avec:

Les principales caractéristiques

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

Petit changement avec l’utilisation du thème GTK Equinox Evolution Dawn en lieu et place de Equinox Glass. De petites amélioration bien sympa notamment au niveau des ascenseurs des terminaux qui sont beaucoup plus fins.

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 Evolution Dawn“.

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

Et chromium ?

Pour mettre également Chromium en concordance avec le reste du thème, j’utilise ce thème (point CRX à ouvrir directement dans Chromium).

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

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

Et un eBook gratuit sur Nagios, un…

On m’a plusieurs fois proposé d’écrire un livre sur Nagios et la supervision système et réseau. J’ai, pour l’instant, refusé ces offres par manque de temps et de motivation. Le Blog de Nicolargo m’occupe déjà  beaucoup et je trouve cette formule plus « interactive » que le support papier.

Cependant, je sais par expérience qu’il est parfois utile d’avoir une documentation papier ou sous la forme d’un simple fichier sur une clés USB. C’est donc pour cette raison que j’ai compilé l’ensemble des billets de ce blog abordant Nagios dans un eBook au format PDF sous licence Creative Common BY NC.

Pour télécharger gratuitement cet eBook, il suffit de cliquer sur l’image suivante:

Je vous rappelle, que l’ensemble des billets sur Nagios est regroupé également sur cette page (vous trouverez encore plus d’informations que dans l’eBook). Si vous voulez être tenu au courant des nouveaux articles, je vous conseille de vous abonner au flux RSS du blog, à mon compte Twitter ou à partir de Facebook.

Bonne lecture !

Catégories
Open-source Planet-libre Web

Supprimer les logs Apache « internal dummy connection »

Si comme moi vous avez des tonnes d’entrées du type:

::1 - - [10/Mar/2011:10:41:50 +0000] "OPTIONS * HTTP/1.0" 200 - "-" "Apache (internal dummy connection)"

dans les fichiers de logs de votre serveur Apache, voici une procédure simple pour les supprimer.

On commence par éditer le fichier de configuration /etc/apache2/apache2.conf pour créer un filtre nommé local:

# Filters

SetEnvIf Remote_Addr « 127\.0\.0\.1 » local

SetEnvIf Remote_Addr « \:\:1 » local

Ensuite, on doit activer ce filtre le fichier de définition de votre site (sous le répertoire /etc/apache2/site-enabled). Il faut modifier la ligne suivante:

CustomLog /var/log/apache2/www-access.log combined env=!local

Puis on relance Apache:

sudo apache2ctl restart

Et hop…

Sources:

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
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).