Catégories
Open-source Reseau

Nagios et les greffons

Nagios est un outil libre de monitoring réseau souvent abordé dans ce blog. A mes yeux, la principale force de ce produit est sa grande modularité qui lui permet de s’adapter aux besoins des utilisateurs. Il est ainsi possible de surveiller un grands nombres de paramètres sur les machines de votre réseau. Nous allons dans ce billet évoquer les différentes méthodes que l’on peut utiliser pour récupérer ces informations.

Le protocole SNMP

C’est LE protocole pour la gestion de réseaux. Basée sur UDP (port 161), ce protocole de communication permet la remontée d’informations stockées dans la table MIB (« Management Information Base ») des machines. SNMP se base sur une architecture client (Nagios) / serveur (la machine à surveiller). Il est donc nécessaire que vos machines soient compatibles SNMP. C’est le cas de la plupart des équipements réseaux de type routeurs, commutateurs Ethernet…

Sur les serveurs de type Linux, il suffit d’installer le daemon snmpd de la suite Open-SNMP. Sur Windows, il est également possible d’installer le daemon Net-SNMP. Enfin, Mac OS X inclue un daemon SNMP (UCD-SNMP), il suffit de suivre cette procédure pour l’activer.

Les plugins locaux

En standard, SNMP ne remonte que des informations systèmes basiques. Pour aller plus loin et surveiller des processus plus complexe, Nagios à mis en place un système de type plugins locaux. Un plugin local est un script localisé sur le serveur Nagios (/usr/lib/nagios/plugins sous Linux, c’est pour cela que l’on dit qu’il est local).

Ce script, lancé à la demande de Nagios, doit retourner un code dont la signification est la suivante:

  • Code 0: OK – Tout va bien
  • Code 1: WARNING – Alerte
  • Code 2: CRITICAL – Alerte critique
  • Code 3: UNKNOWN – Problème lors de l’exécution du plugin

En plus de ces codes, un plugins peut fournir d’autres informations (sous la forme d’une chaine de caractères) qui seront affichées à coté du statut de la machine.

Pour ceux que cela intéresse, j’ai écrit un petit tutoriel sur la création d’un plugin pour Nagios.

Les plugins actifs avec NRPE

A la différence des plugins locaux, le plugin NRPE permet l’exécution de plugins dit actifs directement sur les machines à surveiller.
L’architecture est la suivante (schéma trouvé sur le site officiel de Nagios):

Avec NRPE, la demande d’exécution d’un plugin actif est faite à l’initiative du serveur Nagios. La procédure interne est la suivante:

  • le serveur Nagios demande, via le client NRPE, l’exécution du plugin P sur la machine H
  • le daemon NRPE hébergé sur la machine H, reçoit la requête d’exécution du plugin P
  • le plugin P est exécuté sur la machine H
  • le daemon NRPE de la machine H envoie le résultat du plugin P au serveur Nagios
  • le serveur Nagios interprète les résultats retournés par le pugin P

Les plugins passifs avec NSCA

Comme l’on vient de le voir NRPE est déclenché à l’initiative du serveur Nagios. Ce mode de fonctionnement peut poser problème, par exemple dans le cas ou les machines à surveiller son derrières un réseau sécurisé par un Firewall ou si le processus à surveiller demande une fréquence d’exécution très courte. Le plugin NSCA répond à ce problème en proposant l’exécution de plugins passifs sur les machines à surveiller.

Ici, c’est donc le daemon NSCA qui va envoyer l’information au serveur Nagios. On peut comparer cette fonction à un TRAP SNMP.

et pour Windows ?

Les plugins NRPE et NSCA ne sont disponibles que pour Linux et Mac OS X. Si vous souhaitez surveiller des machines sous Windows (il vaut mieux les surveiller de prêt ces bêtes là…) , il va falloir utiliser le plugin NSClient.

Cliquez ici pour voir tous mes billets sur Nagios.

Catégories
Blog

Plugin wordpress: Homepage Excerpts FR

Le plugin Homepage Excerpts permet d’optimiser votre blog pour les SEO. Pour cela, il va tronquer automatiquement les articles afin d’éviter les contenus dupliqués. Rien de très original vous allez me dire, oui mais ce plugin fait ce que les autres ne font pas: on peut définir à partir de quel article, le tronquage sera effectué.

Les options suivantes peuvent être configurées:

  • Le nombre d’articles à afficher en entier (donc non tronqués)
  • Utiliser le tronquage manuel de Worpress
  • Nombre de mot à afficher (quand l’option tronquage manuel est fixé à « Non »)

Homepage Excerpts FR image

Comme je suis un bon loulou, j’ai traduit le plugin en Français, vous pouvez le télécharger ici:

Homepage Excerpts en Français

PS: suite à la demande de l’auteur je suis dans l’obligation de supprimer ce lien.
Je vais essayer de lui proposer d’héberger la version Française sur son site.

Si vous préféré la version originale, c’est par ici.

Catégories
Blog

Le top des lecteurs dans un widget

Je viens juste d’installer un nouveau widget (sous la forme d’un plugin WordPress) permettant d’afficher dans la barre de menu le classement des lecteurs en se basant sur le nombre de commentaires.

La configuration est très bien faite. On peut par exemple:

  • exclure des utilisateurs (par exemple moi…) du classement
  • choisir la durée du calcul (derniers jours / semaines / mois)
  • définir le nombre d’utilisateurs dans la liste
  • choisir si on ajoute un « backlink » avec le nom de l’utilisateur (c’est la moindre des choses :))

Bref un bon moyen pour encourager les commentaires.

Vous pouvez télécharger ce plugin à cette adresse.

Catégories
Blog

Protéger son répertoire WordPress/Plugins

Les plugins font le succès de WordPress. Ce sont aussi des trous potentiels en terme de sécurité. En effet, ces codes PHP développés pour la plupart sous licence GPL ne sont que rarement étudiés en terme de faille informatique.

Il est donc important de mettre à jour régulièrement ces plugins. Mais ce n’est pas tout. En effet, si une personne mal attentionnée (un méchant hackeur) essaye d’exploiter une de ces failles, il doit d’abord en connaître la liste exhaustive. C’est pour cela qu’il est important de protéger le répertoire plugins de votre blog. Pour cela, Bill Hartzer donne une méthode simple et efficace.

Il faut d’abord vérifier s’il est possible de connaître la liste de vos plugins à partir d’un simple navigateur Web. Pour cela, il faut saisir l’URL:

http://addressedevotreblog/wp-contents/plugins

Si votre répertoire est protégé, vous devriez voir le message suivant:

Forbidden
You don’t have permission to access /wp-content/plugins/ on this server.

Si ce n’est pas le cas et que vous voyez l’arborescence de vos plugins, il faut effectuer les taches suivantes:

  • Editer un fichier nommé index.html avec le contenu suivant.
  • Enregistrer le fichier.
  • Télécharger le fichier dans le répertoire /wp-content/plugins/ de votre serveur Web.

Et voilà le travail !

Catégories
Blog

Nouveau concours de plugins WordPress

Le blog WebLogToolsCollection organise un concours de plugins WordPress. Les contraintes sont les suivantes: le plugins doit être sous licence GPL et tourner sous WordPress 2.x. La compétition a débuté le 1 juin et se terminera le 31 juillet.

Le site officiel du coucours se trouve à cette addresse:

http://weblogtoolscollection.com/pluginblog/

Pour l’instant seul 2 plugins ont été soumis, mais ce n’est que le début !

A suivre donc…

Catégories
Blog

Compteur pour votre blog

Suite à la lecture du post d’Eric sur le blog Presse-Citron. J’ai décidé de tester les deux plugins Popularity Contest et Jaw Popular Posts Widget en lieu et place de mon ancien plugin Top posts.

L’installation du premier plugin (Popularity Contest) se fait de manière classique par le menu plugins de WordPress. J’ai cependant du toucher le code du fichier (popularity-contest.php) afin de désactiver l’affichage automatique de la popularité d’un post au bas des articles.

Pour cela il faut changer la ligne:
@define('AKPC_SHOWPOP', 1);
par
@define('AKPC_SHOWPOP', 0);

Une fois cette opération faites, vous avez accès à l’interface de configuration du plugins. La popularité d’un post est calculée par une formule dont vous pouvez jouer sur les variables.

Le deuxième plugin (Jaw Popular Posts) est en fait un widget à insérer à votre menu. Il permet d’afficher le TOP n des posts en se basant sur le classement fourni par le plugin Popularity Contest (il faut donc installer celui-ci en premier).

Le resultat est le suivant:

et hop un plugin de moins et deux de plus 😉

Catégories
Blog

Liste de mes plugins WordPress

Avec un peu de recul et d’utilisation, voici la liste des plugins WordPress que j’utilise sur le blog.

Askimet: TOP « LE » bloqueur de Spam. Simple, efficace, pas besoin d’aller chercher plus loin. Je l’ai installé lors de la migration de mon blog iau début du mois de mars et depuis environ 1000 spams on été bloqués.

Category Manager: Très utile lors de ma migration de Blogger vers WordPress. Ce plugin m’a permis de transformé et modifier mes categories.

Category Tagging: C’est avec ce plugins que j’affiche mon nuage de tag dans mon menu de droite.

Feedburner Feed Replacement: TOP Plugin indispensable si vous souhaitez utiliser Feedburner comme diffuseyr de flux RSS. Il permet de redirgier automatiquement vos adresses de flux RSS vers Feedburner.

Google Analyticator: Si comme moi vous utilisez (entre autres…) Google Analytics pour les statistiques de votre blog, ce plugin faciletera l’insertion du code (script) dans vos pages.

Google Sitemaps: TOP Pour un bon réferencement sous Google, il faut absolument avoir un fichier sitemap (XML) à jour. Ce plugin s’occupe de générer ce fichier pour vous.

Post to PDF: Il porte bien son nom. Il permet d’exporter vos articles au format PDF.

Secure and Accessible PHP Contact Form: Permet l’insertion d’une page contact dans votre blog.

SEO Title Tag: Si vous utilisé UltimateTagWarrior pour la gestion de vos tags. SEO Title Tag permet de modifier le code META de vos pages Web pour en optimiser le référencement dans les moteurs de recherche.

Sidebar Widgets: TOP Permet la gestion de « Widgets » dans votre blog.

Sociable: Permet l’insertion simplifiée de lien vers les sites de type social bookmarkink (digg, scoopeo…).

Subscribe To Comments: Très utile pour les lecteurs qui donnent leur avis sur le blog. Ce plugin leur permet de recevoir une notification par mail quand un nouveau message apparait.

Top Posts by Category: Permet l’affichage du classement des articles (global ou par categorie).

Ultimate Tag Warrior: TOP Indispensable à mes yeux. Permet d’affecter des tags aux articles.

Voila pour l’instant. Si je suis passé à coté de plugins indispensables merci de me prévenir 😉

Catégories
Reseau

Creation d’un plugins pour Nagios

Nous allons dans ce post écrire un plugins (très simple) pour Nagios. Le corps de ce plugins pourra vous servir de base pour réaliser des plugins plus complexes.

Suite à un post sur l’installation de Nagios, je me suis penché sur l’écriture d’un plugins permettant de vérifier qu’un processus est bien lancé sur un serveur distant.

Voici ce que je l’on attend de notre plugins:

  • Ouvrir une session SSH vers le serveur distant
  • Lancement d’un script vérifiant si un processus (testd) est lancé
  • Renvoie de l’état du processus (OK / ERROR / WARNING)
    • OK: Le processus (testd) est lancé et fonctionne correctement
    • ERROR: Le processus n’est pas lancé
    • WARNING: Le processus est lancé mais ne fonctionne pas correctement

Avant d’entrer dans le vif du sujet, il faut savoir que les plugins Nagios sont de simple « scripts shell » retournant un code de status. Ces plugins sont localisés dans le répertoire /usr/lib/nagios/plugins (sous Linux). Un petit coups de ls donne la liste des plugins installés par défaut:

# ls
check_http check_pgsql check_smtp check_udp2 check_imap check_mysql check_ping check_spop check_udrelay term_power check_clamd check_jabber check_mysql_query check_pop check_ssmtp check_dns check_ldap check_nntp check_scheduler check_tcp check_ftp check_ldaps check_nntps check_simap check_udp …

Nous allons donc dans un premier temps créer le plugins qui va lancer la commande sur le serveur distant:

# vi check_testd
#!/bin/sh

##################################################################
# Creation: Nicolargo
# Last Modification:
# This script checks testd daemon is running on a server
##################################################################

ssh nagios@$1 /usr/local/bin/nagios_testd.pl

Une fois l’automatisation du SSH effectuée entre votre serveur Nagios et votre serveur distant (il ne faut pas que le script demande le password…). Il reste à créer le script nagios_testd.pl (je l’ai developpé en perl mais rien n’empêche de le faire en SH) dans le réperoire /usr/local/bin du serveur distant.

# vi /usr/local/bin/nagios_testd.pl
#!/bin/sh

##################################################################
# Creation: NicoLargo
# Last Modification:
# This script is polling if testd daemon is running
##################################################################

STATE_OK=0
STATE_WARNING=1
STATE_CRITICAL=2
STATE_UNKNOWN=3
STATE_DEPENDENT=4

ps auxw | grep [t]estd | grep -v nagios > /dev/null
STATE=$?
if [ « $STATE » = « $STATE_OK » ]
then
echo « TESTD OK »
exit 0
else
echo « TESTD Failed »
exit $STATE_CRITICAL
fi

Pour tester votre plugins, rien de plus simple, il suffit de lancer la ligne de commande sur votre serveur Nagios:

# /usr/lib/nagios/plugins/check_testd.sh monserveurdistant.mondomaine.com
TESTD OK

Si cela ne fonctionne pas, il faut d’abord vérifier que les fichiers ont les bons droits (lecture et execution) et que le SSH fonctionne correctement entre les deux machines.

Une fois le plugins validé, il ne reste plus qu’a l’intégrer dans vos fichiers de configuration.

# vi /etc/nagios/checkcommands.cfg

# ‘check_testd’ command definition
define command{
command_name check_testd
command_line $USER1$/check_testd $HOSTADDRESS$
}

et enfin:

# vi /etc/nagios/services.cfg

define service{
use generic-service
host_name monserveurdistant.mondomaine.com
service_description TESTD
check_command check_testd
}

Voili a+

Catégories
Blog

Plugins indispensables pour WordPress

Ma migration de Blogger vers WordPress m’a permis de regarder de plus près les plugins de WordPress. Il en existe un nombre impressionnant (environ 1300 références sur le site http://wp-plugins.net/).

Voici pour ma part, la liste des plugins que je juge indispensables:

Akismet: Le premier plugins a installer sur son blog quand on autorise les commentaires. C’est en fait un anti-spam qui va vérifier dans une base de donnée si le commentaires n’est pas un spam. Vous avez besoin de générer une clés pour configuer Akismet (WordPress.com API key).

Feedburner Feed Replacement: Si comme moi vous hébergé votre flux RSS chez Feedbuner, ce plugins vous permet de rediriger automatiquement tout vos flux vers eux.

Google Analyticator: Si vous utilisé le service Analyticator de Google, ce plugins insére pour vous automatiquement le script nécessaire.

Google Sitemaps: Ce plugins permet de générer un fichier sitemap.xml pour le moteur de recherche Google (via http://www.google.com/webmasters/tools/).

Lightbox JS v2.2 Plugin: Permet de visualiser les images de votre blog de manière sympatique 😉 (voir exemple sur cette page). Il suffit d’ajouter le tag suivant rel= »lightbox[roadtrip] » dans le lien de votre image (ou le tag rel= »lightbox » dans les autres liens).

SEO Title Tag: Modifie les meta-tags des article pour un meilleur référencement.

Sidebar Widgets: Ajoute une fonction de Widget (a déplacer) dans votre menu (side bar) WordPress. Ce plugins ajoute une nouvelle option au menu « Presentation ».

Sociable: Ajoute en bas des posts des liens vers les sites de social blogging (comme Dig, Technorati…).

Subscribe To Comments: Permet a un lecteur de suivre le fil d’une discussion en s’abonnant aux commentaires sur un post.

Ultimate Tag Warrior: LE plugins pour gérer vos tags.

Voili, il doit y en avoir plein d’autres mais je débute en WordPress. A vous de me dire si je passe à coté de best-of !