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

SparkleShare, enfin une vraie alternative libre à Dropbox ?

C’est en lisant un billet sur le blog de mister Korben que j’ai découvert SparkleShare, une solution libre se positionnant comme un concurrent direct de Dropbox.  Depuis quelques temps, on ne peut as dire que Dropbox soit en odeur de sainteté dans la sphère des libristes. Le changement plutôt maladroit de leur TOS et leur engagement timide dans les logiciels open-source n’y sont pas étranger.

Nous allons donc nous intéresser dans ce billet sur la solution SparkleShare qui se base sur des logiciels libres (GPL v3) et qui permet de gérer soit même son serveur ou seront stockées les données.

Les limites actuelles de SparkleShare

SparkleShare est actuellement en développement. La version 1.0 devrait sortir dans les prochains mois. A la date de rédaction de ce billet, les limites sont les suivantes:

  • Clients disponibles sous GNU/Linux et Mac OS X (les clients Windows, Android er IOS sont prévus)
  • Pas d’interface Web pour accéder à vos fichiers depuis un simple navigateur (il faut passer par un client SparkleShare)
  • Pas de synchronisation LAN to LAN. Si vous avez deux PC sur le même réseau local, la synchronisation passera automatiquement par le serveur (donc par Internet)
  • Pas de chiffrement (en natif) des données sur le serveur
  • Client développé en Mono (burk…), vivement les forks…

Les avantages de SparkleShare // Dropbox and Co

On passe ensuite aux avantages:

  • Les clients SparkleShare sont sous licence GPL version 3
  • Les serveurs SparkleShare peuvent se baser sur des logiciels libres (GIT et serveur SSH)
  • Possibilité d’installer son propre serveur sur une machine dédiée ou d’utiliser un serveur GIT public (GitHub, Gitorious…)
  • Chiffrement du lien client vers serveur (utilisation d’un tunnel SSH)

Installation du serveur SparkleShare

Comme nous venons de le voir, dans le monde SparkleShare, un serveur est en fait une machine accessible depuis Internet (ou tout autre réseau) à partir d’une connexion SSH et proposant un serveur GIT.

Attention: si vous ne disposez pas d’un serveur dédié, il est également possible d’utiliser un hébergement gratuit chez GitHub. Dans ce cas,  il faut garder à l’esprit que vos fichiers seront publics (il est donc nécessaire de les chiffrer):

Nous allons donc installer ces briques sur un serveur dédié sous Debian 6.0 Squeeze.

On commence par installer les serveurs SSH et GIT (en root):

apt-get install git-core openssh-server

Puis on génère le dépôt GIT pour SparkleShare (avec votre utilisateur standard):

cd ~

git init –bare sparkleshare.git

Cette dernière commande va créer un sous répertoire nommé sparkleshare.git dans le répertoire $HOME de votre utilisateur (/home/USER/sparkleshare.git). Il est bien sûr possible de remplacer sparkleshare.git par un chemin absolu.Il est alors important que le répertoire soit en lecture/écriture pour l’utilisateur SSH que vous allez utiliser pour vous connecter.

Et voilà, c’est fini 🙂 Dingue non. Si vous utilisé un Firewall sur votre machine, il faut juste vérifier que le port TCP/22 (SSH) est bien ouvert.

Installation du client SparkleShare

Il n’existe pas à l’heure actuelle de dépot officiel pour Debian / Ubuntu (alors qu’il en existe un sous Fedora et Mac OS X). Il va donc falloir installer le client à la mimine. Rien de bien compliqué, il suffit de saisir les commandes suivantes dans un terminal de votre PC sur lequel vous voulez installer le client. J’ai validé cette procédure d’installation sur une distribution Debian 6.0 Squeeze.

On commence par installer les pré-requis (en root):

apt-get install openssh-client git-core gtk-sharp2 mono-runtime mono-devel monodevelop libndesk-dbus1.0-cil-dev nant libnotify-cil-dev libgtk2.0-cil-dev libwebkit-cil-dev intltool libtool python-nautilus libndesk-dbus-glib1.0-cil-dev

Remarque: la version actuelle du client GNU/Linux est devéloppé en langage Mono (#wtf), les pré-requis précédant vont donc installer un tas de librairies (environ 120 Mo sur mon PC de test)…

On récupère les sources de la dernière version du client SparkleShare:

mkdir -p ~/src

cd ~/src

git clone https://github.com/hbons/SparkleShare.git

Puis on compile/installe:

cd ~/src/SparkleShare

./autogen.sh

make

su -c « make install »

Configuration du client

Avant de commencer à utiliser votre client SparkleShare, il faut lui dire quel serveur utiliser et surtout comment établir une connexion sécurisée avec lui.

Si vous avez déjà une clés SSH publique (donc un fichier ~/.ssh/id_rsa.pub), il n’est pas nécessaire de faire l’étape suivante:

ssh-keygen

On télécharge ensuite notre clés cliente sur notre serveur (SERVER) en utilisant le compte utilisateur (USER) avec lequel vous avez installé le dépôt GIT:

ssh-copy-id USER@SERVER

Pour tester que l’étape précédente a bien fonctionné, il suffit de se connecter en SSH (ssh USER@SERVER) et de voir si la connexion se fait bien sans demande  de login/password.

On lance ensuite le client SparkleShare:

sparkleshare start

La fenêtre suivante devrait s’afficher:

On entre les informations, puis on passe à la configuration du serveur en entrant le le couple USER@SERVER ainsi que le répértoire absolu du dépôt GIT du serveur (/home/USER/sparkleshare.git/):

Enfin, on finalise la configuration:

Pour vérifier que le client est bien lancé, il suffit de regarder sa barre de tache:

Vérifier que cela marche bien

Il suffit de mettre sur votre PC client, un nouveau fichier dans le répertoire « sparkleshare » puis de vérifier que ce dernier est bien pris en compte sur votre serveur GIT:

cd ~/sparkleshare.git

git log

Author: nicolargo <pasde@spam.com>

Date: Wed Jul 6 14:12:17 2011 +0200

+ ‘webcam-192×192.jpeg’

Alors près à laisser tomber Dropbox ?

Catégories
Open-source Planet-libre Reseau Web

Installation de Zimbra Collaboration Server 7

Zimbra est une suite collaborative regroupant des fonctions de messagerie (IMAP et POP), de gestion de vos contacts, de calendrier, de partage de documentations (voir la liste complète des fonctions ici). L’éditeur de cette suite à la très bonne idée de diffuser une version open-source de cette suite qui s’appelle Zimbra Collaboration Server Open-Source édition.

Benjamin Carion, de la société Absystech vient de me faire parvenir une documentation d’installation qui servira de complément au wiki officiel. Elle détaille une installation de la version 7 de la suite sur une distribution Ubuntu 10.04 LTS.

Cette documentation est disponible sous deux formats: PDF et MediaWiki. Il suffit de cliquer sur le format de votre choix pour lancer le téléchargement.

Si vous voyez des erreurs ou des compléments à apporter à cette procédure, n’hésitez pas à laisser un commentaire un peu plus bas.

Merci beaucoup à Benjamin pour le partage, c’est aussi cela la forme des logiciels libres.

Catégories
Open-source Planet-libre Systeme

Mon desktop 201107

On commence le mois par le traditionnel desktop qui va accompagner un de mes machines. Focus donc sur mon PC Desktop sous Debian 6 (Squeeze) configuré avec mon script de post install Debian 6. J’en profite pour signaler que j’ai repris le code de ce script est qu’il est maintenant beaucoup plus « user friendly » lors de son exécution. Je vous laisse découvrir…

Voici donc ce que cela donne:

Les principales caractéristiques

Pas de dock ?

Comme vous pouvez le voir j’ai finalement laissé tombé le dock AWN que je n’utilisais finalement pas… Je l’ai fonctionnellement remplacé par des icônes dans la barre de menu:

On y retrouve mes applications favorites: Chromium, Hohot, Filezilla, Terminator, Shutter, Spotify…

Et vous ? Cela donne quoi ?

A vous de nous montrer vos écrans !
En utilisant yFrog puis en partagant l’URL) !

Catégories
Open-source Planet-libre Web

Remplacer Google Analytics par Piwik

Pour rebondir sur le billet des administrateurs du Planet Libre, voici une rapide, mais néanmoins efficace, procédure pour remplacer le propriétaire Google Analytic (bouh !) par le libre Piwik (houra !).

Piwik est un service Web permettant d’afficher un tas de statistique sur qui fait quoi sur votre site / combien de temps, combien de fois… Bref un vrai big brother perso !

Cette procédure est honteusement inspirée de la procédure officielle et adaptée à l’analyse de mon blog sous WordPress.

On commence par préparer le terrain…

Il vous faut:

  • un serveur Web (Apache ou autre NGinx)
  • un base de donnée (MySQL)
  • un accès FTP ou mieux: SSH

Nous partons sur l’hypothèse ou Piwik est installé sur la même machine que le site à superviser. Si ce n’est pas le cas, le seul changement à faire sera dans la configuration de la base de donnée en remplaçant localhost par % (qui est un alias pour tout les sites…).

On créé la base de donnée MySQL nommé piwik, accessible depuis la machine locale (localhost) et seulement par celle-ci à partir d’un utilisateur MySQL nommé piwik (très original je sais). Voici le déroulement de ces actions à partir de PHPMyAdmin:

Installation de Piwik

On se connecte sur notre serveur en SSH, puis on va dans l’arborescence on se trouve notre serveur Web (par exemple /var/www):

cd /var/www

puis on saisit les commandes suivantes:

wget http://piwik.org/latest.zip

unzip latest.zip

rm latest.zip How\ to\ install\ Piwik.html

Si votre serveur http://monbeausite.com/ pointe sur /var/www alors il suffit de saisir l’URL http://monbeausite.com/piwik/ pour continuer l’installation via l’interface Web.

Celle-ci va se dérouler en 9 étapes:

On commence par vérifier les pré-requis systèmes de votre serveur:

Perso je suis tombé sur le message d’erreur suivant que j’ai corrigé en saisissant la commande donnée:

chmod a+w /var/www/piwik/config

On passe ensuite à la configuration de la base de donnée. Il faut saisir les paramètres par rapport à la configuration faite dans le premier chapitre. Dans mon cas, j’ai du remplacer le 127.0.0.1 par localhost (pas trop compris pourquoi…).

Ensuite on entre le nom, le mot de passe et le mail de l’administrateur (c’est avec ce compte que l’on pourra se connecter à l’interface Web). Je vous conseille de donner un compte/mot de passe différent que celui affecté à la base de donnée…

On passe ensuite au paramétrage du site que l’on souhaite analyser:

Piwik va automatiquement générer le code Javascript à insérer dans vos pages HTML:

Dans le cas d’un blog sous WordPress, il suffit d’ajouter le code dans le fichier footer.php de votre thème (juste avant la balise /body):

Il ne reste plus qu’a attendre un peu que les visites sur votre site soit prise en compte dans la base de donnée Piwik puis de se rendre sur l’URL http://monbeausite.com/piwik pour voir vos statistiques:

Optimisation de Piwik

Si votre site génère plus de 500 visites par jour, il est conseillé de suivre cette procédure pour optimiser le traitement des données.

Dernière étape et non des moindres: supprimer le code JavaScript de Google Analytics 🙂

Et voilà le travail !

Catégories
Open-source Planet-libre Systeme

Conky Lunatico Rings, un thème Conky bien sympatique

J’utilise Conky pour afficher sur mon desktop diverses informations sur ma machine (CPU, Mémoire, charge réseau…). En surfant sur le site WebUpd8, je suis tombé sur ce billet qui parle d’un nouveau thème qui m’apporte toutes ces informations.

En voici un aperçu:

Pour installer ce thème sur votre système, il faut suivre les étapes suivantes (les étapes 1 et 2 sont seulement nécessaire si conky n’est pas installé sur votre système).

Etape 1: Installation de Conky

sudo apt-get install conky

Etape 2: Création du répertoire de configuration

mkdir ~/.conky

cd ~/.conky

Etape 3: Téléchargement du thème

Si vous avez une interface Wifi sur votre machine:

wget http://webupd8.googlecode.com/files/better_spacing.tar.gz

Sinon:

wget http://webupd8.googlecode.com/files/no_wireless.tar.gz

Etape 4: Installation du thème

Si vous avez une interface Wifi sur votre machine:

tar zxvf better_spacing.tar.gz

Sinon:

tar zxvf no_wireless.tar.gz

Etape 5: Test du thème (remplacer /home/nicolargo par votre répertoire home)

conky -c /home/nicolargo/.conky/conkyrc_lunatico

Etape 6: Automatisation du lancement de Conky avec ce thème au démarrage de la machine

Il faut aller dans le menu Gnome « Réglage système » > « Application au démarrage » puis cliquer sur ajouter puis saisir les données suivantes:

La commande est la suivante (remplacer /home/nicolargo par votre répertoire home):

conky -p 50 -c /home/nicolargo/.conky/conkyrc_lunatico

L’option -p 50 permet de dire à Conky d’attendre 50 secondes avant de se lancer (sous peine de problème d’affichage).

Catégories
Musique Open-source Web

Gérer sa bibliothèque musicale en 2011

L’informatique en général et Internet en particulier a révolutionné la manière de gérer sa bibliothèque musicale. Sans remonter aux temps des disques vinyles et des K7 que l’on rembobinaient avec des stylos Bic, le numérique a permis de faciliter la vie de l’amateur de musique.

Au commencement vint le CD, une qualité professionnelle accessible au commun des mortel. Je me rappelle encore, non sans émoi, de la première écoute du CD de Jean-Michel Jarre (on ne se moque pas j’étais jeune à l’époque) sur la chaine HIFI flambant neuve de mon père.

Rapidement, quand les ordinateurs sont devenus assez puissant, nous avons commencés (nous les geeks et pas encore la ménagère de moins de 50 ans) à ripper nos chers ($$$) albums. Il fallait à l’époque être patient et pas trop regardant sur la qualité: il était impensable, vu le prix et la capacité des disques durs, de ne pas utiliser des codes compressés (ouha tu encodes en MP3 VBR à 96Kbps, le fou !). Il fallait ensuite connecter sa chaine HIFI avec son PC en perdant encore en qualité. Bref le résultat était loin de la source (CD).

Le coût du stockage, la puissance des ordinateurs et il faut le souligner la facilité d’utilisation de logiciels comme iTunes (ou je sais le mal absolu) ont facilité le passage en douceur du support physique (le CD encore et toujours lui) vers de bons vieux fichiers (MP3 ou AAC) stockés sur votre disque dur. C’était la belle époque des compilations en tout genre et il faut le souligner du piratage à outrance (même de la part de la ménagère de moins de 50 ans). Rien de plus facile que d’insérer un CD (pas forcement le sien) dans son lecteur, d’appuyer sur le bouton importer puis de remettre ce même CD dans sa boî”te.

C’est à cette période que les ventes des « lecteurs MP3 » portables explosent. Il était alors possible d’emporter la totalité (ou une grande partie) de sa bibliothèque musicale lors de ses déplacements. Le rêve ultime pour l’amateur de musique. Le CD meurt, c’est même à se demander si le vinyle ne lui survivra pas…

Pour éviter « l’hémorragie du piratage » (c’est leurs mots pas les miens), les majors se sont donc tournés, à la vitesse d’un éléphant centenaire, vers d’autres modèles de ventes basées sur la musique dé-matérialisée. Plus besoin d’acheter les albums sur un support physique. On achète directement des fichiers qui sont téléchargés directement sur votre disque dur à travers Internet. La révolution est en marche. Le DRM meurt. Apple touche le pactole avec son iTunes Store.

En parallèle, un autre modèle voit alors le jour. Pourquoi télécharger alors que les fichiers existent sur un serveur permettant de les diffuser en streaming (c’est-à-dire un téléchargement au moment de l’écoute et de manière transparent) ? C’est l’ère des Deezer et Spotify.

Les « lecteurs MP3 » sont remplacés par les « smartphones » et on utilise sa liaison 3G pour accéder en streaming à sa musique.

Que nous réserve l’avenir ? Difficile de le prévoir vu à la vitesse dont les choses évoluent. De nouveaux modèles essayent de s’imposer (iCloud Music par exemple) mais qui restent, pour l’instant, des déclinaisons des deux modèles précédents.

Pour en revenir au sujet de ce billet, je vais maintenant vous dire comment je gère ma bibliothèque musicale à la date d’aujourd’hui (en juin 2011). Mes CD ont été vendus ou classés dans deux beaux EasyCase. Ma bibliothèque iTunes comporte un RIP d’assez bonne qualité (MP3 384Kbps ou AAC) de ces CDs. Je l’utilise tous les jours depuis de mon iPod 160 Go pour écouter de la musique chez moi à travers mon installation HIFI. En parallèle, j’utilise le service Premium de Spotify (j’ai un abonnement depuis plus d’un an). Au début, je n’utilisais Spotify que pour écouter des nouveautés, mais il remplace de plus en plus mon lecteur iTunes (surtout depuis que Spotify permet d’importer automatiquement sa bibliothèque iTunes sur son compte et que j’ai pu retrouver mes compilations). Sur mon smarthphone, c’est également Spotify que j’utilise le plus sauf quand je suis à l’étranger ou dans une zone non 3G.

Pourquoi Spotify et pas Deezer ? Je pense que les deux services sont de qualité mais j’ai quelques points qui me semblent à l’avantage de Spotify:

  • je n’aime pas être dépendant d’une liaison Internet pour écouter ma musique (Spotify propose un mode d’écoute off-line ou les fichiers sont téléchargés sur votre machines, PC ou smartphone)
  • la bibliothèque proposé par Spotify me semble plus complète (du moins pour mes goûts musicaux)
  • le client Spotify Linux natif fonctionne très bien et évolue presque au même rythme que les clients Windows et Mac OS
  • la fonction d’importation de sa bibliothèques iTunes est vraiment un plus

Et vous ? Vous en êtes ou avec la fameuse dématérialisation de la musique ?

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

WordPress et le trop plein de fichiers sess_*

Hier, plusieurs lecteurs (merci à eux :)) m’ont signalés que le message suivant s’affichait en haut de mon blog (sous WordPress 3.1.3):

Warning: session_start() [function.session-start]: open(/var/lib/php5/sess_7cad11067bb359c89ee47b9e692e47bf, O_RDWR) failed: No space left on device (28) in/www/wp-content/plugins/twitconnect/twitconnect.php on line 95

Ce message n’apparaissait que pour les lecteurs non authentifiés et uniquement sur certaines pages. Dans une premier temps j’ai donc décidé de désactivé le plugin incriminé dans le message d’erreur (TwitConnect qui permet de s’authentifier sur le blog avec son compte Twitter). J’ai ensuite regarder l’espace disque de mon serveur sans voir de problème. C’est en allant regarder les fichiers dans le répertoire /var/lib/php5 que j’ai commencer à comprendre pourquoi le plugin en question n’arrivait plus à générer de fichiers de sessions PHP (les fameux fichier sess_*). Il y avait en effet plus de 200.000 fichiers de ce type dans ce répertoire. On arrivait donc en limite maximale du nombre de fichiers par sous répertoire sous GNU/Linux en ext3.

Le problème vient sûrement d’un des plugins que j’utilise qui doit créer ces fichiers de sessions sans jamais les purger. Je suspecte (sans avoi de confirmation) le plugin TwitConnect et j’ai donc ouvert un incident sur le forum officiel du plugin.

Pour ne plus avoir de mauvaises surprises dans le futur, j’ai donc mis en place dans la crontab root journalière une commande qui va effacer les fichiers de sessions de plus de deux jours:

find /var/lib/php5/ -type f -atime +2 -name ‘sess_*’ -exec rm -f {} \;

Si vous utilisez également le plugin WordPress TwitConnect, je vous conseille donc de jeter un oeil sur ce répertoire et le nombre de fichiers sess_*.

Pour obtenir le nombre de fichier dans ce répertoire il suffit de saisir la commande suivante:

sudo ls -l /var/lib/php5/ | wc -l

En journée (après la purge de la nuit) je tourne autour des 45.000 fichiers (environ 25 nouveaux fichiers par minutes, mais cela dépend du nombre de visites non authentifiées sur votre blog…).

Catégories
Open-source Planet-libre Systeme

Mon desktop 201106

Comme chaque mois, je vous  présente un de mes bureaux. Ce mois ci, zoom sur mon PC portable perso sous Ubuntu 11.04 (le PC portable pro étant retourné sous Debian 6). Je peaufine ici la customisation de ce bureau sous Unity en y ajoutant notamment Conky pour afficher des informations systèmes directement sur le fond d’écran.

Voici donc ce que cela donne:

Les principales caractéristiques

Conky

Pour installer le thème Conky Orange, il faut bien sur dans un premier temps installer Conky sur votre système (en cliquant directement ici si vous êtes sous Ubuntu) ou en suivant la documentation Ubuntu-fr.

Ensuite, il suffit de saisir les commande suivante dans un terminal:

wget http://gnome-look.org/CONTENT/content-files/137503-conky_orange.zip

mkdir ~/.conky/

cp conky_orange/* ~/.conky/

mv ~/.conkyrc ~/.conkyrc.old

ln -s ~/.conky/conkyrc_orange ~/.conkyrc

Le dock Unity

La configuration d’Unity avait déjà été détaillée dans un dernier billet. Dans le Dock, je configure les applications suivantes pour y être en permanence (bouton droit / conserver dans le dock):

  • Dossier personnel (accès direct à mon $HOME)
  • Chromium (Navigateur Web)
  • Terminator (client terminal)
  • Filezilla (client FTP / SFTP)
  • Hotot (client Twitter / Identi.ca)
  • Pidgin (messagerie)
  • Shutter (capture d’écran)
  • Spotify (ma musique !!!)

Et vous ? Cela donne quoi ?

A vous de nous montrer vos écrans (par exemple en utilisant yFrog puis en partagant l’URL) !

Catégories
Blog Open-source

Le panier du marché libre #10

Dixième édition du panier de liens plus ou moins intéressant que j’ai glané sur la toile.

En bonus la recette des artichauts à la barigoule, perso j’y ajoute un citron confit pendant la cuisson…

Catégories
Nagios Open-source Planet-libre Reseau

Installation pas à pas d’un serveur de supervision Icinga

Icinga est un des nombreux forks libres de Nagios qui font pas mal parler d’eux en ce moment. Il apporte son lot d’amélioration par rapport « à son père » comme une architecture distribuée, une utilisation possible des bases de données MySQL/PgSQL/Oracle ou encore une interface Web tirant partie des dernières technologies dans le domaine (cliquez ici pour tester la démonstration de l’interface Web Icinga). Pour voir une comparaison pas forcément impartiale entre Icinga et Nagios, vous pouvez consulter ce tableau.

Dans ce billet, nous allons installer et configurer un serveur de supervision Icinga sur un serveur Debian (version Lenny ou supérieure mais la procédure doit être facilement adaptable à Ubuntu Server).

Les caractéristiques du serveur Icinga seront les suivantes:

  • Icinga dernière version disponible
  • Données de surperision stockées dans une base de donnée MySQL
  • Interface Web basée sur Apache
  • Plugins Nagios 1.4.15

Cette procédure a été testé sur une machine virtuelle (VM) sous Debian 6.0 Squeeze fraichement installée.

Préparation de l’installation

Nous allons installer Icinga depuis les sources se trouvant dans le dépôt Git officiel. Nous aurons ainsi la dernière version disponible. Pour cela, il est nécessaire d’installer certaines librairies et outils sur votre système.

Note: Les commandes de ce billet ont été saisies dans un terminal administrateur. Il est également possible d’utiliser la commande sudo <cmd> pour executer certaines taches en tant qu’administrateur ou su – -c « <cmd> ».

On installe les pré-requis (à adapter si vous utilisez Ubuntu Server en lieu et place de Debian):

ETAPE 1

apt-get install apache2 build-essential libgd2-xpm-dev libjpeg62 libjpeg62-dev libpng12-0 libpng12-dev mysql-server mysql-client libdbi0 libdbi0-dev libdbd-mysql snmp libsnmp-dev git

En cas d’erreur (par exemple paquet introuvable), il faudra faire une recherche dans les dépots et remplacer la librairie manquante par la nouvelle version.

On passe ensuite à la création du compte utilisateur et du groupe avec lesquels Icinga sera exécuté.  Je préfère personnellement utiliser le compte nagios (et le groupe nagios) plutôt que icinga comme on le trouve sur la documentation officielle. En effet, cela permet de simplifier une migration éventuelle d’un serveur Nagios vers Icinga.

ETAPE 2

groupadd nagios

useradd -g nagios -c « Nagios User » -s /bin/noshellneeded nagios

passwd nagios

usermod -a -G nagios www-data

Installation depuis les sources (Git)

On passe ensuite à la récupération de la dernière version de Icinga sur le gestionnaire de version Git officiel.

ETAPE 3

cd /usr/src

git clone git://git.icinga.org/icinga-core.git

cd /usr/src/icinga-core/

git submodule init

git submodule update

Puis on compile « la bête » avec les commandes suivantes:

ETAPE 4

./configure –with-icinga-user=nagios –with-icinga-group=nagios –with-nagios-user=nagios –with-nagios-group=nagios –with-command-user=nagios –with-command-group=nagios –prefix=/usr/local/icinga –enable-idoutils –enable-ssl

make all

make fullinstall

Si vous souhaitez protéger l’accès à l’interface Web d’Icinga avec un login/password, il faut également saisir la commande suivante. Par exemple pour définir un compte icingaadmin:

htpasswd -c /usr/local/icinga/etc/htpasswd.users icingaadmin

Installation des plugins Nagios

Comme Icinga est un fork de Nagios, il est possible d’utiliser directement les plugins de Nagios en version 1.4.15 au moment de la rédaction de ce billet.

Pour les installer on saisi:

ETAPE 5

cd /usr/src

wget http://downloads.sourceforge.net/project/nagiosplug/nagiosplug/1.4.15/nagios-plugins-1.4.15.tar.gz

tar zxvf nagios-plugins-1.4.15.tar.gz

cd nagios-plugins-1.4.15

./configure –prefix=/usr/local/icinga –with-cgiurl=/icinga/cgi-bin –with-htmurl=/icinga –with-nagios-user=nagios –with-nagios-group=nagios

make

make install

make install-root

Configuration de IDO

Arrivé à ce point de l’installation, vous devriez avoir un Icinga fonctionnel avec une base de donnée locale sous la forme de fichier texte (c’est le mode par défaut de Nagios). Pour avoir une installation évolutive et permettant d’exploiter les données issues de Nagios sur d’autres applications, il est nécessaire de configurer Icinga pour utiliser une base de donnée (MySQL dans notre exemple) en lieu et place de ces fichiers textes.

Pour cela, nous allons utiliser le module IDO qui fait l’interface entre Icinga et MySQL (ou PgSQL…). Ce module est l’équivalent du module NDO dans l’écosystème Nagios.

Le module IDO est installé par défaut suite à l’utilisation de l’option –enable-idoutils lors de la configuration de la compilation de Icinga. Il suffit donc de le configurer en suivant les indications suivantes:

ETAPE 6

cp /usr/local/icinga/etc/idomod.cfg-sample /usr/local/icinga/etc/idomod.cfg

sed -i -e « s/^use_ssl=0/use_ssl=1/g » /usr/local/icinga/etc/idomod.cfg

sed -i -e « s/^output_type=unixsocket/output_type=tcpsocket/g » /usr/local/icinga/etc/idomod.cfg

sed -i -e « s/^output=\/usr\/local\/icinga\/var\/ido.sock/output=127\.0\.0\.1/g » /usr/local/icinga/etc/idomod.cfg

cp /usr/local/icinga/etc/ido2db.cfg-sample /usr/local/icinga/etc/ido2db.cfg

sed -i -e « s/^use_ssl=0/use_ssl=1/g » /usr/local/icinga/etc/ido2db.cfg

sed -i -e « s/^socket_type=unix/socket_type=tcp/g » /usr/local/icinga/etc/ido2db.cfg

sed -i -e « s/^#broker_module=\/usr\/local\/icinga\/bin\/idomod.o\ config_file=\/usr\/local\/icinga\/etc\/idomod.cfg/broker_module=\/usr\/local\/icinga\/bin\/idomod.o\ config_file=\/usr\/local\/icinga\/etc\/idomod.cfg/g » /usr/local/icinga/etc/icinga.cfg

cat >> /usr/local/icinga/etc/modules/idoutils.cfg < EOF
define module{
module_name ido_mod
path /usr/local/icinga/bin/idomod.o
module_type neb
args config_file=/usr/local/icinga/etc/idomod.cfg
}
EOF

On doit enfin créer la base de donnée MySQL qui va stocker les données d’Icinga.

ETAPE 7

mysql -u root -p

mysql> CREATE DATABASE icinga; GRANT USAGE ON *.* TO ‘icinga’@’localhost’ IDENTIFIED BY ‘icinga’; GRANT SELECT , INSERT , UPDATE , DELETE ON icinga.* TO ‘icinga’@’localhost’;

mysql> FLUSH PRIVILEGES;

mysql> quit

mysql -u root -p icinga < /usr/src/icinga-core/module/idoutils/db/mysql/mysql.sql

Par défault, la base de donnée s’appelle icinga et elle sera accessible seulement en local (localhost) par l’utilisateur MySQL icinga avec le mot de passe icinga. (vous pouvez bien sur changer ces paramètres dans la base de donnée mais il faudra alors veiller à également les modifier dans le fichier ido2db.cfg).

Test de l’installation d’Icinga

On relance les processus pour prendre en compte notre configuration:

ETAPE 8

/etc/init.d/ido2db start

/etc/init.d/icinga start

/etc/init.d/apache2 restart

Puis on automatise le démarrage d’Icinga au prochain boot du serveur:

ETAPE 9

update-rc.d ido2db defaults

update-rc.d icinga defaults

Vous devriez avoir un Icinga fonctionnel ! Pour vérifier ceci, il suffit de pointer un navigateur Web vers l’URL suivante: http://<adresse ip serveur icinga>/icinga (ou http://localhost/icinga)

Migration de votre configuration Nagios (optionnel)

Comme nous l’avons vu au début de ce billet, Icinga est un fork de Nagios. C’est à dire qu’il est tout à fait possible d’utiliser les plugins et les configurations d’un serveur Nagios existant directement dans votre nouveau serveur Icinga.

Je vous conseille dans un premier temps d’archiver la configuration initiale de Icinga pour pouvoir revenir en arrière en cas de problème:

cp -R /usr/local/icinga/etc /usr/local/icinga/etc.default

Ensuite on copie la configuration depuis le répertoire de Nagios. Je pars sur l’hypothèse ou le serveur Nagios est installé sur la même machine que votre serveur Icinga. Si ce n’est pas le cas, il faudra transférer les fichiers depuis votre serveur Nagios.

cp -R /usr/local/nagios/etc/* /usr/local/icinga/etc/

On transforme ensuite la configuration pour l’adapter à Icinga:

mv /usr/local/icinga/etc/nagios.cfg /usr/local/icinga/etc/icinga.cfg

sed -i ‘s/nagios/icinga/g’ /usr/local/icinga/etc/icinga.cfg

sed -i ‘s/nagios/icinga/g’ /usr/local/icinga/etc/cgi.cfg

sed -i ‘s/nagios/icinga/g’ /usr/local/icinga/etc/resource.cfg

cp /usr/local/icinga/etc.default/htpasswd.users /usr/local/icinga/etc/

On devrait ainsi avoir une configuration mélangeant celle faite pour Icinga (notamment en ce qui concerne IDO) et votre ancienne configuration de Nagios.

On vérifie que la configuration ne comporte pas d’erreur:

/usr/local/icinga/bin/icinga -v /usr/local/icinga/etc/icinga.cfg

Si c’est le cas, il suffit de relancer Icinga pour prendre en compte cette configuration:

/etc/init.d/ido2db restart

/etc/init.d/icinga restart

/etc/init.d/apache2 restart

Vous pouvez faire fonctionner les deux services (Nagios & Icinga) en parallèle sans aucun problème. Cela peut être utile pour une phase de migration. Par contre il faut garder à l’esprit que vous aurez deux fois plus de requêtes vers vos serveurs…

Sources: