Tutoriels vidéos
Windows server
  • Windows Serveur 2012 : Active Directory et DNS

    Windows Serveur 2012 : Active Directory et DNS Contrairement à Windows 2008 R2, il faut débord installer le rôle avant de créer L'active Directory. Pré-requis: - Une adresse IP statique doit être configuré. I - Installation du service Active directory et DNS Dans la console "Server Manager", rendez-vous dan[...]

  • Les types de comptes d’utilisateurs windows

     Les types de comptes d’utilisateurs Windows Il existe plusieurs types de comptes d’utilisateurs dans Windows : Comptes Administrateur : Ils permettent aux utilisateurs d’ouvrir une session en tant qu’administrateurs. Ce compte peut exécuter n'importe quelle instruction sur le[...]

  • Comment tester un login Windows sans ouvrir de session

    Comment tester un login Windows sans ouvrir de session. Voici un utilitaire qui me rend de grand service. testADLogin permet de tester la validité d’un compte dans une architecture Active Directory sans ouvrir de session. En plus le programme est hyper simple. Tout est dit dans le titre, vous allez pouvoir t[...]

  • Gérer Windows Server en ligne de commande

    Pourquoi installer Windows Server Core ? Lorsque l’on installe Windows Server, deux options s’offrent à nous : une installation complète comprenant l’interface graphique, et une installation minimale – presque – sans interface graphique (core). Installer Windows Server en mode « core » ne signi[...]

  • Windows Serveur 2012 : DHCP

    Windows Serveur 2012 : DHCP Ce tutoriel traitera des options de base du rôle DHCP, les configurations avancée sera traité dans un autre tutoriel. I) Installation du service DHCP Dans la console "Server Manager", rendez-vous dans la partie "Dashboard" puis cliquer sur "Add roles and features", La fenêtre ci-[...]

  • réseaux IP
  • Simuler un réseau WAN entre deux réseaux LAN

    Simuler un réseau WAN entre deux réseaux LAN   A partir de sa version 2.6, le noyau Linux dispose d'une fonction permettant de simuler certaines caractéristiques comme un délais de transit, une perte de paquets ou même un débit maximal sur une simple interface réseau locale. J'avais déjà parlé de ce s[...]

  • Simuler un lien WAN sous Linux

    Simuler un lien WAN sous Linux Il peut être utile, dans le cadre de tests applicatifs, de simuler sur votre réseau local (LAN), les caractéristiques d'une liaison distante (WAN). En effet, vos applications peuvent très bien fonctionner sur un réseau LAN et devenir inexploitable sur des liaisons WAN. Nous allons [...]

  • surveiller un réseau informatique, de nombreuses commandes

    Normal 0 21 false false false FR X-NONE AR-SA [...]

  • Découpage d'une plage d'adresses

    Découpage d'une plage d'adresses Ce chapitre va vous demander beaucoup d'attention et de réflexion. Il va y avoir pas mal de calculs et de notions à maîtriser. Ne les négligez pas, car la compréhension des notions abordées sera nécessaire pour la suite du cours ! Les découpages que nous allons aborde[...]

  • Scanner les adresses IP utilisées sur un réseau sans aucun

    Si vous souhaitez scanner une plage d’adresse IP sur votre réseau afin de vérifier la disponibilité d’une ou plusieurs adresses ou inventorier vos machines, voici une astuce toute simple pour le faire sans outils spécifiques,depuis une invite de commande Windows. Pour cela nous allons utiliser [...]

  • linux
  • Installation de Zimbra OSE 7.1.3 sous Ubuntu 10.04 LTS 64bi

    Installation de Zimbra OSE 7.1.3 sous Ubuntu 10.04 LTS 64bits Dans ce premier tutoriel consacré à Zimbra vous allez voir comment installer une machine virtuelle sous Ubuntu 10.04 LTS pour accueillir notre serveur Zimbra. Environnement de test: Comme je l’ai dit dans mon premier article consacré à Zimbr[...]

  • Serveur DHCP sous Linux

    Serveur DHCP sous Linux I. Présentation Un serveur DHCP permet de fournir automatiquement une configuration IP à une machine, par exemple à des ordinateurs, des smartphones, des imprimantes réseau, en gros tous ceux qui peut être connecté à un réseau. Cette configuration IP est composée : d’une adresse IP d’[...]

  • Configuration d'un serveur dédié de A à Z

    Installation d'un serveur dédié de A à Z Installation, configuration et administration d'un serveur dédié Ces tutoriaux ont été réalisés sous Debian (versions Etch 4.0 et Lenny 5.0) mais peuvent être transposés à d'autres distributions Linux, notamment Ubuntu. Ils sont applicables aux serveurs dédiés 1&[...]

  • Installation pas à pas de Xen sous Debian

    Installation pas à pas de Xen sous Debian Le but de ce billet est d'installer un serveur de de virtualisation Xen (Wiki) sur un système GNU/Linux Debian. Ce dernier pourra héberger de manière virtuelle (c'est à dire sur la même machine physique) un nombre important de serveurs, mutualisant ainsi votre [...]

  • Simuler un réseau WAN entre deux réseaux LAN

    Simuler un réseau WAN entre deux réseaux LAN   A partir de sa version 2.6, le noyau Linux dispose d'une fonction permettant de simuler certaines caractéristiques comme un délais de transit, une perte de paquets ou même un débit maximal sur une simple interface réseau locale. J'avais déjà parlé de ce s[...]

  • virtualisation
  • Installation pas à pas de Xen sous Debian

    Installation pas à pas de Xen sous Debian Le but de ce billet est d'installer un serveur de de virtualisation Xen (Wiki) sur un système GNU/Linux Debian. Ce dernier pourra héberger de manière virtuelle (c'est à dire sur la même machine physique) un nombre important de serveurs, mutualisant ainsi votre [...]

  • Administration et utilisation d'Hyper-V R2

    Administration et utilisation d'Hyper-V R2 Nous allons voir dans ce guide comment administrer Hyper-V R2. Une fois connecté sur votre console d'administration (Hyper-V Manager), toutes les actions disponibles se trouvent dans la partie droite de votre MMC (partie « Actions »).        [...]

  • Installation et configuration de VMware Vcenter Server 5.0

    Installation et configuration de VMware Vcenter Server 5.0 I - Pré-requis Le .NET Framework 3.5 ou plus doit etre installé sur le serveur, comme le montre l'image ci-dessous, II - Installation de la partie serveur Inséré le DVD ou monté l'image ISO sur le serveur, la fenêtre ci-dessous s'ouvre, cliquer su[...]

  • installer un hyperviseur VMware ESXi 5.5

    Vmware est pour moi la meilleur solution de Virtualisation. Je profite justement d’une install d’un Hyperviseur Vmware Esxi 5.5 pour vous rédiger un petit tutoriel sur son installation. 1) Installation d’un hyperviseur ESXI -Tous d’abord inscrivez vous sur le site de Vmware est téléchargez gratuitement l’I[...]

  • mise en place du rôle Hyper-V sous Windows Serveur 2012 R2

    mise en place du rôle Hyper-V sous Windows Serveur 2012 R2 ainsi que la configuration d’une machine virtuel. Rappel : Hyper-V, également connu sous le nom de Windows Server Virtualisation, est un système de virtualisation basé sur un rôle de Windows Server. Hyper-V vous permet de consolider les charges de[...]

  • ACTIVE DIRECTORY
  • Windows Serveur 2012 : Active Directory et DNS

    Windows Serveur 2012 : Active Directory et DNS Contrairement à Windows 2008 R2, il faut débord installer le rôle avant de créer L'active Directory. Pré-requis: - Une adresse IP statique doit être configuré. I - Installation du service Active directory et DNS Dans la console "Server Manager", rendez-vous dan[...]

  • Lister les comptes ordinateurs inactifs de votre domaine av

    Lister les comptes ordinateurs inactifs de votre domaine avec la commande DSQUERY   Lister les comptes ordinateurs inactifs de votre domaine avec la commande DSQUERY. Dans ce tutoriel, nous utiliserons la commande dsquery, pour effectuer quelques tâches d’administrations sur notre domaine Acti[...]

  • Les types de comptes d’utilisateurs windows

     Les types de comptes d’utilisateurs Windows Il existe plusieurs types de comptes d’utilisateurs dans Windows : Comptes Administrateur : Ils permettent aux utilisateurs d’ouvrir une session en tant qu’administrateurs. Ce compte peut exécuter n'importe quelle instruction sur le[...]

  • Comment tester un login Windows sans ouvrir de session

    Comment tester un login Windows sans ouvrir de session. Voici un utilitaire qui me rend de grand service. testADLogin permet de tester la validité d’un compte dans une architecture Active Directory sans ouvrir de session. En plus le programme est hyper simple. Tout est dit dans le titre, vous allez pouvoir t[...]

  • Active Directory

    Active Directory I. L’Active Directory L’Active Directory est un annuaire LDAP pour les systèmes d’exploitation Windows, le tout étant créé par Microsoft. Cet annuaire contient différents objets, de différents types (utilisateurs, ordinateurs, etc.), l’objectif étant de centraliser deux fonctionnalit[...]

  • Deployment
  • la mise en place de MDT pour réaliser des déploiements d'OS

    la mise en place de MDT pour réaliser des déploiements d'OS  Ce qu’il vous faut Windows ADK http://www.microsoft.com/fr-fr/download/details.aspx?id=39982 Une ISO Windows 8.1 http://technet.microsoft.com/fr-fr/evalcenter/hh699156.aspx Plus d’info sur le choix de l’ISO : choix-iso-creation-mas[...]

  • Masquer la connexion Wifi au déploiement de Windows 8.1 ave

    Masquer la connexion Wifi au déploiement de Windows 8.1 avec MDT 2013 Il y a un bug dans MDT 2013 à la création de la séquence de tâches pour déployer Windows 8.1. En effet la séquence de tâches utilise le mauvais modèle de fichier de réponse où il manque plusieurs propriétés dans la section <OOBE>, com[...]

  • Migration Windows XP vers Windows 8.1 avec MDT 2013

    Migration Windows XP vers Windows 8.1 avec MDT 2013 Vous souhaitez réaliser une migration Windows XP vers Windows 8.1 avec MDT 2013? C’est possible, mais pas si simple. Avant d’entrer dans le vif du sujet, il faut voir les nouveautés de Windows ADK pour Windows 8.1 et les nouveautés MDT 2013. Étant donné qu’USMT[...]

  • Créer l’image de référence Windows 8.1 avec MDT 2013

    Précédemment j’ai écrit comment déployer Windows 8.1 avec MDT 2013. Mais qu’en est-il de l’image de référence? Cette méthode consiste à déployer Windows 8.1, installer vos logiciels, configurer certains options puis exécuter sysprep et capturer l’image. C’est cette image que vous utiliserez par la suite en produc[...]

  • Déployer Windows 8.1 avec MDT 2013

    Si vous êtes nouveau dans le déploiement de Windows, je recommande toujours Microsoft Deployment Toolkit (MDT) aux professionnels de l’informatique qui souhaitent personnaliser et déployer Windows dans leurs petites et moyennes organisations. Cet outil fournit une interface utilisateur facile à utiliser et automa[...]

  • Cisco
  • Configurer et vérifier NTP dans le mode client et le mode s

    Configurer et vérifier NTP dans le mode client et le mode serverSynchronisation temporelle NTP1. Network Time Protocol (NTP)Network Time Protocol (NTP) est un protocole TCP/IP qui permet de synchroniser à travers le réseau l’horloge locale des ordinateurs sur une date et une heure de référence. Le projet NTP propose u[...]

  • ROUTAGE STATIQUE

    ROUTAGE STATIQUE Normal 0 21 false false false FR X-NONE AR-SA [...]

  • Configurer un tunnel IPSec Cisco entre deux réseaux locaux

    Configurer un tunnel IPSec Cisco entre deux réseaux locaux Un petit poste "pense-bête" pour configurer un tunnel IPSec avec "pre-share key" (c'est à dire une clés secrète seulement connue par les deux sites) et cryptage AES 256 bits entre deux LAN connectés à Internet par des routeurs Cisco (compatible avec I[...]

  • Installer un serveur TFTP pour vos Cisco

    Installer un serveur TFTP pour vos Cisco Un rapide billet pour rappeler les étapes nécessaires à la mise en place d'un serveur TFTP sur un système GNU/Linux (Debian Squeeze) afin de sauvegarder les configurations de vos routeurs Cisco. Installation du serveur TFTPD On utilise le paquet tftpd qui se trouve dan[...]

  • Cisco et le routage inter VLAN

    Cisco et le routage inter VLAN Nous allons dans ce billet mettre en place une architecture réseau basée sur des équipements Cisco (un routeur 1841 et un switch 2960). Deux réseaux LAN différents (un pour les chefs, un autre pour le peuple) seront disponibles sur le même switch (en utilisant les fonctions VLAN). L[...]

  • supervision
  • Installation pas à pas de Nagios

    Installation pas à pas de Nagios Trêve de blabla, entrons directement dans le vif du sujet avec l'installation du système d'exploitation et des pré-requis systèmes qui vont servir de base à notre serveur de supervision. Avant de commencer L’installation de Nagios est à ré[...]

  • Installation Opsview sur Ubuntu 8.04 LTS

    Installation Opsview sur Ubuntu 8.04 LTS Pré-Requis L’installation Opsview demande quelques pré-requis, mais il s’avère qu’il est très simple de les satisfaire. Entrer le dépôt d’Opsview dans la source.list de APT Java est obligatoire (mais pas d’inquiétude, il sera installé avec les autres dépendances) [...]

  • Installation de Cacti sous Debian

    Installation de Cacti sous Debian  Les systèmes informatiques d'entreprise associent une diversité de services proposés (routage, proxy, serveur web...), à plusieurs types de réseaux (LAN, Intranet, DMZ, Internet...). La disponibilité et le bon fonctionnement de chaque machine participant à cet ensemble[...]

  • Le serveur de supervision libre – PART 4

    Le serveur de supervision libre – PART 4 Nous arrivons bientôt à la fin de l'installation de notre serveur de supervision. Avec Nagios et Centreon il est parfaitement opérationnel. Je trouve cependant qu'il manque encore à Centreon des fonctions de graphes évoluées. C'est pour cela que je propose d'ajouter s[...]

  • Le serveur de supervision libre – PART 1

      Le serveur de supervision libre – PART 1 Cela fait maintenant un petit moment que ce blog existe. Il aborde bien des sujets autours des logiciels libres mais il y en a un qui suscite plus d'intérêt que les autres: la supervision système et réseau. La complexité de ces logiciels et la faible docum[...]

  • Windows Server Core
  • Configurer pas-à-pas un Windows 2008 en version CORE

    Configurer pas-à-pas un Windows 2008 en version CORE La nouvelle version du système d’exploitation serveur de Microsoft est vraiment géniale, à mon sens ! Pleins de nouveautés font leurs apparitions, comme le mode CORE, par exemple. Mais tout «indowsien/ne » que n[...]

  • Basculer entre les modes Graphique et Core sur Windows Serv

    Basculer entre les modes Graphique et Core sur Windows Server 2012 Un serveur Windows Server 2008 ou Windows Server 2012 peut être installé dans un mode appelé mode Core ou Minimale. Il s’agit d’un mode d’installation épuré ou le Shell graphique n’est pas installé. Autrement dit il n’y a ni bu[...]

  • Windows Server 2012 : Activer l’interface graphique après u

    Windows Server 2012 : Activer l’interface graphique après une installation en mode Core Si vous avez installé Windows  Server 2012 en mode « Core » et que vous souhaitez finalement activer l’interface graphique, pas de panique, vous n’aurez pas à tout réinstaller ! Ce petit tutoriel vous explique [...]

  • Installer Windows Server en mode « core »

    Installer Windows Server en mode « core » I. Les options d’installation Il existe deux manières d’utiliser en mode « core » :   Windows Server Core « standard » Il s’agit tout simplement d’une installation minimale qui donne lieu à un système sans interface graphique et allégé tel [...]

  • Modifier la résolution de l’écran

    Modifier la résolution de l’écran Pour changer la résolution d’écran, nous utiliserons la commande Set-DisplayResolution. En fait, c’est simple d’utilisation puisqu’il suffit de préciser la largeur et la hauteur de l’écran qui définiront la résolution. Par exemple, si l’on veut définir une résol[...]

  • script
  • Le JavaScript++

    TypeScript est un langage très récent (février 2012) qui a été conçu par Anders Hejlsberg, également concepteur du langage C#. Le but premier de TypeScript est de rendre plus facile et plus fiable l'écriture de code en JavaScript pour des applications de grande ampleur. Cet article présentera de fa[...]

  • Lister les alias Powershell

    Lister les alias Powershell Il est possible d’utiliser des Alias pour appeler les CmdLets de Powershell. Autrement dit il est possible d’utiliser un raccourcis plutôt qu’une commande parfois fastidieuse à taper ou à se souvenir. Voici comment obtenir la liste des Aliaspro[...]

  • exécuter un script PowerShell

    Comment exécuter un script PowerShell Dans l’article comment installer et vérifier le bon fonctionnement de PowerShell, nous avions ouvert l’interpréteur de commande PowerShell et exécuté quelques instructions. Si l’utilisation de l’interpréteur suffit pour lancer quelques commandes occasionnelles,[...]

  • PowerShell : Arbre de processus

    PowerShell : Arbre de processus Depuis quelques temps, je travaille avec PowerShell, le langage de scripts de Microsoft. C'est un langage que j'ai eu beaucoup de mal à prendre en main. En avançant dans l'apprentissage, on se rend compte que cet outil peut se révéler très puis[...]

  • Empêcher les mises à jour Adobe Reader DC

    Empêcher les mises à jour Adobe Reader DC Un problème qui se pose lorsqu'on administre un parc informatique est celui des droits utilisateurs. Ne pas leur laisser les droits administrateurs est une règle de base. Cependant, cela peut parfois bloquer les mises à jour de c[...]

  • Messagerie
  • Zimbra OSE

    Zimbra OSE Dans cette série de tutoriel consacré à Zimbra, nous allons voir comment intégrér un serveur mail Zimbra dans une infrastructure système déja existante et comment l’intégrer dans un domaine Active Directory. Cela va se passer en plusieurs étapes: Configuration du serveur pour installer Zi[...]

  • Zimbra: Installation et configuration de Zpush 2

    Zimbra: Installation et configuration de Zpush 2 Bonjour, cela faisait longtemps que je n’avais pas fait de tutoriel pour Zimbra. Dans ce tuto je vais vous expliquer la configuration de Zpush 2 pour Zimbra 8 sous Ubuntu 12.04 LTS Qu’est-ce que ZPush? La version payante de Zimbra (NE) permet la synch[...]

  • Installation de Zimbra OSE 7.1.3 sous Ubuntu 10.04 LTS 64bi

    Installation de Zimbra OSE 7.1.3 sous Ubuntu 10.04 LTS 64bits Dans ce premier tutoriel consacré à Zimbra vous allez voir comment installer une machine virtuelle sous Ubuntu 10.04 LTS pour accueillir notre serveur Zimbra. Environnement de test: Comme je l’ai dit dans mon premier article consacré à Zimbr[...]

  • la messagerie électronique

    NOTIONS DE BASE RÉSEAU INFORMATIQUE réseau informatique Le réseau la reconnaissance des machines entre elles, le transport de l'information. L'adresse IP Les serveurs : à votre service ! Serveur / Client Les protocoles Exemple : Les serveurs mails 1. L'expéditeur écrit le courrier. 2. Il le post[...]

  • VOip
  • Qu’est-ce qu’un système PBX?

    Qu’est-ce qu’un système PBX? Le terme PBX revient souvent dans les offres des fournisseurs téléphoniques, parfois sous la forme de PBX hébergé, PBX IP ou Cloud PBX. Pour ceux qui connaissent moins leur lexique téléphonique, l’offre d’un système PBX avec des fonctionnalités quelconque[...]

  • De la téléphonie IP très facilement avec Asterisk

    De la téléphonie IP très facilement avec Asterisk Je vous propose en ce début d’année un tuto assez simple sur Asterisk. Si vous ne le connaissez pas, c’est un logiciel libre qui permet de faire de la téléphonie par IP, c’est assez sympa à faire ! Le tutorial a été réalisé sur une Debian 7.3 64bits m[...]

  • Qu’est ce que la Voix sur IP (VoIP)?

    Qu’est ce que la Voix sur IP (VoIP)? La Voix sur IP, raccourci de voix par le protocole internet, est aussi connue sous le terme de VoIP. La voix sur IP se réfère à la diffusion du flux de la voix sur les réseaux Internet, au lieu des réseaux téléphoniques RTC traditionnels. Le protocole Internet (IP) a ét[...]

  • Installer Asterisk 13 sur Debian 7

    Installer Asterisk 13 sur Debian 7 Bonjour à tous Nous allons voir dans ce tutoriel comment installer Asterisk 13 sur une machine virtuelle sous Debian 7. Installation d’ Asterisk Préparation à l’installation On commence par mettre à jour notre distribution et installer les dépendances nécéssair[...]

  • mettre en place sa téléphonie grâce à Asterisk

    la ligne téléphonique d'une freebox (et sûrement des autres "box") à Skype en passant par les très nombreuses offres disponibles sur le Net, la VoIP (Voice over IP) est partout. Pris dans le contexte d'une architecture domestique ou d'entreprise, la VoIP (Voice over IP ou Voix sur IP) est un nouveau faisc[...]

  • Recent Articles

      Fortinet VPN SSL Vous souhaitez que vos utilisateurs nomades aient toujours accès aux applications présentes au sein de votre entreprise au travers d’un navigateur web? Dans ce tutoriel, je vais vous montrer comment configurer un Firewall Fortinet (Fortigate) [...]

    06 Jul 2021 | 0 commentsVoir article

    Configurer et vérifier NTP dans le mode client et le mode server

    Configurer et vérifier NTP dans le mode client et le mode serverSynchronisation temporelle NTP1. Network Time Protocol (NTP)Network Time Protocol (NTP) est un protocole TCP/IP qui permet de synchroniser à travers le réseau l’horloge locale des ordinateurs sur une date et une heure de référence. Le projet NTP propose u[...]

    25 Jul 2020 | 0 commentsVoir article

    Création d’une règle de pare-feu avec un Fortigate

    Création d’une règle de pare-feu avec un Fortigate I. Présentation Après avoir découvert ce qu’est un Fortinet dans un premier article, je voudrais vous montrer comment mettre en place une règle de Firewall avec quelques-unes des options de sécurité les plus utilisées pour la sécurité ou l’optimisation de n[...]

    06 Aug 2018 | 2 commentsVoir article

    Qu’est-ce qu’un système PBX?

    Qu’est-ce qu’un système PBX? Le terme PBX revient souvent dans les offres des fournisseurs téléphoniques, parfois sous la forme de PBX hébergé, PBX IP ou Cloud PBX. Pour ceux qui connaissent moins leur lexique téléphonique, l’offre d’un système PBX avec des fonctionnalités quelconque[...]

    22 Jul 2018 | 0 commentsVoir article

    Le JavaScript++

    TypeScript est un langage très récent (février 2012) qui a été conçu par Anders Hejlsberg, également concepteur du langage C#. Le but premier de TypeScript est de rendre plus facile et plus fiable l'écriture de code en JavaScript pour des applications de grande ampleur. Cet article présentera de fa[...]

    17 Feb 2018 | 0 commentsVoir article

    De la téléphonie IP très facilement avec Asterisk

    De la téléphonie IP très facilement avec Asterisk Je vous propose en ce début d’année un tuto assez simple sur Asterisk. Si vous ne le connaissez pas, c’est un logiciel libre qui permet de faire de la téléphonie par IP, c’est assez sympa à faire ! Le tutorial a été réalisé sur une Debian 7.3 64bits m[...]

    13 Feb 2018 | 0 commentsVoir article

    Qu’est ce que la Voix sur IP (VoIP)?

    Qu’est ce que la Voix sur IP (VoIP)? La Voix sur IP, raccourci de voix par le protocole internet, est aussi connue sous le terme de VoIP. La voix sur IP se réfère à la diffusion du flux de la voix sur les réseaux Internet, au lieu des réseaux téléphoniques RTC traditionnels. Le protocole Internet (IP) a ét[...]

    13 Feb 2018 | 0 commentsVoir article

    Quelques astuces pour assurer la sécurité de vos données informatiques

    Quelques astuces pour assurer la sécurité de vos données informatiques   Sécurité informatique Chaque année, de nombreux utilisateurs et entreprises se font malheureusement piratés leurs données informatiques qu’elles soient personnelles ou professionnelles. Pour éviter e[...]

    22 Mar 2016 | 0 commentsVoir article

    Installer une VM Linux sur ESXi

    VMware vSphere ESXi Hypervisor comment configurer ESXi, le plus célèbre des virtualiseurs dit "barre métal" ou encore "hyperviseur type 1" (système dédié à la virtualisation) qui à une version gratuite limitée, mais largement utilisable pour un usage perso. Il a la particularité d'être extrêmement fiab[...]

    21 Mar 2016 | 0 commentsVoir article

    VMware vSphere ESXi Hypervisor

    VMware vSphere ESXi Hypervisor comment configurer ESXi, le plus célèbre des virtualiseurs dit "barre métal" ou encore "hyperviseur type 1" (système dédié à la virtualisation) qui à une version gratuite limitée, mais largement utilisable pour un usage perso. Il a la particularité d'être extrêmement fiable, [...]

    21 Mar 2016 | 0 commentsVoir article

    Installation pas à pas de Nagios

    Installation pas à pas de Nagios
    Trêve de blabla, entrons directement dans le vif du sujet avec l'installation du système
    d'exploitation et des pré-requis systèmes qui vont servir de base à notre serveur de supervision.
    Avant de commencer
    L’installation de Nagios est à réserver à des utilisateurs ayant des bases en système d'exploitation GNU/Linux. Si ce n'est pas le cas, je vous conseille de vous tourner vers FAN (Fully Automated Nagios), une distribution Linux avec les outils Nagios mais aussi Centreon pré-installés.
    Installation du système d'exploitation GNU/Linux
    J'ai choisi d'utiliser la distribution Ubuntu Server
    Edition 10.04 LTS. Sans juger de la qualité
    technique de cette distribution, je trouve que le
    support Francophone est très bien fait notamment
    par le biais de site comme
    Ubuntu-fr. Comme je le dis souvent sur mon blog, il est important d’utiliser une distribution avec laquelle on est “à l’aise”.
    page8image19872
    Il faut donc commencer par télécharger cette version sur un des serveurs. A moins d'être complètement allergique à l'éditeur de texte "vi", je vous conseille une installation standard, c'est à dire sans interface graphique Gnome/KDE/Xfce.
    Installation de pré-requis système
    On commence par mettre à jour le système en saisissant les commandes suivantes:
          # sudo aptitude update
          # sudo aptitude safe-upgrade
    
    Dans cette série d'articles nous allons avoir besoin de compiler des sources de logiciels, il faut donc dans un premier temps installer le package "build-essential" qui comporte les librairies de développement de bases:
          # sudo aptitude install build-essential
    
    Nagios offre aux utilisateurs une interface de type Web. Il faut donc installer un serveur HTTP sur notre machine de supervision. On ne va pas être très original... On va utiliser Apache 2. Bien qu’il soit possible d’utiliser des solutions plus légères et rapide comme Nginx.
          # sudo aptitude install apache2 wget
    
    Certaines librairies sont également nécessaires au bon fonctionnement de Nagios et de ces plugins :
    # sudo apt-get install bind9-host dnsutils libbind9-60 libdns66 libisc60 libisccc60 libisccfg60 liblwres60 libradius1 qstat radiusclient1 snmp snmpd
    Pour tester votre serveur Web, il faut commencer par le lancer...
          # sudo apache2ctl start
    
    Puis on ouvre un navigateur Web sur un PC connecté en réseau à votre serveur et on saisie l’URL suivante: http://<adresse_ip_serveur>. Une page de bienvenue devrait s’afficher.
    On installe les librairies qui serviront à Nagios pour afficher de beaux diagrammes de votre réseau:
    # sudo aptitude install libgd2-noxpm-dev libpng12-dev libjpeg62 libjpeg62-dev
    Pour des raisons évidentes de sécurité, le processus Nagios ne sera pas lancé en root (droit administrateur). Nous allons créer un utilisateur système nommé nagios et un groupe associé également nommé nagios. Le groupe nagios comprendra les utilisateurs nagios et www-data (utilisateur avec lequel le serveur Apache est lancé par défaut).
          # sudo /usr/sbin/useradd nagios
          # sudo passwd nagios
          # sudo /usr/sbin/groupadd nagios
          # sudo /usr/sbin/usermod -G nagios nagios
          # sudo /usr/sbin/usermod -G nagios www-data
    
    Il est maintenant temps de passer au chose sérieuse en installant le coeur de notre système: le logiciel Nagios. A l'heure ou je rédige cette procédure d’installation, la dernière version de Nagios est la 3.2.3 (à adapter si une nouvelle version est disponible).
    Téléchargement des sources de Nagios
    Il faut dans un premier temps se rendre à la page officielle des téléchargements, puis noter les derniers numéro de version de Nagios et des plugins Nagios (respectivement 3.2.3 et 1.4.14 lors de la rédaction de ce billet).
    page10image9408
    Ensuite, on télécharge ces versions sur notre serveur (pour simplifier l'installation, on passe les commandes en mode root):
    # sudo -s
    # cd /usr/src
    # wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios-3.2.3.tar.gz
    # wget http://prdownloads.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.15.tar.gz

    Compilation de Nagios depuis les sources
    On commence par décompresser les sources:
          # tar xzf nagios-3.2.3.tar.gz
          # cd nagios-3.2.3
    
    Nous allons lancer la compilation grâce aux commandes suivantes:
          # ./configure --with-command-group=nagios
    
    ...
    General Options:
    -------------------------
    Nagios executable: nagios
    Nagios user/group: nagios,nagios
    Command user/group: nagios,nagios
    Embedded Perl: no
    Event Broker: yes
    Install ${prefix}: /usr/local/nagios
    Lock file: ${prefix}/var/nagios.lock
    Check result directory: ${prefix}/var/spool/checkresults Init directory: /etc/init.d
    Apache conf.d directory: /etc/apache2/conf.d
    Mail program: /bin/mail
    Host OS: linux-gnu
    # make all
    # make install
    # make install-config
    # make install-commandmode

    On installe ensuite le script de démarrage pour que Nagios se lance automatiquement avec votre serveur de supervision:
          # make install-init
          # ln -s /etc/init.d/nagios /etc/rcS.d/S99nagios
    
    Il faut ensuite installer l’interface Web:
    # make install-webconf
    # sudo htpasswd -c /usr/local/nagios/etc/htpasswd.users nagiosadmin
    REMARQUE: Saisir le mot de passe pour le compte nagiosadmin de l'interface Web
    # /etc/init.d/apache2 reload
    Compilation des plugins Nagios depuis les sources
    De base, Nagios est livré sans aucune extension (plugin). Il faut donc installer les plugins standards permettant de surveiller les machines de son réseau.
    # sudo aptitude install fping libnet-snmp-perl libldap-dev libmysqlclient-dev libgnutls-dev libradiusclient-ng-dev
    # cd /usr/src
    # tar xzf nagios-plugins-1.4.15.tar.gz

          # cd nagios-plugins-1.4.15
          # ./configure --with-nagios-user=nagios --with-nagios-group=nagios
          # make
          # make install
    
    Installation automatique depuis un script
    Il y a plusieurs méthodes pour installer Nagios, le système de supervision libre, sur un nouveau serveur. La plus simple est d'utiliser les dépôts officiels de votre distribution GNU/Linux, avec le désavantage de ne pas avoir les dernières versions disponibles. La seconde que nous avons vu dans le chapitre précédant permet d’effectuer une installation depuis les sources.
    Je vous propose dans ce chapitre une troisième voie, qui mixe la simplicité de la première méthode et la finesse de la seconde. J'ai en effet développé un petit script (sous licence GPL) permettant d'automatiser l'installation d'un serveur Nagios complet sur une distribution GNU/ Linux Ubuntu (j'ai validé le script sur Ubuntu Desktop et Ubuntu Server). Libre à vous de modifier ce script pour l'adapter à vos besoins. Si des âmes charitables veulent modifier le script pour l'adapter à d'autres distribution GNU/Linux ou BSD, je suis preneur pour les mettre en téléchargement sur Internet.
    Récupération du script d’installation automatique
    On lance la commande suivante pour télécharger le script sur son serveur et le rendre exécutable:
    # wget http://svn.nicolargo.com/nagiosautoinstall/trunk/nagiosautoinstall-ubuntu.sh # chmod a+x nagiosautoinstall-ubuntu.sh
    PS: vous pouvez télécharger le script directement par l'URL suivante:
    http://svn.nicolargo.com/nagiosautoinstall/trunk/nagiosautoinstall-ubuntu.sh
    Exécution du script d’installation automatique
    Il suffit ensuite de lancer le script et de répondre aux questions posées par le système:
          # sudo ./nagiosautoinstall-ubuntu.sh
    
    Informations sur l'installation
    Dans la version actuelle du script la configuration finale est la suivante:
    Nagios Core version
    Nagios Plugins version
    Utilisateur système:
    Groupe système:
    
    3.2.3
    1.4.15
    nagios
    nagios
    
          URL de l'interface Web:  http://localhost/nagios/
          Utilisateur pour l'interface Web: nagiosadmin
    
    Premier test de Nagios
    Nagios est distribué avec une configuration initiale opérationnelle (elle permet notamment de surveiller... son serveur de supervision).
    Nous allons donc tester les fichiers de configuration grâce à la commande suivante:
          # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
    
    Si tout ce passe bien vous devriez avoir le message suivant qui s"affiche:
    Total Warnings: 0
    Total Errors: 0
    Things look okay - No serious problems were detected during the pre-flight check
    Ensuite, on peut lancer le serveur Nagios:
          # /etc/init.d/nagios start
    
    Si le message suivant s'affiche, vous pouvez l’ignorer, ce n'est pas important...
          Starting nagios:No directory, logging in with HOME=/
    
    Il ne reste plus qu'à lancer un navigateur Web sur un PC de votre réseau et à saisir l'URL suivante (attention de bien mettre le / à la fin de l’URL):
    http://<adresse_IP_serveur>/nagios/
    Après une bannière d'authentification (login: nagiosadmin / password: <votremotdepasse>), vous devriez voir s'afficher:
    page14image1856
    En cliquant sur le lien "Hostgroup Overview", vous devriez voir la supervision de votre serveur:
    Puis le détail des services supervisés en cliquant sur "localhost":
    Vous pouvez dès à présent configurer Nagios à votre besoin.
    Maintenir à jour son serveur Nagios, la
    page14image4760 page14image4928
    méthode manuelle
    Quand une nouvelle version de Nagios est mise à disposition, il est conseiller de mettre à jour vos serveurs de supervision. Ce chapitre a pour but de détailler la procédure à suivre pour mettre à jour son serveur Nagios entre une version 3.x et une version 3.y (pour une migration entre une version 2.x et une version 3.y, vous pouvez consulter ce tutorial).
    Backup de l'ancienne version
    Il est préférable de sauvegarder son ancienne configuration... au cas ou..
    # cd /tmp
    # tar zcvfh ./nagios-backup.tgz /usr/local/nagios --exclude var/ archives
    # cp /usr/local/nagios/share/side.php side.php.MODIF

    Si quelque chose se passe mal au niveau de la mise à jour, il sera toujours possible de revenir en arrière en saisissant les commandes suivantes:
          # cd /tmp
          # tar zxvf ./nagios-backup.tgz
    
    Téléchargement de la dernière version de Nagios
    Il faut au préalable des opérations suivantes, se loguer en tant qu'utilisateur nagios afin que les fichiers soient générés avec les bons droits.
          # sudo - nagios
    
    Puis télécharger la dernière version stable (3.2.0 au moment de l'écriture de ce billet).
    # mkdir src
    # cd src
    # wget http://prdownloads.sourceforge.net/sourceforge/nagios/nagios- 3.2.0.tar.gz

    Compilation et installation
    On décompresse puis on lance la compilation:
          # tar zxvf nagios-3.2.0.tar.gz
          # cd nagios-3.2.0
          # ./configure --with-command-group=nagios
          # make all
    
    Si la compilation se termine sans erreur, vous pouvez l'installer sur votre système, sinon je vous conseille de poster votre erreur dans le forum officiel de Nagios:
          # make install
          # cp /usr/local/nagios/share/side.php /tmp/side.php.DEFAULT
          # cp /tmp/side.php.MODIF /usr/local/nagios/share/side.php
    
    Vérification de la configuration et redémarrage de Nagios
    On va dans un premier temps vérifier que nos fichiers de configurations sont compatibles avec cette nouvelle version:
          # /usr/local/nagios/bin/nagios -v /usr/local/nagios/etc/nagios.cfg
    
    Si vous avez ce rapport à la fin: Total Warnings: 0
    Total Errors: 0
    C’est que tout est
    OK !
    Finalement on relance Nagios (en repassant en mode root) dans la nouvelle version:
          # /etc/init.d/nagios restart
    
    Mise à jour des plugins de Nagios
    Comme vous le savez tous (ou pas), Nagios est composé d'un coeur (Nagios le bien nommé actuellement en version 3.x) et de packages d'extensions (NDO, Nagios-plugins...).
    page17image544
    Voici une simple procédure à suivre pour mettre à jour les plugins dans Nagios.
    Téléchargement des plugins
    Il faut au préalable des opérations suivantes, se loguer en tant qu’utilisateur nagios afin que les fichiers soient générés avec les bons droits.
    Sur Fedora:
    su -l nagios
    Sur Ubuntu ou Debian:
          sudo -s nagios
    
    Puis télécharger la dernière version stable des plugins (1.4.12 au moment de l’écriture de ce billet).
    mkdir src
    cd src
    wget http://heanet.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.12.tar.gz tar zxvf nagios-plugins-1.4.12.tar.gz
    cd nagios-plugins-1.4.12

    Mise à jour des plugins
    On commence par compiler les plugins:
          ./configure
          make
    
    puis on installe en lieu et place des anciens plugins:
          make install
          exit
    
    Certains plugins (check_dhcp) nécessitent les droits root pour être installés:
          su - root
          make install-root
          exit
    
    Redémarrage de Nagios
    Afin que les plugins soit pris en compte, il faut redémarrer Nagios en utilisant les commandes suivantes:
    Sur Fedora:
          service nagios restart
    
    Sur Ubuntu ou Debian:
          /etc/init.d/nagios restart
    
    Et voili, un beau Nagios et ses plugins à jour !
    Maintenir à jour son serveur Nagios, la méthode automatique
    Aprés l'installation automatique, voici un nouveau script shell "maison" permettant de mettre simplement à jour votre serveur Nagios (core et plugins inclus).
    Ce script est une synthése des articles "Comment mettre à jour son serveur Nagios ?" et "Mise à jour des plugins Nagios". Il ne doit être utilisé que si vous avez installé Nagios à partir de cette procédure ou de ce script d'installation automatique.
    Le script est distribué sous licence GPL. Libre à vous de le modifier pour l'adapter à vos besoins. Si des âmes charitables veulent modifier le script pour l'adapter à d'autres distribution GNU/Linux ou BSD, je suis preneur pour les mettre en téléchargement sur mon serveur.
    Récupération du script
    On lance la commande suivante pour télé-charger le script sur son serveur et le rendre exécutable:
    wget http://svn.nicolargo.com/nagiosautoinstall/trunk/nagiosautoupdate-ubuntu.sh chmod a+x nagiosautoupdate-ubuntu.sh
    PS: vous pouvez télécharger le script directement par l'URL suivante:
    http://svn.nicolargo.com/nagiosautoinstall/trunk/nagiosautoupdate-ubuntu.sh
    Lancement du script
    Il suffit ensuite de lancer le script et de répondre aux questions posées par le système:
          sudo ./nagiosautoupdate-ubuntu.sh
    
    Et si la mise à jour se passe mal ?
    Le script archive la configuration n-1, il suffit donc d'ouvrir un terminal et de saisir les commandes suivantes pour revenir dans l'ancienne version:
          cd /
          sudo tar zxvf /tmp/nagios-backup.tgz
    
    Informations sur la mise à jour
    page19image13416 page19image14008 page19image14168 page19image14328
    Dans la version 0.1 du script la mise à jour se fera vers:
    Nagios Core version 3.2.3 Nagios Plugins version 1.4.15
    Configuration de Nagios
    Le passage en version 3.0 de Nagios (l'outil de monitoring système et réseau) a apporté son lot de nouveautés. L'une d'elle est la réorganisation des fichiers de configuration. Nous allons dans ce billet détailler cette structure et préparer notre configuration de Nagios pour qu'elle soit facile à administrer...
    Arborescence des fichiers de configuration
    Si vous avez suivi ce tutorial pour l'installation de Nagios 3 depuis les sources, vos fichiers de configuration (fichiers se terminant avec l'extension .cfg) se trouve sous le répertoire/usr/local/ nagios/etc/.
    Personnellement, j'utilise la structure suivante:
    cgi.cfg
    > Définition des paramètres des scripts CGI. Vous pouvez utiliser le fichier fourni par défaut par Nagios.

    nagios.cfg
    > Fichier de configuration de Nagios. A modifier par vos soins selon votre configuration et l'arborescence choisie. Vous pouvez partir du fichier fourni en standard par Nagios et le modifier selon votre configuration.

    resource.cfg
    > Définition des ressources externes. Vous pouvez utiliser le fichier fourni par défaut par Nagios.

    objects/
    > C'est dans ce sous-répertoire que sont centralisé les définitions des machines et services à surveiller part votre serveur Nagios.

    objects/commands.cfg
    > C'est là que nous allons définir les commandes utilisées par Nagios pour interroger vos machines. Vous pouvez partir du fichier fourni en standard par Nagios et le modifier selon votre configuration.

    objects/contacts.cfg
    > Dans ce fichier, il faut configurer les contacts pouvant être prévenu en cas d'alerte. Vous pouvez partir du fichier fourni en standard par Nagios.

    page20image16072 page20image16232 page20image16392 page20image16552 page20image16712 page20image16872 page20image17032
    objects/hostclients.cfg
    > Ce fichier est à créer, il comportera la définition de toutes vos machines clients à surveiller (c'est à dire les postes utilisateurs). Ce fichier n'existe pas dans la structure de base de Nagios.

    objects/hostservers.cfg
    > Ce fichier est à créer, il comportera la définition de toutes vos machines serveurs à surveiller (c'est à dire les serveurs Web, DNS, DB...). Ce fichier n'existe pas dans la structure de base de Nagios.

    objects/localhost.cfg
    > Ce fichier est là pour que Nagios puisse surveiller le serveur sur lequel il est installé (localhost). Vous pouvez partir du fichier fourni en standard par Nagios.

    objects/templates.cfg
    > C'est le fichier ou se trouve la définition des "templates". Vous pouvez partir du fichier fourni en standard par Nagios.

    objects/timeperiods.cfg
    > Ce fichier défini les périodes de temps. Vous pouvez partir du fichier fourni en standard par Nagios.

    objects/network.cfg
    > Ce fichier est à créer, il comporte la définition de toutes les machines composant l'infrastructure de votre réseau (routeur, switch ou hub, borne Wifi ...)

    C'est une bonne base de départ mais vous pouvez l'adapter en fonction de vos besoins (par exemple avec un découpage plus fin au niveau des hosts).
    Attention aux droits sur ces fichiers. Il doivent être lisible par l'utilisateur système avec lequel le daemon Nagios est lancé (user nagios par défaut). Pour être sur de ne pas avoir de problème, je vous conseille de taper les commandes suivantes quand vous avez fini la configuration de vos fichiers:
          # cd /usr/local/nagios/etc
          # chown -R nagios *
    
    Configuration des fichiers cgi.cfg, nagios.cfg et resource.cfg
    Ces 3 fichiers définissent la configuration "maître" de Nagios. Ils sont donc à configurer de manière préalable à tous les autres fichiers .cfg.
    Configuration de Nagios: nagios.cfg
    page21image17048 page21image17208 page21image17368 page21image17528 page21image17688 page21image17848 page21image18008 page21image18168
    Ce fichier défini comment Nagios doit fonctionner. Il dispose de nombreuses options. Je vous conseille donc de partir du fichier fourni en standard et de modifier les sections suivantes. Modifier le fichier ou les logs du processus Nagios seront écrits (vous pouvez laisser la valeur par défaut).
          log_file=/var/log/nagios.log
    
    Attention, ce fichier doit être en lecture/écriture l'utilisateur avec lequel le daemon Nagios est lancé (user nagios par défaut).
    La deuxième chose à faire est de définir l'arborescence des fichiers de configuration. Dans notre cas, cela donne:
          cfg_file=/usr/local/nagios/etc/objects/commands.cfg
          cfg_file=/usr/local/nagios/etc/objects/contacts.cfg
          cfg_file=/usr/local/nagios/etc/objects/hostclients.cfg
          cfg_file=/usr/local/nagios/etc/objects/hostservers.cfg
          cfg_file=/usr/local/nagios/etc/objects/localhost.cfg
          cfg_file=/usr/local/nagios/etc/objects/templates.cfg
          cfg_file=/usr/local/nagios/etc/objects/timeperiods.cfg
          cfg_file=/usr/local/nagios/etc/objects/network.cfg
    
    Les options suivantes permettent de configurer l'utilisateur et le groupe système utilisés pour lancer Nagios. Je vous conseille de laisser les valeurs par défaut (sinon il faut créer les utilisateurs).
          nagios_user=nagios
          nagios_group=nagios
    
    Je vous laisse consulter les autres options de ce fichier.
    Configuration des CGI: cgi.cfg
    Comme vous le savez, Nagios se base sur une interface Web pour générer ses rapports. Cette interface Web est générée dynamiquement par des scripts CGI. Le fichier cgi.cfg à pour but de configurer ces CGI selon votre configuration. Là encore, je vous conseille de partir du fichier fourni par défaut.
    On commence par définir l'emplacement du fichier nagios.cfg. En effet ce dernier doit être lisible par les CGI.
          main_config_file=/usr/local/nagios/etc/nagios.cfg
    
    page22image13632 page22image13792
    On peut ensuite configurer l'URL avec laquelle on va accéder au serveur Web de Nagios. Si par exempel vous voulez y accéder par l'adresse http://monboserveurnagios.com/nagios, il faut éditer l'option:
          url_html_path=/nagios
    
    Enfin, il est fortement conseiller d'utiliser une authentification (même si c'est une basique authentification HTTP) pour accéder à Nagios:
          use_authentication=1
          authorized_for_system_information=admin
    
    Configuration des ressources externes: resource.cfg
    Nagios utilise un système de plugins. Le fichier resources est là pour définir ou sont ces plugins. Le fichier fourni en standard défini un moyen pour accèder aux plugins standards:
          $USER1$=/usr/local/nagios/libexec
    
    Libre à vous d'ajouter d'autres répertoires de plugins.
    Configuration des objets
    Entrons dans le vif du sujet avec la définition des fichiers de configuration des objets composants notre réseau à surveiller. On commence par les fichiers génériques: commands.cfg, contacts.cfg, templates.cfg et timeperiods.cfg
    Vous pouvez utiliser les fichiers fournis en standard avec Nagios. Pour l'adapter à notre besoin, j'ai juste modifié le fichier templates.cfg pour y ajouter les templates suivants:
    Un premier template pour les machines de type Linux:
           # Linux host definition template - This is NOT a real host, just a template!
           define host{
    
                 name linux-host ; The name of this host template
                 use generic-host ; This template inherits other values from the generic-
                 host template
                 check_period 24x7 ; By default, Linux hosts are checked round the clock
                 check_interval 5 ; Actively check the host every 5 minutes
                 retry_interval 1 ; Schedule host check retries at 1 minute intervals
                 max_check_attempts 10 ; Check each Linux host 10 times (max)
                 check_command check-host-alive ; Default command to check Linux hosts
    
    page23image15664
    }
    notification_period workhours ; Linux admins hate to be woken up, so we only notify during the day
    ; Note that the notification_period variable is being overridden from
    ; the value that is inherited from the generic-host template! notification_interval 120 ; Resend notifications every 2 hours notification_options d,u,r ; Only send notifications for specific host states

    contact_groups admins ; Notifications get sent to the admins by default
    register 0 ; DONT REGISTER THIS DEFINITION - ITS NOT A REAL HOST, JUST A
    TEMPLATE!
    action_url /nagios/pnp/index.php?host=$HOSTNAME ; PNP
    
    Un autre pour les machines Apple et BSD:
           # BSD host definition template - This is NOT a real host, just a template!
           define host{
    
    name bsd-host ; The name of this host template
    use linux-host ; This template inherits other values from the generic- host template

           }
           # Apple host definition template - This is NOT a real host, just a template!
           define host{
    
                 name apple-host ; The name of this host template
                 use bsd-host ; This template inherits other values from the generic-host
                 template
    
    }
    Pour les machines sous Windows:
    define host{
    name windows-host ; The name of this host template
    use generic-host ; Inherit default values from the generic-host template check_period 24x7 ; By default, Windows servers are monitored round the clock
    check_interval 5 ; Actively check the server every 5 minutes retry_interval 1 ; Schedule host check retries at 1 minute intervals max_check_attempts 10 ; Check each server 10 times (max)
    check_command check-host-alive ; Default command to check if servers are "alive"
    notification_period 24x7 ; Send notification out at any time - day or night
    notification_interval 30 ; Resend notifications every 30 minutes notification_options d,r ; Only send notifications for specific host states
    contact_groups admins ; Notifications get sent to the admins by default register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE

    }
    Et enfin pour les machines composant votre infrastructures réseaux:
    define host{
    name network-host ; The name of this host template
    use generic-host ; Inherit default values from the generic-host template check_period 24x7 ; By default, switches are monitored round the clock check_interval 5 ; Switches are checked every 5 minutes
    retry_interval 1 ; Schedule host check retries at 1 minute intervals max_check_attempts 10 ; Check each switch 10 times (max)
    check_command check-host-alive ; Default command to check if routers are "alive"
    notification_period 24x7 ; Send notifications at any time notification_interval 30 ; Resend notifications every 30 minutes notification_options d,r ; Only send notifications for specific host states
    contact_groups admins ; Notifications get sent to the admins by default register 0 ; DONT REGISTER THIS - ITS JUST A TEMPLATE

    }
    Définition des machines réseaux: network.cfg
    On va utiliser le template network-host et définir chaque noeud de votre réseau (routeur, switch...). Il faut bien sur que ces machines est une adresse IP. Les services à surveiller dépendent de votre configuration (par exemple la MIB des routeurs Cisco est très verbeuse). Par défaut Nagios "pingue" les machines et affiche leur status (UP/DOWN). Mais on peut allre bien plus loin, apr exemple en mettant des alertes si un interface réseau est saturé, si la charge CPU de votre Firewall devient trop grande...
    On utilise l'option hostgroups pour insérer le serveur dans le groupe monreseau. Un exemple de définition pour un routeur Cisco et un switch réseau:
           define host{
                 use network-host
    
                 host_name monboswitch
                 alias Switch réseau 100 Mbps
                 address 192.168.0.254
                 hostgroups monreseau
    
    }
           define host {
                 use network-host
    
                 host_name monborouteur
                 alias Routeur acces Internet
    
    page25image16872
    }
    address 192.168.0.1
    parents monboswitch
    hostgroups monreseau
    
    Pour surveiller sa liaison Internet, le plus simple est de pinguer sur Internet un serveur digne de confiance (style www.google.fr):
           define host{
                 use network-host
    
                 host_name internet
                 alias Liaison Internet (ping Google)
                 address www.google.fr
                 parents monborouteur
                 hostgroups monreseau
    
    }
    Définition des machines serveurs: hostservers.cfg
    On va utiliser un des templates (linux|bsd|apple|windows)-host et définir tous les serveurs de votre réseau. Pour chaque serveur, on va définir dans le même fichier (c'est une nouveauté par rapport à Nagios 2.x) les services à surveiller (par exemple on va vérifier que le serveur Web est bien lancé grâce au plugin check_http).
    On utilise également l'option hostgroups pour insérer le serveur dans le groupe messerveurs.
           define host{
                 use linux-host
    
                 host_name monboserveur
                 alias Serveur Web
                 address 192.168.0.100
                 parents monboswitch
                 hostgroups messerveurs
    
    }
           define service{
                 use generic-service
    
                 host_name monboserveur
                 service_description HTTP
                 check_command check_http!8080
    
    }
    Définition des machines clientes (utilisateurs): hostclients.cfg
    On va utiliser un des templates (linux|bsd|apple|windows)-host et définir toutes les machines
    page26image13232 page26image13392
    clients de votre réseau.
    On utilise également l'option hostgroups pour insérer le serveur dans le groupe mesclients (il est possible de faire appartenir un même host à plusieurs groupes en listant dans les même options les différents groupes séparés par des virgules).
           define host{
                 use apple-host
    
                 host_name monboportable
                 alias MacBookPro
                 address 192.168.0.200
                 parents monboswitch
                 hostgroups mesclients
    
    }
           define host{
                 use linux-host
    
                 host_name monbopc
                 alias Ubuntu
                 address 192.168.0.201
                 parents monboswitch
                 hostgroups mesclients
    
    }
    Durées et fréquences des checks
    Pour surveiller votre réseau, Nagios utilise un certain nombre d'objets (machines, services, contacts...). Par défaut, un objet hérite une grande partie de ses paramètres du template nommé "generic-*". Nous allons dans ce billet nous focaliser sur les notions de temps et de fréquences de ces objets.
    Pour rappel, à un instant t, un objet peut avoir un des les états suivants:
    OK: tout va bien, votre objet fonctionne correctement
    WARNING: votre objet ne fonctionne pas nominalement CRITICAL: votre objet ne fonctionne plus
    UNKNOWN: impossible de déterminer l'état de votre objet
    Un exemple: imaginons un service qui surveille la débit de votre liaison Internet...
    OK: le débit est inférieure à 70% de la bande passante totale
    WARNING: la débit est supérieure à 70% de la bande passante totale
    CRITICAL: la liaison Internet est DOWN (plus de connectivité avec Internet) UNKNOWN: impossible de récupérer les valeurs du débit
    Définition de la période d'activité d'un objet
    La variable check_period permet de définir l'intervalle de temps durant lequel l'objet est actif. On définie une période de temps en utilisant la structure timeperiod.
    Par exemple pour définir une période de temps correspondant aux heures ouvrées de votre entreprise vous pouvez utiliser la définition suivante:
           define timeperiod {
                 timeperiod_name workhours
    
                 alias Heures ouvrées
                 monday 09:00-18:00 ; Lundi
                 tuesday 09:00-18:00; Mardi
                 wednesday 09:00-18:00; Mercredi
                 thursday 09:00-18:00; Jeudi
                 Friday 09:00-18:00; Vendredi
    
    }
    La déclaration de cette période de temps dans notre objet (par exemple un service) se fera ainsi:
           define service {
                 ...
    
                 check_period workhours
    
    }
    Définition des intervalles de vérification d'un objet
    Quand on se trouve dans une période d'activité d'un service, plusieurs paramètres rentrent en jeu pour fixer la durée et la fréquence des vérifications (checks) du objet en question. Quand un objet est OK, il est vérifié toutes les check_interval minutes. Si il passe WARNING, CRITICAL ou UNKNOWN, il est alors vérifié max_check_attempts fois à un intervalle deretry_interval minutes. Si l'état de l'objet n'est pas revenu à OK au bout desmax_check_attempts essais, l'intervalle de vérification redevient de check_interval minutes...
    Je sais ce n'est pas très simple mais ce schéma devrait vous aider à comprendre.
    page29image544
    Un exemple de paramètrage avec un valeur de check_interval (quand tout va bien) à 10 minutes puis un retry_interval (quand cela commence à aller mal) à 2 minutes et un nombre de max_check_attempts à 3:
           define service {
                 ...
    
                 check_interval 10
                 retry_interval 2
                 max_check_attempts 3
    
    }
    Et les notifications ?
    Il existe des variables permettant de fixer comment les notifications sont remontés aux administrateurs.
    La première variable est first_notification_delay. Elle permet de définir le temps (en secondes) que Nagios doit attendre avant d'envoyer une notification quand un objet passe d'un état OK à un état WARNING, CRITICAL ou UNKNOWN. Une valeur de 0 permet d'envoyer la notification dès ce changement d'état. La variable notification_interval permet, en cas de problème sur
    un objet, de fixer l'intervalle de temps (en minutes) entre deux notifications. Pour que Nagios n'envoie qu'une seule fois une alerte, il faut fixer cette variable à 0.
    Par exemple, pour que la première notification se fasse immédiatement, sans répétition, un objet doit être défini ainsi:
           define service {
                 ...
    
                 first_notification_delay 0
                 notification_interval 0
    
    }
    Nagios et les greffons (aka plugins)
    A mes yeux, la principale force de Nagios 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:
    Code0:OK-Toutvabien 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.
    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):
    page32image376
    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 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.
    page34image376
    Ici, c'est donc le daemon NSCA qui va envoyer l'information au serveur Nagios. On peut comparer cette fonction à un TRAP SNMP.
    Et sous 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.
    Quelques exemples de plugins Nagios
    Quelques exemples de services pour Nagios. N'hésitez pas à donner d'autres exemples via les commentaires ou ma fiche de contact. J'intégrerai les exemples les plus pertinents au billet.
    superviser un serveur Web (HTTP)
    superviser un serveur Web sécurisé (HTTP over SSL)
    superviser un serveur de messagerie (mail)
    superviser un serveur VoIP (sip)
    superviser un serveur de fichiers (samba)
    superviser un serveur annuaire (LDAP)
    superviser un serveur de base de données (mySQL ou pgSQL) superviser un serveur réseau (DHCP et DNS)
    supervision de disques RAID (carte hardware HP Proliant)
    supervision de disques RAID 1 logiciel sous FreeBSD
    supervision d'un serveur Asterisk (suivre ce lien)
    supervision d'un trunk IAX sur un serveur Asterisk
    Superviser un serveur Web
    Nous utilisons pour cela le plugin check_http qui permet de tester si un serveur HTTP est bien lancé sur la machine à superviser.
    Exemple:
           define command{
                 command_name check_http
    
                 command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$
    
    }
           define host{
                 use generic-host
    
                 host_name monserveur
    
    }
    alias Serveur Web
    address 192.168.0.100
    
           define service{
                 use generic-service
    
                 host_name monbeauserveur
                 service_description HTTP
                 check_command check_http
    
    }
    Le plugin utilise par défaut une requête sur le port TCP/80. Pour changer ce port, vous pouvez utiliser l’option -p et créer une nouvelle commande (à utiliser dans le check_command de votre nouveau service):
           define command{
                 command_name check_http_8080
                 command_line $USER1$/check_http -I $HOSTADDRESS$ $ARG1$-p 8080
    
    }
    Superviser un serveur Web sécurisé
    Si votre serveur Web est sécurisé avec le protocole SSL. Il faut créer une nouvelle commande basée sur check_http.
    Exemple:
           define command{
                 command_name check_http
    
                 command_line $USER1$/check_http -S -I $HOSTADDRESS$ $ARG1$
    
    }
           define host{
                 use generic-host
    
                 host_name monserveur
                 alias Serveur Web
                 address 192.168.0.100
    
    }
           define service{
                 use generic-service
    
    }
    host_name monbeauserveur
    service_description HTTPs
    check_command check_https
    
    Superviser un serveur de messagerie
    Pour surveiller un serveur Mail proposant les protocoles SMTP, POP3 et IMAP (merciDovecot), nous allons utiliser les plugins check_smtp, check_pop et check_imap.
    Exemple:
           define host{
                 use generic-host
    
                 host_name monserveur
                 alias Serveur de messagerie
                 address 192.168.0.100
    
    }
           define service{
                 use generic-service
    
                 host_name monserveur
                 service_description SMTP
                 check_command check_smtp
    
    }
           define service{
                 use generic-service
    
                 host_name monserveurmail
                 service_description POP
                 check_command check_pop
    
    }
           define service{
                 use generic-service
    
                 host_name monserveurmail
                 service_description IMAP
                 check_command check_imap
    
    }
    Superviser un serveur Asterisk
    Pour surveiller un serveur SIP (par exemple votre serveur Asterisk), nous allons utiliser le plugin check_sip. n’étant pas fourni en standard, il faut d’abord l’installer puis le configurer avant de pouvoir l’utiliser comme service.
    Installation:
          cd /usr/src
          wget http://www.bashton.com/downloads/nagios-check_sip-1.2.tar.gz
    
          tar zxvf nagios-check_sip-1.2.tar.gz
          cd nagios-check_sip-1.2
          cp check_sip /usr/local/nagios/libexec/
          chown apache:nagios /usr/local/nagios/libexec/check_sip
    
    Configuration (à ajouter dans votre fichier commands.cfg de Nagios):
           ###### SIP #####
           define command{
    
    command_name check_sip
    command_line $USER1$/check_sip -H $HOSTADDRESS$ -u sip:user@mondomaine.com

    }
    Il faut penser à mettre un nom d’utilisateur SIP valide après l’option -u. Et enfin un exemple de service:
           define host{
                 use generic-host
    
                 host_name monserveur
                 alias Serveur SIP
                 address 192.168.0.100
    
    }
           define service{
                 use generic-service
    
                 host_name monserveur
                 service_description SIP
                 check_command check_sip
    
    }
    Superviser un serveur de fichiers
    Un serveur de fichier peut se baser sur de nombreux protocoles. Nous allons nous focaliser sur un serveur Windows ou Linux (avec Samba), souvent utilisé en entreprise grâce au protocole SMB.
    Configuration (à ajouter dans votre fichier commands.cfg de Nagios):
           ###### SMB #####
           define command{
    
    }
    command_name check_smb
    command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 445
    
    Et enfin un exemple de service:
           define host{
                 use generic-host
    
                 host_name monserveur
                 alias Serveur de fichiers
                 address 192.168.0.100
    
    }
           define service{
                 use generic-service
    
                 host_name monserveur
                 service_description SMB
                 check_command check_smb
    
    }
    Superviser un serveur LDAP
    Un serveur est souvent le coeur d'un système d'information. C'est donc un poihnt critique à surveiller dans Nagios. Nous allons pour celà utiliser le service check_ldap qui prend en paramètres l'adresse du serveur LDAP ainsi que le DN à tester.
    Configuration (à ajouter dans votre fichier commands.cfg de Nagios):
           ###### LDAP #####
           define command{
    
                 command_name check_ldap
                 command_line $USER1$/check_ldap -H $HOSTADDRESS$ -b $ARG1$
    
    }
    Exemple de service:
           define host{
                 use generic-host
    
                 host_name monserveur
                 alias Serveur LDAP
                 address 192.168.0.100
    
           }
           define service{
    
    }
    use generic-service
    host_name monserveur
    service_description LDAP
    check_command check_ldap!"dc=mondomaine,dc=com"
    
    Superviser un serveur de base de données
    MySQL et pgSQL sont des serveurs de base de données open-source très répandus. Il existe donc deux plugins spécifiques check_mysql et check_pgsql disponible en standard avec Nagios. Personnellement, je n'utilise pas ces deux plugins car ils peuvent présenter une faille dans votre réseau. En effet, il utilise une requête SQL nécessitant un login/password. Hors ce couple apparaîtra dans la liste des processus lors de l'éxecution du plugin par Nagios. Je préfère donc utiliser des plugins basés sur check_tcp.
    Configuration (à ajouter dans votre fichier commands.cfg de Nagios):
           ###### SQL #####
    
           define command{
                 command_name check_pgsql
    
                 command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 5432
    
    }
           define command{
                 command_name check_mysql
    
                 command_line $USER1$/check_tcp -H $HOSTADDRESS$ -p 3306
    
    }
    Exemple de service:
           define host{
                 use generic-host
    
                 host_name monserveur
                 alias Serveur MYSQL
                 address 192.168.0.100
    
    }
           define service{
                 use generic-service
    
                 host_name monserveur
                 service_description MYSQL
                 check_command check_mysql
    
    }
    Superviser un serveur réseau
    DHCP et DNS sont la base de votre infrastructure réseau. Nous allons donc utiliser les pluginscheck_dns et check_dhcp pour les surveiller de prêt.
    Configuration (à modifier dans votre fichier commands.cfg de Nagios):
           ###### DNS #####
           define command{
    
                 command_name check_dns
                 command_line $USER1$/check_dns -H www.google.fr -s $HOSTADDRESS$
    
    }
           ###### DHCP #####
           define command{
    
                 command_name check_dhcp
                 command_line  $USER1$/check_dhcp -s $HOSTADDRESS$
    
    }
    Pour le check_dns, Je vous conseille de mettre un serveur qui ne risque pas de disparaître du jour au lendemain dans les DNS mondiaux en paramètre -H.
    Exemple de service DNS:
           define host{
                 use generic-host
    
                 host_name monserveur
                 alias Serveur DNS
                 address 192.168.0.100
    
    }
           define service{
                 use generic-service
    
                 host_name monserveur
                 service_description DNS
                 check_command check_dns
    
    }
    Exemple de service DHCP:
           define host{
                 use generic-host
    
                 host_name monserveur
                 alias Serveur DHCP
                 address 192.168.0.100
    
    }
           define service{
                 use generic-service
    
                 host_name monserveur
                 service_description DHCP
                 check_command check_dhcp
    
    }
    Supervision de disques RAID hardware HP Proliant
    Le but est de surveiller le bon état des disques RAID d'un serveur HP Proliant sour FreeBSD. Nous allons passé par un script lancé par NRPE.
    Configuration à faire sur le serveur ou se trouve les disques RAID:
          cd /usr/local/libexec/nagios/
          wget http://www.klintrup.dk/soren/proliant/check_smartarray.sh
          chmod 555 check_smartarray.sh
    
    Il faut également modifier ce script pour qu'il soit exécutable par l'utilisateur Nagios (le user utilisé par NRPE).
    Ligne 6> PATH="/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin"
    Ligne 7> DEVICES="$(sudo camcontrol devlist|grep "COMPAQ RAID"|sed - Ee 's/.*(pass[0-9]{1,3}).*/\1/')"
    Ligne 14> DEVICENAME="$(sudo camcontrol devlist|grep ${DEVICE}|sed - Ee 's/.*(da[0-9]{1,3}).*/\1/')"
    Ligne 15> DEVICESTRING="$(sudo camcontrol inquiry ${DEVICE} -D|sed -n -e 's/ ^[^<]*<\([^>]*\)>.*$/\1/p')"

    Puis enfin ajouter la ligne suivante au fichier /usr/local/etc/sudoers:
          nagios ALL = NOPASSWD: /sbin/camcontrol
    
    Edition du fichier /usr/local/etc/nrpe.cfg en ajoutant la ligne suivante:
          command[check_raid]=/usr/local/libexec/nagios/check_smartarray.sh
    
    Redémarrage du process NRPE:
          /usr/local/etc/rc.d/nrpe2 restart
    
    Configuration de Nagios, avec un nouveau service pour surveiller les disques RAID:
    define service{
           use
    
    generic-service
    monserveuravecduraid
    RAID
    check_nrpe!check_raid
    
    }
    host_name
    service_description
    check_command
    
    Supervision de disques RAID 1 logiciel sous FreeBSD
    Le but est de surveiller le bon état des disques RAID 1 logiciel d'un serveur sous FreeBSD.
    On commence par configurer le serveur ou se trouve les disques RAID. Pour permettre le user nagios à lancer la commande de surveillance des disques RAIS, on doit ajouter la ligne suivante au fichier /usr/local/etc/sudoers:
          nagios ALL= NOPASSWD: /sbin/gmirror status
    
    Edition du fichier /usr/local/etc/nrpe.cfg en ajoutant la ligne suivante:
           command[check_raid]=/usr/local/bin/sudo /sbin/gmirror status | tail +2
    
    Redémarrage du process NRPE:
          /usr/local/etc/rc.d/nrpe2 restart
    
    Configuration de Nagios, avec un nouveau service pour surveiller les disques RAID:
           define service{
                 use
    
                 host_name
                 service_description
                 check_command
    
    }
    Supervision d'un trunk IAX sur un serveur Asterisk
    Quand vous voulez relier deux serveurs Asterisk entre eux, il faut utiliser un trunk IAX. Un trunk IAX est en fait un tunnel UDP (port 4569). Si vous voulez vérifier qu'un serveur Asterisk est apte à recevoir un trunk IAX, il faut lui envoyer une commande "POKE" sur le port UDP/4569, il répondra normalement par un "PONG".
    Le script check_iax permet d'automatiser ce test. Une fois le script compilé (il est écrit en C) et installé dans le répertoire /usr/local/nagios/libexec, il faut créer la commande dans Nagios:
           # 'check_iax' command definition, 800ms WARNING, 1000ms CRITICAL
           define command{
    
    command_name check_iax
    command_line $USER1$/check_iax -H $HOSTADDRESS$ -w 800 -c 1000

    }
    Ensuite, il ne reste plus qu'a définir un service associé à une machine hébergeant le serveur
    generic-service
    monserveuravecduraid
    RAID
    check_nrpe!check_raid
    
    Asterisk.
    define service{
    use generic-service host_name asterisk service_description IAX trunk check_command check_iax

    }
    Superviser l’espace disque avec Nagios via SNMP
    page44image2840
    Voici une méthode simple rapide et efficace (enfin plus rapide à mettre en place que NRPE) pour surveiller l'espace disque disponible de ses machines Linux/BSD/Windows à partir de Nagios en utilisant le protocole SNMP.
    Les pré-requis sont les suivants:
    • ●  avoir un Nagios correctement installé
    • ●  la machine à surveiller doit héberger un serveur SNMP dont la configuration permette au serveur Nagios de lire les informations (l'accès read-only v1/v2 de SNMP est suffisant)
    • ●  suivre la suite de ce billet Configuration de la machine à surveiller
      Après avoir installé et configuré son serveur SNMP, il faut ajouter la ligne suivante au fichier de configuration snmpd.conf (la localisation de ce dernier est os dépendant):
      disk / 100000
      PS: le deuxième paramètre permet de fixer le seuil en dessous duquel une alerte SNMP est remontée. Il n'est pas très important pour nous car c'est Nagios qui va générer cette alerte avec nos propres valeurs.
      On doit bien sûr relancer le service snmpd pour lire la configuration, par exemple:
    page44image12616 page44image12784
           /etc/init.d/snmpd restart
    
    Configuration du serveur Nagios
    La première chose à faire est de vérifier que l'on arrive bien à récupérer les informations SNMP sur la machine à surveiller (d'adresse IP 192.168.0.200 dans notre exemple). Pour cela on peut utiliser la commande suivante:
           snmpget -v 1 -c public 192.168.0.200 .1.3.6.1.4.1.2021.9.1.9.1
           UCD-SNMP-MIB::dskPercent.1 = INTEGER: 32
    
    La commande a réussi. On a bien récupéré la valeur 32 par SNMP. Donc On a 32% d'espace disque occupé sur le disque de la machine 192.168.0.200.
    On configure Nagios de la manière suivante, on édite le fichier commands.cfg:
           #################
           # check_snmp_disk
           #################
    
           # Check free disk space using SNMP (add the "disk 1000000" line to the
           snmpd.conf)
           define command{
    
    command_name check_snmp_disk
    command_line $USER1$/check_snmp -H $HOSTADDRESS$ -
    o .1.3.6.1.4.1.2021.9.1.9.1 -C $ARG1$ -w $ARG2$ -c $ARG3$ -u "% used" }

    Puis on configure le service pour la machine à surveiller (dans un autre fichier comme par exemple services.cfg):
    page45image10272
           define service{
                 use
    
                 host_name
                 service_description
                 check_command
    
    }
    La fonction check_snmp_disk prend 3 paramètres:
    le nom de la communauté SNMP (public)
    le seuil au dessus duquel un warning est généré par Nagios (90%) le seuil au dessus duquel un error est généré par Nagios (95%)
    Il ne reste plus qu'a relancer Nagios pour prendre en compte la configuration !
    generic-service
        Ma_Machine_192.168.0.200
    
           DISK SPACE
           check_snmp_disk!public!90!95
    
    Surveiller vos espaces disques SMB avec Nagios
    Nous allons voir dans ce chapitre une petite astuce pour surveiller facilement avec Nagios, l'espace disque disponible sous ses serveurs Windows ou Samba (protocole SMB).
    La première chose à faire est de tester le plugin en ligne de commande. Par exemple pour surveiller l'espace disque monpartage du serveur monserveur (\\monserveur\monpartage) en utilisant le couple login/password monuser/monpassword:
            /usr/local/nagios/libexec/check_disk_smb -H monserveur -s monpartage -u monlogin -p monpassword
    
    Il est possible que vous rencontriez l'erreur suivante sous Ubuntu:
           Can't exec "//monserveur/monpartage": No such file or directory at /usr/local/
           nagios/libexec/check_disk_smb line 166.
           Use of uninitialized value $res in split at /usr/local/nagios/libexec/
           check_disk_smb line 172.
    
           Use of uninitialized value $_ in pattern match (m//) at /usr/local/nagios/
           libexec/check_disk_smb line 180.
           Result from smbclient not suitable
    
    Dans ce cas, je vous conseille la lecture de cette discussion dans le forum pour corriger le problème.
    On commence par éditer le fichier commands.cfg pour ajouter le plugin:
    define command{
    command_name check_disk_smb
    command_line $USER1$/check_disk_smb -H $HOSTADDRESS$ -s $ARG1$ -u $ARG2$ -p $ARG3$
    }
    Puis on utilisera la définition de service suivante (à mettre par exemple dans le fichier objects/ servers.cfg):
           define service{
                 use
    
                 host_name
                 service_description
                 check_command
                 monpassword
    
    }
    Un alerte d'avertissement (warning) sera générée si l'espace disque est inférieur à 15%, une alerte critique (critical) si cette valeur passe à 5%.
    generic-service
    monserveur
    Disk space
    check_disk_smb!servernas!monpartage!monuser!
    
    Surveiller les interfaces de son Cisco avec Nagios
    Qui veut surveiller l'état des interfaces de ses routeurs Cisco doit obligatoirement se plonger dans l'arborescence des MIB SNMP. Heureusement, Patrick Proy a eu la bonne idée d'intégrer dans un seul et même script Perl toutes les fonctions pour répondre à ce besoin. Nous allons dans ce chapitre voir comment installer et tester le plugin check_snmp_int.pl puis configurer Nagios pour prendre en compte ce nouveau plugin.
    Installation du plugin
    Il faut dans un premier temps se rendre dans le répertoire ou les plugin Nagios sont stockés (/ usr/local/libexec/nagios par exemple) puis y télécharger la dernière version du plugin (1.4.8 au moment de l'écriture de ce billet):
           cd /usr/local/libexec/nagios
           wget http://nagios.manubulon.com/check_snmp_int.pl
    
    Ensuite on le rend executable par Nagios:
           chown nagios:nagios check_snmp_int.pl
           chmod 555 check_snmp_int.pl
    
    Enfin on vérifie que l'utilisateur Nagios (ou celui qui doit lancer Nagios) peut exécuter ce script:
    su - nagios
    nagios> /usr/local/libexec/nagios/check_snmp_int.pl -h
    ... la syntaxe va s'afficher ...
    nagios> exit
    Si vous avez une erreur lors de l'éxécution du script, cela peut être dû à l'absence des pré- requis suivants sur votre système:
    Perl doit être installé dans le répertoire /usr/bin/perl
    La librairie Perl nommée Net::SNMP doit être installé (via CPAN)
    Le fichier 'utils.pm doit être présent dans le répertoire des plugins Nagios
    Test du plugin
    Nous allons dans un premier temps chercher la liste des interfaces réseau du routeur Cisco (ou autre compatible avec MIB-2 standard) à superviser:
            /usr/local/libexec/nagios/check_snmp_int.pl -H <adresseIPdurouteur> -C public -n zzzz -v
    
           Alarm at 15 + 5
           SNMP v1 login
           Filter : zzzz
           OID : 1.3.6.1.2.1.2.2.1.2.26, Desc : Async54
           OID : 1.3.6.1.2.1.2.2.1.2.28, Desc : Async56
           OID : 1.3.6.1.2.1.2.2.1.2.18, Desc : Async46
           OID : 1.3.6.1.2.1.2.2.1.2.12, Desc : Async40
           OID : 1.3.6.1.2.1.2.2.1.2.31, Desc : Async59
           OID : 1.3.6.1.2.1.2.2.1.2.19, Desc : Async47
           OID : 1.3.6.1.2.1.2.2.1.2.22, Desc : Async50
           OID : 1.3.6.1.2.1.2.2.1.2.34, Desc : Async62
           OID : 1.3.6.1.2.1.2.2.1.2.13, Desc : Async41
           OID : 1.3.6.1.2.1.2.2.1.2.23, Desc : Async51
           OID : 1.3.6.1.2.1.2.2.1.2.4, Desc : Null0
           OID : 1.3.6.1.2.1.2.2.1.2.35, Desc : Loopback0
           OID : 1.3.6.1.2.1.2.2.1.2.30, Desc : Async58
           OID : 1.3.6.1.2.1.2.2.1.2.5, Desc : Async33
           OID : 1.3.6.1.2.1.2.2.1.2.11, Desc : Async39
           OID : 1.3.6.1.2.1.2.2.1.2.1, Desc : Ethernet3/0
           OID : 1.3.6.1.2.1.2.2.1.2.39, Desc : Virtual-Access2
           OID : 1.3.6.1.2.1.2.2.1.2.14, Desc : Async42
    
           OID : 1.3.6.1.2.1.2.2.1.2.37, Desc : Virtual-Template1
           OID : 1.3.6.1.2.1.2.2.1.2.16, Desc : Async44
           OID : 1.3.6.1.2.1.2.2.1.2.20, Desc : Async48
           OID : 1.3.6.1.2.1.2.2.1.2.17, Desc : Async45
    
           OID : 1.3.6.1.2.1.2.2.1.2.29, Desc : Async57
           OID : 1.3.6.1.2.1.2.2.1.2.36, Desc : Tunnel0
           OID : 1.3.6.1.2.1.2.2.1.2.3, Desc : Serial3/1
           OID : 1.3.6.1.2.1.2.2.1.2.25, Desc : Async53
           OID : 1.3.6.1.2.1.2.2.1.2.2, Desc : Serial3/0
           OID : 1.3.6.1.2.1.2.2.1.2.7, Desc : Async35
           OID : 1.3.6.1.2.1.2.2.1.2.33, Desc : Async61
           OID : 1.3.6.1.2.1.2.2.1.2.9, Desc : Async37
           OID : 1.3.6.1.2.1.2.2.1.2.6, Desc : Async34
           OID : 1.3.6.1.2.1.2.2.1.2.15, Desc : Async43
           OID : 1.3.6.1.2.1.2.2.1.2.10, Desc : Async38
           OID : 1.3.6.1.2.1.2.2.1.2.27, Desc : Async55
           OID : 1.3.6.1.2.1.2.2.1.2.32, Desc : Async60
           OID : 1.3.6.1.2.1.2.2.1.2.8, Desc : Async36
           OID : 1.3.6.1.2.1.2.2.1.2.21, Desc : Async49
           OID : 1.3.6.1.2.1.2.2.1.2.24, Desc : Async52
    
    Il faut ensuite noter le nom système des interfaces à surveiller (par exemple Serial 3/0 etSerial 3/1 dans mon cas).
    Puis on lance ensuite la commande pour vérifier l'état de l'interface Serial 3/0:
            /usr/local/libexec/nagios/check_snmp_int.pl -H <adresseIPdurouteur> -C public -n "Serial3/0" -r
    
           Serial3/0:UP:1 UP: OK
    
    On a donc maintenant la commande à éxécuter, il ne reste plus qu'a l'intégrer dans notre configuration de Nagios.
    Configuration de Nagios
    On commence par se rendre dans le répertoire ou se trouve les fichiers de configuration de Nagios (/usr/local/etc/nagios par exemple):
           cd /usr/local/etc/nagios
    
    Puis si vous êtes sous Nagios 3.x ou supérieur dans le sous-répertoire objects:
    cd objects
    Enfin on édite le fichier commands.cfg puis on y ajoute la section suivante:
           ###################
           # check_snmp_int.pl
           ###################
           # 'check_snmp_int.pl', vérifier l'état de l'interface reseau
           define command{
    
    command_name check_snmp_int
    command_line $USER1$/check_snmp_int.pl -H $HOSTADDRESS$ -C $ARG1$ -n $ARG2$ -r
    }
    On vient donc de créer une nouvelle commande Nagios qui appelera le plugin check_snmp_int avec deux paramètres:
    $ARG1$: nom de la communauté SNMP à utiliser (public la plupart du temps) $ARG2$: nom de l'interface à superviser
    Enfin , on ajoute un nouveau service pour le routeur Cisco à superviser (par exemple dans le fichier network.cfg):
    define host{
    use routeur

    }
    host_name cisco
    alias
    address
    
    Routeur liaison WAN
       <adresseIProuteurcisco>
    
                 generic-service
    
    define service{
           use
    
    }
    host_name
    service_description
    check_command
    
    cisco
    LS 1
    check_snmp_int!public!"Serial3/0"
    
    Et si en plus je veux...
    ...surveiller la bande passante utilisée et envoyer une alerte si celle-ci dépasse un certain seuil ?
    Il suffit de créer une nouvelle commande Nagios et d'utiliser l'option -k du plugin. Par exemple pour surveiller un interface Serial3/0 et emmettre une alerte de warning si débit dépasse 1.6 Mbps puis une alerte critique si ce dernier passe la barre des 1.9 Mbps ?
    /usr/local/libexec/nagios/check_snmp_int.pl -H <adresseIPdurouteur> -C public -n "Serial3/0" -k -w 1600,1600 -c 1900,1900
    Je vous laisse convertir cette commande système vers une commande Nagios, cela vous fera un bon exercice...
    Détection des attaques DDOS avec Nagios
    page50image8752
    Depuis l’affaire Wikileaks, les attaques réseau de type DDOS sont sous le feu de la rampe (et des médias). C'est une attaque assez difficile à détecter car contrairement à des attaques plus "classiques", elle se base sur le fait d'inonder la machine cible de requêtes venant d'un nombre important de machines zombies (c'est à dire infecté par un programme qui va lancer une attaque).
    Nous allons dans ce billet voir comment utiliser Nagios pour envoyer des alertes en cas de détection d'une attaque de type DDOS SYN Flood.
    Pour cela j'ai développé (sous licnce GPL v3) un plugin Nagios disponible à l'adresse suivante:
    http://svn.nicolargo.com/nagiosautoinstall/trunk/check_ddos.pl
    Installation du script
    Il faut disposer d'un serveur Nagios correctement configuré. Puis exécuter les commandes suivantes:
           cd /usr/local/nagios/libexec
           sudo rm -f check_ddos.pl
           wget http://svn.nicolargo.com/nagiosautoinstall/trunk/check_ddos.pl
           chmod a+rx check_ddos.pl
           sudo chown nagios:nagios check_ddos.pl
    
    Test du script:
           ./check_ddos.pl -w 50 -c 60
           No DDOS attack detected (5/50)
    
    Configuration de Nagios
    Pour ajouter un service de détection DDOS SYN Flood sur la machine locale (en clair pour vérifier les attaques DDOS vers le serveur hébergeant Nagios), il faut dans un premier temps éditer le fichier commands.cfg (par défaut dans le répertoire /usr/local/nagios/etc/objects) pour ajouter la nouvelle commande de detection DDOS SYN Flood:
           # check_ddos
           define command{
    
                 command_name check_ddos
                 command_line $USER1$/check_ddos.pl -w $ARG1$ -c $ARG2$
    
    }
    Puis il faut éditer le fichier localhost.cfg (qui se trouve également dans le répertoire /usr/local/ nagios/etc/objects):
           # Define a DDOS SYN Flood detection service
           # http://blog.nicolargo.com/?p=4100
           # Warning: >50 SYN_RECV
           # Critical: >70 SYN_RECV
    
           define service{
                 use local-service
    
                 host_name bilbo
                 service_description DDOS SYN Flood detect
                 check_command check_ddos!50!70
    
    }
    Nous venons ainsi de définir un service qui va émettre une alerte Warning quand le serveur aura plus de 50 connexions de type SYN_RECV ouvertes (plus de 70 pour une alerte Critical). Ces chiffrent sont bien sur à adapter selon les serveurs...
    En bonus, si une alerte est généré, le plugin affiche le TOP 10 des adresses IP des machines zombies (pratique pour les bloquer avec des règles de Firewall Iptables).
    Si vous souhaitez surveiller les attaques DDOS SYN Flood sur une autre machine, il faut utiliser le plugin NRPE qui va faire l'interface entre le serveur Nagios et le serveur à superviser.
    Surveiller vos serveurs Windows avec Nagios
    Voici un chapitre dédié aux lecteurs qui ont à administrer des machines sous Windows. Nous allons décrire l'installation de NSClient, un plugin permettant de récupérer un nombre important de d'informations à surveiller sur une machine Windows.
    Comme les plugins NRPE et NSCA (disponible seulement sous Linux et Mac OS X), NSClient se base sur une architecture client/serveur. La partie cliente (nommée check_nt), doit être disponible sur le serveur Nagios. La partie serveur (NSClient++) est à installer sur chacune des machines Windows à surveiller.
    Installation de check_nt
    page52image13752
    Il y a de forte chance que le plugin check_nt soit installé par défaut sur votre serveur Nagios. Pour le vérifier, il faut se rendre dans le répertoire Nagios ou se trouve vos plugins (/usr/lib/ nagios/plugins sur Fedora, /usr/local/nagios/plugins sur Ubuntu).
           # cd /usr/lib/nagios/plugins
           # ls check_nt
           check_nt
    
    Si ce n'est pas le cas, il suffit de l'installer grâce aux commandes suivantes:
           Fedora:
           # sudo yum install nagios-plugins-nt
    
           Ubuntu:
           # sudo apt-get install nagios-plugins-nt
    
    Installation de NSClient++
    Remarque: cette opération est à faire sur l'ensemble des PC Windows à surveiller.
    La première chose à faire est de télécharger la dernière version (0.2.5e ou supérieure) à l'adresse suivante: Sourceforge de NSClient++. Ensuite il faut:
    • ●  "dézipper" le client dans le répertoire c:\nsclient
    • ●  ouvrir une commande DOS (cmd.exe)
    • ●  puis entrer les commandes suivantes:
      cd\nsclient
      nsclient++/install
    • ●  Ouvrir le gestionnaire des services et vérifier que le service est autorisé à "Interagir
      avec le bureau"
    page53image10912 page53image11072
    page54image544
    Editer le fichier c:\nsclient\NSC.INI en:
    décommentanttouslesmoduleslistédanslasection[modules]sauf CheckWMI.dll et RemoteConfiguration.dll
    décommentantlaligneallowed_hostsdanslasection[Settings]eteny ajoutant l'adresse du serveur Nagios.
    puis entrer les commandes suivantes dans votre fenêtres DOS: cd\nsclient
    nsclient++/start
    Pour tester que l'installation à bien marché, le plus simple est de faire un test depuis le serveur
    Nagios. Pour cela, il faut:
    # cd /usr/lib/nagios/plugins
    # ./check_nt -H
    IPMACHINEWINDOWS -v CLIENTVERSION -p 12489
    Si tout ce passe bien, le client doit envoyer la version de NSClient (0.2.5e)

    Si cela ne fonctionne pas, il faut peut être vérifier que la requête (TCP sur port 12489) n'est pas bloqué par un Firewall.
    Configuration de Nagios pour surveiller vos machines Windows
    Une fois le client et le serveur installé, il faut configurer Nagios de la manière suivantes. Il faut dans un premier temps éditer votre fichier de configuration des hosts (hosts.cfg par défaut) et y ajouter votre machine Windows:
           define host {
                 use generic-host
    
    host_name billgates
    alias Ma machine Win address 192.168.6.66

    }
    Puis ajouter les services offerts par NSClient (dans le fichier services.cfg):
           # Affiche la version du NSClient
           define service {
    
                 use generic-service
                 host_name billgates
                 service_description VERSION
                 check_command check_nt!CLIENTVERSION
    
    }
           # Temps écoulé depuis le dernier reboot (uptime)
           define service {
    
                 use generic-service
                 host_name billgates
                 service_description UPTIME
                 check_command check_nt!UPTIME
    
    }
           # Charge CPU
           # WARNING si charge > 80% pendant plus de 5 minutes
           # CRITICAL si charge > 90% pendant plus de 5 minutes
           define service {
    
                 use generic-service
                 host_name billgates
                 service_description CPU
                 check_command check_nt!CPULOAD!-l 5,80,90
    
    }
           # Etat de la mémoire vive libre
           # WARNING si mémoire > 80%
           # CRITICAL si mémoire > 90%
           define service {
    
                 use generic-service
                 host_name billgates
                 service_description MEM
                 check_command check_nt!MEMUSE!-w 80 -c 90
    
           }
           # Etat de la mémoire disque libre (sur disque c:)
    
    # WARNING si mémoire > 80%
    # CRITICAL si mémoire > 90%
    define service {
    
    }
    use generic-service
    host_name billgates
    service_description DISK
    check_command check_nt!USEDDISKSPACE!-l c -w 80 -c 90
    
    Il est également possible de surveiller l'état d'un service (SERVICESTATE) ou d'un processus (PROCSTATE).
    Surveiller vos serveurs GNU/Linux avec Nagios
    Installation de NRPE depuis les sources
    Afin de disposer de la dernière version de NRPE (le plugin pour superviser vos serveurs GNU/Linux, BSD ou Mac OS X sous Nagios), il est parfois nécessaire de la compiler depuis les sources. Voici donc une simple procédure pour installer NRPE 2 et les plugins Nagios "standards" sous une distribution GNU/Linux.
    page56image8032
    Récupération des sources
    Nous partons, bien sûr, sur l'hypothèse ou votre machine cible (c'est à dire celle ou vous aller compiler NRPE) dispose des logiciels de développement de base (configure, make, gcc...).
    Si votre machine dispose d'un accès internet, vous pouvez saisir les commandes suivantes (en remplacent les numéros de versions par les dernières disponibles):

    wget http://surfnet.dl.sourceforge.net/sourceforge/nagios/nrpe-2.12.tar.gz
    wget http://heanet.dl.sourceforge.net/sourceforge/nagiosplug/nagios-plugins-1.4.13.tar.gz

    Préalablement à l'installation de NRPE, il faut créer un utilisateur 'nagios' sur votre machine:
    adduser nagios
    Pour des raisons de sécurité, il est préférable que cet utilisateur n'est pas de shell:

           vipw
           Remplacer la ligne:
           nagios:x:500:500::/home/nagios:/bin/bash
           Par:
           nagios:x:500:500::/home/nagios:/bin/noshell
    
    Installation de NRPE
    On lance la fameuse séquence:
           tar zxvf nrpe-2.12.tar.gz
           cd nrpe-2.12
           ./configure
           make all
    
    make install
    Lors de la compilation il est possible qu'il manque des dépendances. Par exemple, si vous avez le message suivant:
           checking for SSL headers... configure: error: Cannot find ssl headers
    
    Il faut installer les librairies SSL (libssl-dev sous Ubuntu):
           apt-get install libssl-dev
    
    Installation des plugins Nagios standards
    Pareil que miguel...:
           tar zxvf nagios-plugins-1.4.13.tar.gz
           cd nagios-plugins-1.4.13
           ./configure
           make install
    
    Puis une initialisation du script de configuration (/usr/local/nagios/etc/nrpe.conf):
           mkdir /usr/local/nagios/etc
           cp sample-config/nrpe.cfg /usr/local/nagios/etc
    
    Correction des droits sur les fichiers
    De base, les plugins sont installés avec les droits de l'utilisateur qui à lancé la compilation. Pour être sûr que NRPE puisse lancer les plugins, on doit saisir la commande suivante:
           chown -R nagios:nagios /usr/local/nagios/
    
    Lancement automatique au démarrage
    Un script standard est fourni dans les sources:
           cp init-script /etc/init.d/nrpe
           chmod 755 /etc/init.d/nrpe
    
    Surveiller vos serveurs Linux avec Nagios et NRPE
    Suite à l'introduction sur les greffons Nagios, voici une simple procédure pour mettre en place le monitoring de serveurs sous Linux (voir ce billet pour des serveurs BSD ou Mac OS X) à partir de Nagios en utilisant le plugin NRPE.
    Sur votre serveur Nagios...
    ... il faut installer le plugin NRPE. Pour cela, le plus simple est de faire confiance à votre gestionnaire de paquets.
    Sous Fedora, la commande suivante devrait suffire:
           sudo yum install nagios-plugins-nrpe
    
    Sous Ubuntu/Debian:
    page58image9904
           sudo apt-get install nagios-nrpe-plugin
    
    Il faut également vérifier que la définition du plugin est bien présente dans le fichier de configuration des commandes (commands.cfg):
           ...
           ######
           # NRPE
           ######
           # 'check_nrpe' command definition
           define command{
    
                 command_name check_nrpe
                 command_line $USER1$/check_nrpe -H $HOSTADDRESS$ -c $ARG1$
    
    }
    Sur votre serveur Linux à surveiller...
    La procédure est un peu plus longue. Il faut d'abord installer le daemon NRPE et les plugins Nagios (qui vont être lancés localement par le daemon NRPE):
    Sous Fedora:
           # sudo yum install nrpe
           # sudo yum install nagios-plugins-all
    
    Sous Ubuntu/Debien:
           # sudo apt-get install nagios-nrpe-server
           # sudo apt-get install nagios-plugins
    
    Puis éditer le fichier /etc/nagios/nrpe.cfg pour modifier la ligne suivante:
    ...
    allowed_hosts =
    Mettre ici l'adresse IP de votre serveur Nagios ...
    On automatise le lancement du daemon au démarrage du serveur avec la commande:
           # chkconfig --add nrpe
    
    On ajoute une règle pour autoriser le Firewall IPtable à laisser passer les requêtes NRPE (à adapter selon vos règles):
           # iptables -I RH-Firewall-1-INPUT 10 -p tcp --dport 5666 -j ACCEPT
    
    Il ne reste plus qu'à lancer le daemon: Sous Fedora:
           # service nrpe start
    
    Sous Ubuntu/Debien:
           # /etc/init.d/nagios-nrpe-server start
    
    On teste la communication...
    Pour tester que la communication entre le serveur Nagios et le serveur à surveiller se passe bien, il suffit de se rendre dans le répertoire des plugins (/usr/lib/nagios/plugins) de Nagios et de tester le plugin NRPE:
           # ./check_nrpe -H Adresse_IP_du_serveur_Linux
           NRPE v2.7
    
    Si tout est OK, cette commande devrait renvoyer la version du daemon NRPE. Vous pouvez tester directement les plugins avec la commande suivante (exemple donnée pour un check de la charge):
           # ./check_nrpe -H Adresse_IP_du_serveur_Linux -c check_load
    
    On configure Nagios...
    La dernière étape consiste à modifier les fichiers de configuration de Nagios pour intégrer le monitoring du/des serveur Linux. Il faut dans un premier temps éditer votre fichier de configuration des hosts (hosts.cfg par défaut) et y ajouter votre machine Linux:
           define host {
                 use generic-host
    
                 host_name linus
                 alias Ma machine Linux
                 address 192.168.0.7
    
    }
    Puis ajouter les services offerts par NRPE (dans le fichier services.cfg), quelques exemples:
    # Charge CPU
    define service{
    
    }
    use generic-service
    host_name remotehost
    service_description CPU Load
    check_command check_nrpe!check_load
    
           # Memoire
           define service{
    
                 use generic-service
                 host_name remotehost
                 service_description Memory
                 check_command check_nrpe!check_mem
    
    }
    Pour ajouter des nouveaux plugins executable par NRPE, il faut éditer le fichier /etc/nagios/ nrpe.cfg et ajouter une ligne par service:
           ...
           command[check_disk]=/usr/lib/nagios/plugins/check_disk -w 20 -c 10 -p /dev/hda
           ...
    
    Ne pas oublier de relancer le daemon quand on change le fichier de configuration (nrpe.cfg):
           # service nrpe restart
    
    Il est bien entendu possible d'écrire son propre plugin Nagios et de le faire exécuter par NRPE. Surveiller la mémoire de vos serveurs avec Nagios
    Voici un petit billet de plus sur Nagios. Nous aborderons le sujet de la supervision à distance de la mémoire vive (RAM) de nos serveurs.
    Nous allons pour cela utiliser deux plugins, le premier est NRPE (il permet de lancer des commandes à distance sur d'autres machines), le second est un script permettant d'obtenir un état de la mémoire vive à un instant "t".
    Nous utiliserons donc le schéma suivant:
    page62image552
    Installation de NRPE
    Ce premier plugin doit être installé sur le serveur Nagios et sur toutes les machines à superviser.
    Pour une procédure d'installation sous GNU/Linux, lire
    ce billet. Si vous voulez surveiller des machines FreeBSD, lire celui là.
    A ce stade vous devez donc avoir un plugin NRPE opérationnel entre votre serveur Nagios et les machines à surveiller.
    Installation du plugin de supervision de la mémoire
    Il existe un grand nombre de méthodes pour obtenir la mémoire libre sur une machine. Personnellement j'utilise les deux scripts suivants selon que je sois:
    sous Linux: check_memory
    ou sous FreeBSD: check_mem
    Mais, si le coeur vous en dit, vous pouvez écrire vous-même le plugin le plus adapté à votre système (Windows, Unix divers et varié...).
    Une fois connecté sur votre machine à superviser, il faut mettre le plugin dans le répertoire /usr/ local/libexec/nagios/ et lui donner les droits en lecture et exécution:
           cp ./check_memory.pl /usr/local/libexec/nagios/
           chmod 555 /usr/local/libexec/nagios/check_memory.pl
    
    Vous pouvez tester localement le plugin grâce la commande suivante:
           /usr/local/libexec/nagios/check_memory.pl -f -w 90 -c 50
           Memory WARNING - 87.5% (1879588864 kB) free |pct=87.5
    
    page62image11608
    Configuration de NRPE pour prendre en compte le script check_memory
    Toujours sur la machine cible, il faut éditer le fichier de configuration de NRPE pour y ajouter la définition du plugin check_memory:
           vi /usr/local/etc/nrpe.cfg
           ...
           command[check_mem]=/usr/local/libexec/nagios/check_memory.pl -f -w 30 -c 15
           ...
    
    Dans la configuration ci-dessus, on demande à check_memory de déclencher une alerte (warning) si la mémoire passe en dessous des 30% et une erreur (critical) si elle descend en dessous des 15%. Avous d'adpater ces valeurs selon vos besoins. Pour que NRPE prenne en compte la nouvelle configuration il faut relancer le daemon:
           Sous Linux:
                 service nrpe2 restart
    
    ou
                 /etc/init.d/nrpe2 restart
    
           Sous FreeBSD:
                 /usr/local/etc/rc.d/nrpe2 restart
    
    Configuration du serveur Nagios
    Il ne reste plus qu'à modifier la configuration du serveur Nagios pour ajouter le service à superviser, voici un exemple:
           # Mon serveur
           define host{
    
    use generic-host host_name monserveur
           alias
           address
    
    }
    define service{
    
    Mon beau serveur
           192.168.0.200
    
    }
    use
    host_name
    service_description
    check_command
    
    generic-service
    monserveur
    Memoire vive
    check_nrpe!check_mem
    
    Et voila le résultat:
    page64image1112

    THE END ! 

    Share and Enjoy:

    0 commentaires pour ce poste

    Leave a reply

    Vidéos similaires
    GRANDES CATEGORIES
    http://admin-reseaux.blogspot.fr/http://admin-reseaux.blogspot.frhttp://admin-reseaux.blogspot.fr
    http://admin-reseaux.blogspot.frhttp://admin-reseaux.blogspot.frhttp://admin-reseaux.blogspot.fr
    http://admin-reseaux.blogspot.fr/search/label/ACTIVE%20DIRECTORYhttp://admin-reseaux.blogspot.frhttp://admin-reseaux.blogspot.fr
    https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnLrfU3ikj6mRqbAL2TNKLBMxNt9vqwo44KXAsRHxYVp5XBBZxiwLP9njfotk0OJdPQCu9zPJiFgeI0N7_aZswToXXhKvVejLGBPZ9LrsDned5cOX3AiLu1a2CJYhbzXYnZ58kKI99uwHU/s1600/Unknownvoip.jpghttp://admin-reseaux.blogspot.frhttp://admin-reseaux.blogspot.fr
    https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnLrfU3ikj6mRqbAL2TNKLBMxNt9vqwo44KXAsRHxYVp5XBBZxiwLP9njfotk0OJdPQCu9zPJiFgeI0N7_aZswToXXhKvVejLGBPZ9LrsDned5cOX3AiLu1a2CJYhbzXYnZ58kKI99uwHU/s1600/Unknownvoip.jpghttp://admin-reseaux.blogspot.frhttp://admin-reseaux.blogspot.fr
    Messages populaires

    pobular post

    Widgetadmin-reseaux
    Fourni par Blogger.
    Recent Stories
  •   Fortinet VPN SSL Vous souhaitez que vos utilisateurs nomades aient toujours accès aux applications présentes au sein de votre entreprise au travers d’un navigateur web? Dans ce tutoriel, je vais vous montrer comment configurer un Firewall Fortinet (Fortigate) [...]

  • Configurer et vérifier NTP dans le mode client et le mode s

    Configurer et vérifier NTP dans le mode client et le mode serverSynchronisation temporelle NTP1. Network Time Protocol (NTP)Network Time Protocol (NTP) est un protocole TCP/IP qui permet de synchroniser à travers le réseau l’horloge locale des ordinateurs sur une date et une heure de référence. Le projet NTP propose u[...]

  • Création d’une règle de pare-feu avec un Fortigate

    Création d’une règle de pare-feu avec un Fortigate I. Présentation Après avoir découvert ce qu’est un Fortinet dans un premier article, je voudrais vous montrer comment mettre en place une règle de Firewall avec quelques-unes des options de sécurité les plus utilisées pour la sécurité ou l’optimisation de n[...]

  • Qu’est-ce qu’un système PBX?

    Qu’est-ce qu’un système PBX? Le terme PBX revient souvent dans les offres des fournisseurs téléphoniques, parfois sous la forme de PBX hébergé, PBX IP ou Cloud PBX. Pour ceux qui connaissent moins leur lexique téléphonique, l’offre d’un système PBX avec des fonctionnalités quelconque[...]

  • Le JavaScript++

    TypeScript est un langage très récent (février 2012) qui a été conçu par Anders Hejlsberg, également concepteur du langage C#. Le but premier de TypeScript est de rendre plus facile et plus fiable l'écriture de code en JavaScript pour des applications de grande ampleur. Cet article présentera de fa[...]

  • De la téléphonie IP très facilement avec Asterisk

    De la téléphonie IP très facilement avec Asterisk Je vous propose en ce début d’année un tuto assez simple sur Asterisk. Si vous ne le connaissez pas, c’est un logiciel libre qui permet de faire de la téléphonie par IP, c’est assez sympa à faire ! Le tutorial a été réalisé sur une Debian 7.3 64bits m[...]

  • Qu’est ce que la Voix sur IP (VoIP)?

    Qu’est ce que la Voix sur IP (VoIP)? La Voix sur IP, raccourci de voix par le protocole internet, est aussi connue sous le terme de VoIP. La voix sur IP se réfère à la diffusion du flux de la voix sur les réseaux Internet, au lieu des réseaux téléphoniques RTC traditionnels. Le protocole Internet (IP) a ét[...]

  • Quelques astuces pour assurer la sécurité de vos données in

    Quelques astuces pour assurer la sécurité de vos données informatiques   Sécurité informatique Chaque année, de nombreux utilisateurs et entreprises se font malheureusement piratés leurs données informatiques qu’elles soient personnelles ou professionnelles. Pour éviter e[...]

  • CONNECTER AVEC FACEBOOK
    Sponsors
    Chercher
    Archives
    Contactez Moi
    Contactez Moi