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 Reseau

IperfiT, un petit script pour les fans de Iperf

J’utilise actuellement Iperf (voir la liste des billets sur le sujet ici) dans le cadre de tests de performances de réseaux divers et variés. Bien que très simple à utiliser pour une personne avertie, Iperf n’est pas conçu pour automatiser des benchs en faisant varier les cibles et les paramètres.

J’ai donc développé, sous licence LGPL, un script Perl nommé IperfiT qui fait « grosso modo » les choses suivantes lors d’un test entre les machines A (sur lequel le script sera lancé) et B (qui se trouve de l’autre coté du réseau à tester et qui accepte les connexions SSH venant de A):

  • Test de la connectivité avec la machine B (A ping B)
  • Connexion automatiquement en SSH vers la machine B
  • Lancement du serveur IPerf sur la machine B
  • Lancement du client sur la machine A
  • Affichage du rapport venant de l’IPerf de la machine B
  • Arrêt de l’Iperf de la machine B

Les options de la version 0.1 de IperfiT sont les suivantes:

-h: Print the command line help

-v: Print the program version

-q: Quiet mode (no display)

-s <ip>: Server IP address

-n <user>: SSH user name used to connect to the server

-u: Use UDP protocol (default is TCP)

-b: Target bitrate for UDP flow

-t <time>: Test duration, default is 30 sec

-m <mss>: Set the TCP Maximum Segment Size (MTU-40), default 1400 bytes

-w <wsize>: Set the TCP Window Size, default 128 Kbytes

-l <bsize>: Set the R/W Buffer Size, default 8000 bytes

-d <tos>: Set the TOS field (Diffserv), default is 0

Installation de IperfiT

C’est assez simple, je l’ai mis à disposition dans ce répertoire. Vous pouvez également suivre cette procédure:

cd /tmp

wget https://raw.githubusercontent.com/nicolargo/iperfit/master/iperfit.pl

chmod a+rx /tmp/iperfit.pl

cp /tmp/iperfit.pl /usr/local/bin

Utilisation de iperfiT en quelques exemples

Pour un simple test TCP de 5 minutes (300 secondes) vers la machine 192.168.0.100 (login SSH nicolargo) avec une taille MSS de 1200 octets:

iperfit.pl -c 192.168.0.100 -n nicolargo -t 300 -m 1200

Pour lancer un test entre votre machine et la machine d’adresse IP 192.168.0.100 (login SSH nicolargo) en UDP avec une taille de buffer de 170 octets sur une durée de 60 secondes et avec un débit de 64 Kbps, il suffit de saisir la ligne suivante:

iperfit.pl -c 192.168.0.100 -n nicolargo -u -l 170 -t 60 -b 64

Remarque

Si vous avez le message suivant au lancement du programme:

Can’t locate Net/IPv4Addr.pm in @INC (@INC contains: /etc/perl /usr/local/lib/perl/5.10.1 /usr/local/share/perl/5.10.1 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.10 /usr/share/perl/5.10 /usr/local/lib/site_perl .) at ./iperfit.pl line 33.BEGIN failed–compilation aborted at ./iperfit.pl line 33.

C’est que vous n’avez pas la librairie Perl IPv4Addr qui est installé, sous Ubuntu/Debian pour remédier à cela il faut saisir la commande suivante:

sudo aptitude install libnetwork-ipv4addr-perl

Si vous avez des améliorations à proposer à ce script je suis à votre écoute !

Catégories
Blog Web

Un blog en héritage ?

L’age aidant, j’ai été emmené à réfléchir sur les questions d’héritages de mes biens au cas au je casserai ma pipe du jour au lendemain. Aucune inquiétude à avoir, je suis en bonne santé et le moral est là mais c’est un fait, tout peut arriver.

Passé les choses importantes (habitation, biens financiers, objets personnels…), tout blogueur est en droit de se poser cette question: « Que deviendra mon blog quand je  ne serais plus là ? ».

En effet, la grande majorité des blog personnels, comme le mien, ne sont gérés que par une seule personne. Celle-ci, en plus de rédiger les billets et de répondre aux commentaires, s’occupe de l’administration système (mise à jour de sécurité)  et des taches administratives (renouvellement du contrat d’hébergement et du nom de domaine).

Si ce bloguer décède, la fin du contrat chez l’hébergeur sonnera comme la fin de vie de son blog qui ne sera plus accessible.  Dur de voir tout son travail et ses données disparaître comme cela. Il existe bien des projets comme Internet Archive qui s’occupe d’archiver votre site à intervalle plus ou moins régulier. Le problème avec ce genre d’archivage est qu’il propose une image de votre site à un instant t. Il ne gère pas les options dynamiques comme les commentaires.

A titre personnel, je souhaiterai que mon blog continu à être accessible aux lecteurs et idéalement qu’il soit repris par des personnes partageant les mêmes intérêts. A ma connaissance, il n’existe pas en dehors du testament, de service permettant de transmettre les informations nécessaires à l’administration d’un site à une ou plusieurs personnes de confiance.

Si certains d’entre vous se sont posés ce genre de questions (blogueur, notaires, hébergeur), je serais curieux d’avoir leurs retours.

Catégories
Blog

Edito presto

Comme vous pouvez le voir, cher lecteur, je ne suis pas très actif sur le blog et sur mon twitter en ce moment. Je suis en pleine bourre coté boulot et cela risque de durée quelques semaines. Je prends donc du retard sur le traitements de mes mails et sur les réponses aux commentaires.

En parallèle, j’essaye quand même un peu de bosser pour vous (« ah quand même ! »). Je vous prépare un petit eBook (vous savez le truc à la mode) au format PDF qui sera un recueil de mes billets sur Nagios, l’outil de supervision des systèmes d’informations.

Je regarde aussi de prêt les solutions de qualité de service que l’on peut implémenter sur le noyau Linux. Je ferais surement un petit billet dessus.

Si vous avez d’autres idées, je suis preneur de vos commentaires !

Catégories
Blog Open-source Web

Le panier du marché libre #8

C’est la saison des pois chiches, alors on prend son petit panier et on va glaner les bons liens de Nicolargo:

En bonus la recette de la socca Niçoise (il ne faut pas faire le petit bras avec le poivre…)

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