{"id":360,"date":"2009-10-07T11:31:45","date_gmt":"2009-10-07T09:31:45","guid":{"rendered":"http:\/\/michauko.org\/blog\/?p=360"},"modified":"2015-11-21T10:06:52","modified_gmt":"2015-11-21T09:06:52","slug":"mise-en-place-de-nagios","status":"publish","type":"post","link":"https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/","title":{"rendered":"Mise en place de Nagios : en partant de rien"},"content":{"rendered":"<h1>Introduction<\/h1>\n<p>Gros guide de mise en place de Nagios sur Debian, avec comme principal objectif de vous amener petit \u00e0 petit \u00e0 monitorer tout ce qu&rsquo;on peut imaginer sur un parc de serveurs Linux, Windows, des \u00e9quipements r\u00e9seaux etc. Ca part d&rsquo;un exemple bien d\u00e9taill\u00e9 (je l&rsquo;esp\u00e8re) pour bien faire comprendre les principes et l&rsquo;esprit Nagios pour esp\u00e9rer \u00e0 la fin, vous avoir donn\u00e9 de quoi \u00e9voluer facilement pour ajouter n&rsquo;importe quel test.<br \/>\nAu d\u00e9part, je voulais faire un guide super complet, mais avec Nagios, on ajoute des tests tous les jours, pour ainsi dire. Bref, \u00e7a fait 3 mois que j&rsquo;attendais pour faire ce guide. Finalement je l&rsquo;\u00e9courte un peu et j&rsquo;ajouterai (peut-\u00eatre) des chapitres plus tard sur ce blog.<br \/>\nApr\u00e8s un premier exemple bien complet, je donne des exemples rapides de contr\u00f4les courants.<\/p>\n<p>J&rsquo;ai eu l&rsquo;id\u00e9e de r\u00e9diger cet article sachant que je ne connaissais rien \u00e0 Nagios (rien de sa mise en place, rien des fichiers de conf, rien de sa syntaxe, rien des outils de base, rien des plug-ins suppl\u00e9mentaires et rien des contributions \u00e0 gogo sur le web etc). L&rsquo;int\u00e9r\u00eat, n&rsquo;y connaissant rien justement, est que j&rsquo;explique pas \u00e0 pas, notamment les principes de l&rsquo;outil pour comprendre comment le configurer, en d\u00e9taillant parfois toutes les panneaux que j&rsquo;ai pu me prendre, mais en donnant la solution rapidement \ud83d\ude42<\/p>\n<p><del datetime=\"2009-09-01T15:36:10+00:00\">A la fin, je donne mes fichiers de conf, un peu anonymis\u00e9s et all\u00e9g\u00e9s, ils peuvent vous servir pour de la mise en place de certains morceaux ou pour vous guider dans la syntaxe. Exemple, vous voulez surveiller vos serveurs DNS, cherchez le mot \u00ab\u00a0dns\u00a0\u00bb dans tous les fichiers, comprenez ce qui y est fait et copiez-collez-modifiez les bons blocs. Reste \u00e0 changer les noms de hostname \ud83d\ude42<\/del> Hum, \u00e7a, ce sera plus tard lorsque j&rsquo;aurai compl\u00e9t\u00e9 par d&rsquo;autres articles (cf. ci-dessus), je n&rsquo;ai pas trop le temps, et sinon, je ne publierai jamais cet article&#8230; il tra\u00eene depuis 3 mois&#8230;<\/p>\n<p>Je ne compte pas faire de l&rsquo;ombre \ud83d\ude00 \u00e0 <a href=\"http:\/\/blog.nicolargo.com\/nagios-tutoriels-et-documentations\">Nicolargo<\/a> (passionn\u00e9 du sujet Nagios) mais mon approche est diff\u00e9rente : je pars de ce que Debian a fait pour moi, pas des sources \u00e0 compiler pour avoir l&rsquo;absolue derni\u00e8re version. Les r\u00e9pertoires de configuration et de chemins des binaires sont diff\u00e9rents, tous les plug-ins classiques sont directement disponibles.<br \/>\nApr\u00e8s, une fois l&rsquo;outil fonctionnel sur quelques cas, \u00e7a reste du Nagios pur. Allez voir son site, il y a de bonnes docs et le forum peut aider aussi. Sans compter d&rsquo;autres sites d&rsquo;outils de monitoring compl\u00e9mentaires, notamment <a href=\"http:\/\/www.monitoringexchange.org\/\">http:\/\/www.monitoringexchange.org\/<\/a>, et \u00e9videmment la <a href=\"http:\/\/nagios.sourceforge.net\/docs\/3_0\/toc.html\">doc officielle <\/a>qui est tr\u00e8s bien foutue. J&rsquo;y ferai r\u00e9f\u00e9rence autant de fois que j&rsquo;y penserai.<\/p>\n<p>La version actuellement packag\u00e9e sous Debian \u00ab\u00a0stable\u00a0\u00bb (Lenny) est Nagios 3.0.6. Comme d&rsquo;habitude avec Debian, un peu en retard sur la version officielle, mais il y a d&rsquo;autres int\u00e9r\u00eats \u00e0 utiliser tout de m\u00eame la version packag\u00e9e, \u00e0 mon avis.<!--more--><\/p>\n<h1>Installation<\/h1>\n<h2>Sur un air d&rsquo;aptitude install<\/h2>\n<p>Ca commence sur un air connu par un <code>aptitude install nagios3<\/code>. A noter que \u00e7a descend par d\u00e9pendance 3 paquets <code>nagios-plugins*<\/code> qui contiendront tout un tas de plugins (contr\u00f4le de LDAP, de mail, de MySQL, de MRTG, de serveur FTP&#8230;).<br \/>\nUne remarque pendant l&rsquo;installation (pour le chapitre suivant) :<\/p>\n<pre>[...]\r\nGet:10 ftp:\/\/ftp.fr.debian.org lenny\/main nagios3-doc 3.0.6-3 [2034kB]\r\n[...]\r\nserious bugs of nagios3-common (-> 3.0.6-3) <done>\r\n #519341 - nagios3-common: missing \"then\" in nagios3-common.prerm (Fixed: nagios3\/3.0.6-4)\r\n[...]<\/pre>\n<p>On voit aussi passer ces plugins :<\/p>\n<pre>[...]\r\nCreating config file \/etc\/nagios-plugins\/config\/http.cfg with new version\r\nCreating config file \/etc\/nagios-plugins\/config\/load.cfg with new version\r\nCreating config file \/etc\/nagios-plugins\/config\/mail.cfg with new version\r\n[...]<\/pre>\n<p>Lisez de pr\u00e9f\u00e9rence tous les fichiers <code>README.Debian<\/code> des r\u00e9pertoires <code>\/usr\/share\/doc\/nagios3<\/code> et <code>\/usr\/share\/doc\/nagios-plugins<\/code>. Il y a 2\/3 infos importantes, mais je les reprends au fil de l&rsquo;eau dans la suite de l&rsquo;article.<\/p>\n<h2>Droits d&rsquo;acc\u00e8s \u00e0 l&rsquo;interface web de Nagios<\/h2>\n<p>Les <code>README.Debian<\/code> habituels qu&rsquo;on trouve dans <code>\/usr\/share\/doc\/nagios*<\/code> parlent du truc et indiquent qu&rsquo;on doit avoir une question pos\u00e9e pendant l&rsquo;installation. Vu le bug mentionn\u00e9 plus haut par apt-listbugs (<a href=\"https:\/\/michauko.org\/blog\/2007\/10\/19\/le-paquet-du-jour-apt-listbugs\/\">c&rsquo;est quoi ?<\/a>), je ne m&rsquo;\u00e9tonne qu&rsquo;\u00e0 moiti\u00e9 de n&rsquo;avoir pas vu passer de \u00ab\u00a0fen\u00eatre\u00a0\u00bb (ncurses) pendant l&rsquo;installation. Doc pas \u00e0 jour ou vrai bug. Bon bref, il faut rectifier le tir.<\/p>\n<p>On voit dans <code>\/etc\/apache2\/conf.d\/nagios3.conf<\/code> que les droits sont g\u00e9r\u00e9s par <code>htaccess<\/code> (voir directive <code>AuthUserFile<\/code>)dans <code>\/etc\/nagios3\/htpasswd.users<\/code>. Or, ce fichier n&rsquo;existe pas, on doit donc le cr\u00e9er.<\/p>\n<pre>htpasswd -c \/etc\/nagios3\/htpasswd.users nagiosadmin<\/pre>\n<p>Le nom <code>nagiosadmin<\/code> semble important pour \u00e9viter certains ennuis (de ce que j&rsquo;en ai lu, mais je ne sais plus o\u00f9, peut-\u00eatre <a href=\"http:\/\/www.onlamp.com\/pub\/a\/onlamp\/2002\/09\/26\/nagios.html?page=3\">l\u00e0<\/a>).<br \/>\nEnfin, v\u00e9rifiez les droits sur le fichier en question, id\u00e9alement, il faut :<\/p>\n<pre>chown root:www-data \/etc\/nagios3\/htpasswd.users\r\nchmod 640 \/etc\/nagios3\/htpasswd.users<\/pre>\n<p>Et recharger apache via <code>\/etc\/init.d\/apache2 reload<\/code>.<br \/>\nL&rsquo;adresse d&rsquo;acc\u00e8s doit \u00eatre <code>http:\/\/votre.serveur\/nagios3\/<\/code>.<\/p>\n<h1>Principe de base et cheminement de ma doc<\/h1>\n<p>Une fois qu&rsquo;on a pataug\u00e9 un peu, il en ressort quelques grands principes pour gagner en autonomie et arriver \u00e0 pondre du fichier de conf au kilom\u00e8tre ou savoir o\u00f9 regarder pour trouver un plug-in tiers, le mettre en place, l&rsquo;utiliser et m\u00eame l&rsquo;adapter.<br \/>\nQuelques grandes id\u00e9es pour d\u00e9marrer :<\/p>\n<ul>\n<li>Nagios appelle des scripts permettant de contr\u00f4ler un \u00e9l\u00e9ment particulier (ou plusieurs d&rsquo;un coup) : contr\u00f4ler un service, les espaces disques, la charge CPU, la r\u00e9ponse d&rsquo;un site web, la charge d&rsquo;un port de switch etc<\/li>\n<li>On a des mod\u00e8les d&rsquo;appels de scripts, nomm\u00e9s en g\u00e9n\u00e9ral \u00ab\u00a0check_quelquechose\u00a0\u00bb permettant de comprendre les param\u00e8tres pour un contr\u00f4le donn\u00e9 (valeurs limites, nom du truc \u00e0 regarder<\/li>\n<li>Il faudra d\u00e9ployer des agents pour certains contr\u00f4les, notamment pour contr\u00f4ler du Windows. En gros, pour obtenir des informations qui sont r\u00e9cup\u00e9rables par un traitement local uniquement, pas \u00e0 distance. Normal me direz-vous. Ces agents sont des \u00e0 c\u00f4t\u00e9s du projet Nagios. Mais il y a d\u00e9j\u00e0 tout ce qu&rsquo;il faut.<\/li>\n<li>Il va falloir d\u00e9crire nos machines une \u00e0 une et ce qu&rsquo;on contr\u00f4le pour chacune (forc\u00e9ment, c&rsquo;est pas magique comme outil). On pourra faire des groupes de machines et y associer des contr\u00f4les appliqu\u00e9s \u00e0 ces groupes. Exemples : toute machine h\u00e9bergeant un serveur web aura de base un contr\u00f4le v\u00e9rifiant le port 80 ; toute machine Windows aura de base un contr\u00f4le sur la n\u00e9cessit\u00e9 d&rsquo;applications de patchs, un contr\u00f4le sur l&rsquo;espace disque etc&#8230;<\/li>\n<\/ul>\n<p>Dans cette doc, je vais d\u00e9crire chaque sujet dans l&rsquo;ordre dans lequel j&rsquo;ai mis en place les contr\u00f4les, souvent en partant de la doc officielle (parfois pas exactement \u00e0 jour) puis en adaptant au contexte Debian qui a, comme d&rsquo;habitude, pr\u00e9-m\u00e2ch\u00e9 certaines choses (mise \u00e0 dispo de scripts, \u00ab\u00a0mod\u00e8les\u00a0\u00bb pour tel type de machine, de switchs etc).<br \/>\nJe voulais avant tout contr\u00f4ler un peu tous ces jolis serveurs Windows qui sont peu bavards en g\u00e9n\u00e9ral (ou qui racontent uniquement des trucs dont on se fout)&#8230; Donc il y a une bonne partie sur l&rsquo;interfa\u00e7age avec Windows ; cas somme toute courant je pense.<br \/>\nDu coup, je diss\u00e9mine des informations malgr\u00e9 moi \u00e0 mesure de ma compr\u00e9hension (lorsque j&rsquo;ai \u00ab\u00a0appris\u00a0\u00bb Nagios) ; et surtout en ayant r\u00e9dig\u00e9 la doc quelques mois apr\u00e8s (hum).<\/p>\n<p>Bon, en bref, Nagios est un outil <strong>tout sauf clef-en-main<\/strong> (sauf peut-\u00eatre si vous optez pour un syst\u00e8me comme <a href=\"http:\/\/fannagioscd.sourceforge.net\/\">FAN<\/a>, mais vous aurez un syst\u00e8me d\u00e9di\u00e9 \u00ab\u00a0limit\u00e9\u00a0\u00bb \u00e0 Nagios&#038;co je suppose)<br \/>\nLe param\u00e9trage est long et on en ajoute chaque jour.<br \/>\nPour le planning pour le patron, pr\u00e9voyez large. Mise en place et premiers r\u00e9sultats quelques heures tout au plus, param\u00e9trage plus pouss\u00e9 : quelques semaines. Plus on en d\u00e9couvre, plus on monitore de choses. On corrige les probl\u00e8mes et on en anticipe d&rsquo;autres gr\u00e2ce \u00e0 Nagios. Bref, le bonheur avec reporting pour le patron. A la fin, on commence \u00e0 \u00e9crire ses propres scripts, en n&rsquo;importe quel langage.<\/p>\n<p>Ah au fait, attention aux alertes par mail. Nagios vous dit tout : \u00ab\u00a0tel service est tomb\u00e9\u00a0\u00bb, \u00ab\u00a0tel service est toujours KO\u00a0\u00bb, \u00ab\u00a0tel service est revenu\u00a0\u00bb. Multipli\u00e9 par le nombre de service et de machines, \u00e7a fait des mails \u00e0 la pelle. Faudra pr\u00e9voir des r\u00e8gles de tri dans un premier temps&#8230;<\/p>\n<h1>C&rsquo;est parti<\/h1>\n<h2>Surveillance des basiques de serveurs Windows (NT, 2000, XP, 2003 et +)<\/h2>\n<p>Oui les libristes vont encore perdre du temps \u00e0 critiquer le fait que je parle de Windows-le-mal-incarn\u00e9 d&rsquo;abord. Economisez-vous. Mon point de vue est que justement, Nagios aide tr\u00e8s bien \u00e0 monitorer \u00ab\u00a0du windows\u00a0\u00bb l\u00e0 o\u00f9 Windows est quand m\u00eame \u00e0 chier niveau remont\u00e9es d&rsquo;alertes, en standard. Autant, un Linux un tant soit peu configur\u00e9 vous remonte d\u00e9j\u00e0 plein de choses par mail, par exemple, qu&rsquo;il ne sera pas forc\u00e9ment la peine d&rsquo;aller contr\u00f4ler par Nagios.<\/p>\n<h3>Installation et 1er param\u00e9trage de l&rsquo;agent NSClient++<\/h3>\n<p>Si vous voulez la doc officielle, commencez par l\u00e0 (<a href=\"http:\/\/nagios.sourceforge.net\/docs\/3_0\/quickstart.html\">http:\/\/nagios.sourceforge.net\/docs\/3_0\/quickstart.html<\/a>) et enchainez sur <a href=\"http:\/\/nagios.sourceforge.net\/docs\/3_0\/monitoring-windows.html\">http:\/\/nagios.sourceforge.net\/docs\/3_0\/monitoring-windows.html<\/a>.<br \/>\nIl faut donc t\u00e9l\u00e9charger et d\u00e9ployer un agent windows pour Nagios. Disponible en 32, 64 bits. Je pense qu&rsquo;il y en a plusieurs, j&rsquo;ai opt\u00e9 pour celui-ci, qui m&rsquo;a l&rsquo;air complet : <a href=\"http:\/\/sourceforge.net\/projects\/nscplus\">http:\/\/sourceforge.net\/projects\/nscplus<\/a>.<br \/>\nLorsque \u00e7a marchera pour une machine, il n&rsquo;y aura qu&rsquo;\u00e0 d\u00e9ployer l&rsquo;agent \u00e0 distance et injecter le fichier de conf NSC.ini qui va bien sur chaque machine. Pensez aux outils <del datetime=\"2009-09-01T15:36:10+00:00\">sysinternals.com<\/del> microsoft, notamment les <a href=\"http:\/\/technet.microsoft.com\/en-us\/sysinternals\/bb896649.aspx\">PSTools et psexec<\/a>. C&rsquo;est pratique pour automatiser.<\/p>\n<p>L&rsquo;agent apporte une interface entre l&rsquo;appelant Nagios et un serveur Windows. Il apporte aussi de base quelques outils pour effectuer une certaine batterie de tests. Le param\u00e9trage des tests que l&rsquo;on veut se fait sur le serveur Nagios, pas du c\u00f4t\u00e9 de l&rsquo;agent Windows.<br \/>\nSi on veut ajouter un test qui n&rsquo;est pas pr\u00e9vu par cet agent, il faudra \u00e9crire un script, sous windows cette fois, et le d\u00e9finir dans l&rsquo;agent, qui sert de relai, en gros. On le verra plus bas avec le contr\u00f4le des patchs Windows en attente d&rsquo;installation.<\/p>\n<p>Bref, une fois NSClient++ install\u00e9, la doc dit d&rsquo;aller trafiquer les options du service Windows qu&rsquo;on vient d&rsquo;installer. Dans les propri\u00e9t\u00e9s du service, allez dans l&rsquo;onglet \u00ab\u00a0Connexion \/ Log on\u00a0\u00bb et cocher la case pour autoriser \u00e0 \u00ab\u00a0interagir avec le bureau\u00a0\u00bb.<\/p>\n<p>Maintenant il faut ajuster un peu le fichier de param\u00e9trage de l&rsquo;agent, <code>C:\\Program Files[ (x86)]\\NSClient++\\NSC.ini<\/code>. Sachant que je vais y revenir plus tard pour NRPE (voir plus bas), si c&rsquo;est la gal\u00e8re pour d\u00e9ployer le fichier sur vos machines, attendez un peu pour le faire une seule fois (cherchez plus bas dans l&rsquo;article NRPE). Enfin bon, commencez par un serveur avant de g\u00e9n\u00e9raliser un truc qui ne fonctionne pas.<\/p>\n<p>Dans la section [modules], d\u00e9commenter comme suit (tout sauf CheckWMI.dll et RemoteConfiguration.dll) :<\/p>\n<pre>[modules]\r\n;# NSCLIENT++ MODULES\r\n;# A list with DLLs to load at startup.\r\n;  You will need to enable some of these for NSClient++ to work.\r\n; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !\r\n; *                                                               *\r\n; * N O T I C E ! ! ! - Y O U   H A V E   T O   E D I T   T H I S *\r\n; *                                                               *\r\n; ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! ! !\r\nFileLogger.dll\r\nCheckSystem.dll\r\nCheckDisk.dll\r\nNSClientListener.dll\r\nNRPEListener.dll\r\nSysTray.dll\r\nCheckEventLog.dll\r\nCheckHelpers.dll\r\n;CheckWMI.dll\r\n;\r\n; RemoteConfiguration IS AN EXTREM EARLY IDEA SO DONT USE FOR PRODUCTION ENVIROMNEMTS!\r\n;RemoteConfiguration.dll<\/pre>\n<p>Dans la partie [NSClient], attribuer un port d&rsquo;\u00e9coute (celui par d\u00e9faut \u00e0 priori) et dans la section [Settings], \u00e0 voir si vous voulez un mot de passe. Je n&rsquo;en ai pas mis, j&rsquo;ai limit\u00e9 l&rsquo;\u00e9coute \u00e0 l&rsquo;adresse IP de mon serveur Nagios ; pratique dans ce cas simple avec un seul serveur de monitoring.<\/p>\n<pre>[...]\r\n[NSClient]\r\n[...]\r\nport=12489\r\n[...]\r\n[Settings]\r\n[...]\r\n;password=secret-password\r\nallowed_hosts=192.168.y.x\r\n[...]<\/pre>\n<p>Notez la section <code>[log]<\/code> qui peut \u00eatre pratique quand rien ne fonctionne et qu&rsquo;il faut comprendre ce que NSClient re\u00e7oit de Nagios.<\/p>\n<p>Red\u00e9marrez le service, le client est pr\u00eat.<\/p>\n<h3>Premier morceau de config Nagios, la th\u00e9orie<\/h3>\n<p>Maintenant on va indiquer \u00e0 Nagios d&rsquo;aller voir ce qu&rsquo;il se passe l\u00e0-bas et quels tests de base effectuer pour une \u00ab\u00a0machine windows\u00a0\u00bb.<br \/>\nOn va partir d&rsquo;un mod\u00e8le de configuration de poste Windows fourni par Debian et d\u00e9finir notre machine, appel\u00e9e \u00ab\u00a0mamachine\u00a0\u00bb.<br \/>\nL\u00e0 \u00e7a fait un peu mal au cr\u00e2ne la premi\u00e8re fois, mais une fois le concept compris, vous pondrez des fichiers de conf Nagios au kilom\u00e8tre. En effet, c&rsquo;est le chapitre o\u00f9 on fait le bapt\u00eame du feu dans la syntaxe Nagios. J&rsquo;esp\u00e8re \u00eatre clair dans ces prochains chapitres.<\/p>\n<hr>\n<p>IMPORTANT<\/p>\n<hr>\n<p><P><br \/>\nL&rsquo;organisation en terme de fichiers dans <code>\/etc\/nagios3\/conf.d\/<\/code> est compl\u00e8tement libre. Vous pouvez tout mettre dans un seul fichier ou couper par site (par exemple), ou encore s\u00e9parer la d\u00e9claration des machines de celle des groupes de machines, mettre la d\u00e9finition de vos propres services \u00e0 part ou proche des groupes de machines auxquelles ces services se rapportent etc.<br \/>\nC&rsquo;est votre choix, \u00e0 la fin, Nagios int\u00e8grera l&rsquo;ensemble des directives de configuration de \u00ab\u00a0conf.d\u00a0\u00bb (ainsi que des plugins, tout ceci est configur\u00e9 en amont par Debian dans <code>\/etc\/nagios3\/*conf<\/code>) et hurlera au \u00ab\u00a0reload\u00a0\u00bb si vous vous \u00eates tromp\u00e9s.<br \/>\nC&rsquo;est d&rsquo;autant plus libre qu&rsquo;en g\u00e9r\u00e9ral, il y a plusieurs mani\u00e8res d&rsquo;organiser les choses pour arriver \u00e0 un m\u00eame r\u00e9sultat. Premier exemple ci-dessous : est-ce que je dis que \u00ab\u00a0mamachine\u00a0\u00bb appartient au groupe (<em>hostgroup<\/em>) \u00ab\u00a0windows-servers\u00a0\u00bb ou est-ce que je dis que le groupe \u00ab\u00a0windows-servers\u00a0\u00bb contient comme membre (<em>members<\/em>) \u00ab\u00a0mamachine\u00a0\u00bb. A vous de voir.<br \/>\nJe mets les mots-clefs Nagios entre parenth\u00e8se et <em>en italique <\/em>pour faire l&rsquo;association \u00ab\u00a0bon fran\u00e7ais\u00a0\u00bb-\u00ab\u00a0mot-clef Nagios\u00a0\u00bb.<\/p>\n<hr>\n<p>TNATROPMI<\/p>\n<hr>\n<p><P><\/p>\n<p>Donc, pour une conf de base pour tester une machine via NSClient++, je prends le \u00ab\u00a0groupe\u00a0\u00bb Windows (qu&rsquo;on compl\u00e8tera plus tard) et je cr\u00e9e une machine \u00ab\u00a0mamachine\u00a0\u00bb appartenant \u00e0 ce groupe. Ce qu&rsquo;on appelle ici un \u00ab\u00a0groupe\u00a0\u00bb est un \u00ab\u00a0ensemble des machines auxquelles un certains nombre de tests communs seront appliqu\u00e9s\u00a0\u00bb. C&rsquo;est un <em>\u00ab\u00a0hostgroup\u00a0\u00bb<\/em>. Debian a d\u00e9j\u00e0 affect\u00e9 plusieurs tests \u00e0 ce groupe. C&rsquo;est pratique.<br \/>\nL&rsquo;id\u00e9e sera d&rsquo;ajouter par la suite au groupe (<em>hostgroup<\/em>) \u00ab\u00a0windows-servers\u00a0\u00bb d&rsquo;autres les tests qui sont communs \u00e0 tous les Windows : pr\u00e9sence de patchs WSUS par exemple. Par exemple, on n&rsquo;ajoutera <strong>pas<\/strong> le contr\u00f4le du disque F: qui n&rsquo;existe peut-\u00eatre pas sur tous les serveurs. L\u00e0 il faudra faire par machine, ou alors un groupe \u00ab\u00a0des machines ayant un disque F:\u00a0\u00bb. C&rsquo;est votre choix.<\/p>\n<p>Attention, la notion de \u00ab\u00a0template\u00a0\u00bb dans Nagios est diff\u00e9rente, c&rsquo;est r\u00e9ellement un mod\u00e8le qui d\u00e9finit d&rsquo;autres informations sous-jascentes. On n&rsquo;y touchera pas (il me semble). Il y a des templates \u00ab\u00a0windows\u00a0\u00bb (nomm\u00e9s windows-server, et pas windows-servers qui est le groupe de machine windows, vu ? ;)), mais aussi par exemple un \u00ab\u00a0template\u00a0\u00bb de service nomm\u00e9 generic-service sur lequel on se base pour d\u00e9clarer un service.<\/p>\n<h3>Premier morceau de config Nagios, la pratique<\/h3>\n<p>Alors, je localise le groupe (<em>hostgroup<\/em>) \u00ab\u00a0windows-servers\u00a0\u00bb pr\u00e9-m\u00e2ch\u00e9 par Debian. On va l&rsquo;utiliser car il am\u00e8ne en standard les contr\u00f4les de base : espace disque, charge CPU&#8230;<\/p>\n<pre>srvnag:\/etc\/nagios3\/conf.d# dpkg -S windows.cfg\r\nnagios3-common: \/usr\/share\/doc<strong>\/nagios3-common\/examples\/template-object\/<\/strong>windows.cfg\r\nsrvnag:\/etc\/nagios3\/conf.d# cp \/usr\/share\/doc\/nagios3-common\/examples\/template-object\/windows.cfg template-windows.cfg\r\n<\/pre>\n<p>Ce fichier contient, sans les commentaires standards mais avec les miens et une fois un peu remodel\u00e9, ceci :<\/p>\n<pre>define host{ ; d\u00e9finition d'une machine bas\u00e9e sur le template \"windows-server\", nomm\u00e9 ci-dessous\r\n        use             windows-server  ; Inherit default values from a template\r\n        host_name       mamachine       ; The name we're giving to this host\r\n        alias           C est mamachine       ; A longer name associated with the host\r\n        address         192.168.x.y     ; IP address of the host\r\n        ; #hostgroups windows-servers ; voir ci-dessous\r\n}\r\n<\/pre>\n<p>Cette derni\u00e8re ligne (hostgroups) aurait permis de dire \u00ab\u00a0mamachine\u00a0\u00bb appartient au groupe (<em>hostgroup<\/em>) \u00ab\u00a0windows-servers\u00a0\u00bb (donc elle h\u00e9rite de tous ses tests). Dans mon cas, j&rsquo;ai plut\u00f4t d\u00e9cid\u00e9 de d\u00e9finir la liste des membres (=machines = <em>\u00ab\u00a0host\u00a0\u00bb<\/em>) d&rsquo;un groupe (<em>hostgroup<\/em>) dans la d\u00e9finition de ce groupe. Voir ci-dessous.<br \/>\nJ&rsquo;ai adapt\u00e9 les tests fournis par Debian pour le groupe \u00ab\u00a0windows-servers\u00a0\u00bb (qui ne contient qu&rsquo;une machine pour l&rsquo;instant). Voici le fichier r\u00e9sultant :<\/p>\n<pre>### D\u00e9claration du groupes windows-servers auquel on affectera les tests communs \u00e0 tous les windows\r\ndefine hostgroup{\r\n        hostgroup_name  windows-servers ; Mes serveurs windows\r\n        alias           Windows Servers ; Long name of the group\r\n}\r\n\r\n### D\u00e9finition des SERVICE que l'on va associer au groupe windows-servers\r\n# Create a service for monitoring the version of NSCLient++ that is installed\r\ndefine service{\r\n        use                     generic-service\r\n;        host_name               mamachine ; non je ne raisonne pas par machine, mais par groupe\r\n        hostgroup_name         windows-servers; voil\u00e0 o\u00f9 est l'association service\/groupe windows\r\n        service_description     NSClient++ Version\r\n        check_command           check_nt!CLIENTVERSION\r\n}\r\n# Create a service for monitoring the uptime of the server\r\ndefine service{\r\n        use                     generic-service\r\n;        host_name               mamachine ; non je ne raisonne pas par machine, mais par groupe\r\n        hostgroup_name         windows-servers; voil\u00e0 o\u00f9 est l'association service\/groupe windows\r\n        service_description     Uptime\r\n        check_command           check_nt!UPTIME\r\n}\r\n# Create a service for monitoring CPU load\r\ndefine service{\r\n        use                     generic-service\r\n;        host_name               mamachine ; non je ne raisonne pas par machine, mais par groupe\r\n        hostgroup_name         windows-servers; voil\u00e0 o\u00f9 est l'association service\/groupe windows\r\n        service_description     CPU Load\r\n        check_command           check_nt!CPULOAD!-l 5,80,90\r\n}\r\n# Create a service for monitoring memory usage\r\ndefine service{\r\n        use                     generic-service\r\n;        host_name               mamachine ; non je ne raisonne pas par machine, mais par groupe\r\n        hostgroup_name         windows-servers; voil\u00e0 o\u00f9 est l'association service\/groupe windows\r\n        service_description     Memory Usage\r\n        check_command           check_nt!MEMUSE!-w 80 -c 90\r\n}\r\n# Create a service for monitoring C:\\ disk usage\r\ndefine service{\r\n        use                     generic-service\r\n;        host_name               mamachine ; non je ne raisonne pas par machine, mais par groupe\r\n        hostgroup_name         windows-servers; voil\u00e0 o\u00f9 est l'association service\/groupe windows\r\n        service_description     C:\\ Drive Space\r\n        check_command           check_nt!USEDDISKSPACE!-l c -w 80 -c 90\r\n}\r\n# Create a service for monitoring the W3SVC service\r\n# c'est un exemple gard\u00e9 en commentaire pour la syntaxe check_nt de contr\u00f4le d'un service, voir plus bas\r\n;define service{\r\n;        use                     generic-service\r\n;        host_name               mamachine\r\n;        service_description     W3SVC\r\n;        check_command           check_nt!SERVICESTATE!-d SHOWALL -l W3SVC\r\n;}\r\n# Create a service for monitoring the Explorer.exe process\r\n# c'est un exemple gard\u00e9 en commentaire pour la syntaxe check_nt de contr\u00f4le d'un processus, voir plus bas\r\n;define service{\r\n;        use                     generic-service\r\n;        host_name               mamachine\r\n;        service_description     Explorer\r\n;        check_command           check_nt!PROCSTATE!-d SHOWALL -l Explorer.exe\r\n;}<\/pre>\n<p>Voil\u00e0. Si vous rechargez Nagios via <code>\/etc\/init.d\/nagios3 reload<\/code>, <strong>ben \u00e7a plante !!!<\/strong><br \/>\nJe d\u00e9cris \u00e7a juste apr\u00e8s avoir d\u00e9crit \u00ab\u00a0check_command\u00a0\u00bb histoire de finir l&rsquo;initiation \u00e0 la conf de base et aux probl\u00e8mes p\u00e9nibles du d\u00e9but :\/.<\/p>\n<h3>Autres principes \u00e0 comprendre de cet exemple<\/h3>\n<p>Qu&rsquo;y a-t-il d&rsquo;autre d&rsquo;important dans cette configuration pour comprendre le principe de Nagios ? le mot-clef \u00ab\u00a0check_command\u00a0\u00bb bien s\u00fbr. Lors de la d\u00e9finition d&rsquo;un service, la directive check_command est celle qui explique \u00e0 Nagios comment effectuer le test et quels param\u00e8tres on lui passe. Les param\u00e8tres sont s\u00e9par\u00e9s par le \u00ab\u00a0!\u00a0\u00bb. Le premier argument est le nom de la commande (<em>command<\/em>) Nagios (et pas du script appel\u00e9, pas encore, qui lui s&rsquo;appelle <em>command_line<\/em>).<\/p>\n<p>Exemple :<\/p>\n<pre>        check_command           check_nt!MEMUSE!-w 80 -c 90<\/pre>\n<p>On voit les valeurs d&rsquo;alertes warning et critical pour la charge m\u00e9moire utilis\u00e9e, en pourcentage. On retrouvera souvent les m\u00eames noms d&rsquo;arguments alors que les scripts n&rsquo;ont rien \u00e0 voir entre eux (-w pour seuil de warning etc). Il doit y avoir une sorte de norme dans le d\u00e9veloppement de ces scripts, je suppose.<\/p>\n<p>Pour comprendre le lien entre la <em>command<\/em> et le script effectivement appel\u00e9 sur l&rsquo;OS, voici :<\/p>\n<pre>srvnag:\/etc\/nagios-plugins# grep -r command_name * | grep check_nt\r\nconfig\/nt.cfg:  command_name    check_nt\r\n[...]<\/pre>\n<p>On y voit l&rsquo;association entre cette commande Nagios et la commande OS appel\u00e9e :<\/p>\n<pre>srvnag:\/etc\/nagios-plugins\/config\/cat nt.cfg\r\ndefine command {\r\n        command_name    check_nt\r\n        command_line    \/usr\/lib\/nagios\/plugins\/check_nt -H '$HOSTADDRESS$' -v '$ARG1$'\r\n# cette ligne est erron\u00e9 d'ailleurs, on le verra plus tard.\r\n}<\/pre>\n<p>La commande (<em>command<\/em>) check_nt appelle donc le script <code>\/usr\/lib\/nagios\/plugins\/check_nt<\/code>.<br \/>\n<strong>C&rsquo;est avec lui qu&rsquo;il faudra jouer pour \u00ab\u00a0tester certains tests\u00a0\u00bb en ligne de commande, avant de comprendre pourquoi ils plantent depuis Nagios mais pas depuis la ligne de commande. C&rsquo;est un cas courant.<\/strong>.<br \/>\nBon revenons au bug qui m&rsquo;occupait et qui devrait aussi vous occuper, \u00e0 priori un probl\u00e8me lors du reload (je n&rsquo;ai plus le message pr\u00e9cis), mais on comprend que :<\/p>\n<h3>Il manque le template windows-server<\/h3>\n<p>J&rsquo;ai dit le template \u00ab\u00a0windows-server\u00a0\u00bb, pas \u00ab\u00a0windows-servers\u00a0\u00bb qui est un <em>hostgroup<\/em>, j&rsquo;insiste.<br \/>\nEn effet, ce template est fourni dans les packages Debian, mais pas charg\u00e9 par d\u00e9faut. En cherchant un peu, on le trouve ici : <code>\/usr\/share\/doc\/nagios3-common\/examples\/template-object\/templates.cfg.gz<\/code>.<br \/>\nMais si on le <code>gunzip<\/code> et qu&rsquo;on le place dans <code>\/etc\/nagios3\/conf.d<\/code>, il y a doublon de d\u00e9finition de <code>generic-service<\/code> comme le montre encore un reload qui plante. Ca se confirme avec cette commande :<\/p>\n<pre>srvnag:\/etc\/nagios3\/conf.d# egrep \"name[[:space:]]+generic-service\" *\r\ngeneric-service_nagios2.cfg:        name                            generic-service ; The 'name' of this service template\r\ntemplates.cfg:        name                            generic-service   ; The 'name' of this service template<\/pre>\n<p>Deux fichiers d\u00e9finissent \u00ab\u00a0generic-service\u00a0\u00bb. Les emmerdes continuent.<\/p>\n<p>Donc, je reprends le minimum du template g\u00e9n\u00e9rique, dans mon cas, \u00ab\u00a0windows-server\u00a0\u00bb, on verra plus tard si j&rsquo;ai besoin de quelque chose d&rsquo;autre de ce super-template. Je cr\u00e9e donc ce fichier, tout au moins j&rsquo;ajoute ce bout de code quelque part dans ma conf Nagios :<\/p>\n<pre>srvnag:\/etc\/nagios3\/conf.d# cat windows-server_from_templates-gz.cfg\r\ndefine host{ ; oui \u00e7a passe par un \"host\" pour d\u00e9finir ce mod\u00e8le de machine \"windows-server\"\r\n        name                    windows-server  ; The name of this host template\r\n        use                     generic-host    ; Inherit default values from the generic-host template\r\n        check_period            24x7            ; By default, Windows servers are monitored round the clock\r\n        check_interval          5               ; Actively check the server every 5 minutes\r\n        retry_interval          1               ; Schedule host check retries at 1 minute intervals\r\n        max_check_attempts      10              ; Check each server 10 times (max)\r\n        check_command           check-host-alive        ; Default command to check if servers are \"alive\"\r\n        notification_period     24x7            ; Send notification out at any time - day or night\r\n        notification_interval   30              ; Resend notifications every 30 minutes\r\n        notification_options    d,r             ; Only send notifications for specific host states\r\n        contact_groups          admins          ; Notifications get sent to the admins by default\r\n        hostgroups              windows-servers ; Host groups that Windows servers should be a member of\r\n        register                0               ; DONT REGISTER THIS - ITS JUST A TEMPLATE\r\n}<\/pre>\n<p>Bien s\u00fbr, on comprend que ce template d\u00e9pend lui-m\u00eame du template \u00ab\u00a0generic-host\u00a0\u00bb, mais, ce \u00ab\u00a0generic-host\u00a0\u00bb est dans les templates de base de <code>\/etc\/nagios3\/conf.d\/<\/code>. Pas de probl\u00e8me cette fois.<br \/>\nL\u00e0, le restart de Nagios devrait bien se passer \ud83d\ude42 hop, connexion \u00e0 l&rsquo;interface. Moi perso, j&rsquo;y ai vu une tartine de trucs avec des warnings, des \u00ab\u00a0critical\u00a0\u00bb, des machins \u00e0 hurler partout. Surtout des trucs \u00e0 d\u00e9bugger en fait. Ce qu&rsquo;on va faire en expliquant.<\/p>\n<p><em>Attention les remont\u00e9es par mail vont commencer (par d\u00e9faut root@localhost). Faites ce qu&rsquo;il faut pour r\u00e9cup\u00e9rer ces mails.<\/em><\/p>\n<h3>Bug \u00ab\u00a0missing -l parameters\u00a0\u00bb<\/h3>\n<p>Le premier bug relev\u00e9 f\u00fbt donc un r\u00e9sultat de commande \u00ab\u00a0missing -l parameters\u00a0\u00bb dans &#777;l&rsquo;interface web&#777; de Nagios.<br \/>\nPour d\u00e9bugger, il faut en revenir \u00e0 la ligne de commande comme montr\u00e9 bri\u00e8vement plus haut. Si on ex\u00e9cute le vrai binaire <code>\/usr\/lib\/nagios\/plugins\/check_nt<\/code>, \u00e7a marche. Depuis Nagios, \u00e7a ne marche pas. Tiens tiens.<br \/>\nDemandez l&rsquo;aide pour apprendre \u00e0 utiliser ce plug-in en ligne de commande :<\/p>\n<pre>srvnag:\/etc\/nagios-plugins# \/usr\/lib\/nagios\/plugins\/check_nt\r\ncheck_nt: Could not parse arguments\r\nUsage:check_nt -H host -v variable [-p port] [-w warning] [-c critical][-l params] [-d SHOWALL] [-t timeout]<\/pre>\n<p>Vous pouvez faire un <code>\/usr\/lib\/nagios\/plugins\/check_nt --help<\/code> pour une doc plus compl\u00e8te.<br \/>\nSi vous jouez avec l&rsquo;outil en ligne de commande, \u00e7a marche pourtant, exemple :<\/p>\n<pre>srvnag:\/etc\/nagios-plugins# \/usr\/lib\/nagios\/plugins\/check_nt -H mamachine_ou_son_IP -v MEMUSE -p 12489 -w 80 -c 90\r\nMemory usage: total:3945.26 Mb - used: 1287.70 Mb (33%) - free: 2657.56 Mb (67%) | 'Memory usage'=1287.70Mb;3156.21;3550.73;0.00;3945.26<\/pre>\n<p><strong>Il y a deux probl\u00e8mes. D&rsquo;abord Nagios n&rsquo;est pas configur\u00e9 pour tol\u00e9rer l&rsquo;appel \u00e0 des scripts \u00ab\u00a0ext\u00e9rieurs\u00a0\u00bb (raison s\u00e9curitaire). Ensuite, la <em>command<\/em> check_nt est mal d\u00e9finie (gasp !). J&rsquo;en parlais plus haut.<\/strong><\/p>\n<p>Le README.Debian le disait, et dans notre cas on en a besoin, il faut autoriser Nagios a appeler des scripts ext\u00e9rieur. Il faut positionner <code>set check_external_commands=1<\/code> dans <code>\/etc\/nagios3\/nagios.cfg<\/code>. Ensuite, il faut modifier quelque chose dans dpkg pour qu&rsquo;une manip soit retenue apr\u00e8s mise \u00e0 jour\/upgrade de nagios par aptitude :<\/p>\n<pre>srvnag:\/etc\/nagios3# \/etc\/init.d\/nagios3 stop\r\nStopping nagios3 monitoring daemon: nagios3\r\n.\r\nsrvnag:\/etc\/nagios3# dpkg-statoverride --update --add nagios www-data 2710 \/var\/lib\/nagios3\/rw\r\nsrvnag:\/etc\/nagios3# dpkg-statoverride --update --add nagios nagios 751 \/var\/lib\/nagios3\r\nsrvnag:\/etc\/nagios3# \/etc\/init.d\/nagios3 start\r\nStarting nagios3 monitoring daemon: nagios3\/etc\/init.d\/nagios3: line 64: kill: (19130) - No such process.<\/pre>\n<p><em>A noter, j&rsquo;ai vu plusieurs fois un probl\u00e8me de PID non trouv\u00e9, on dirait que le fichier \/var\/run\/nagios3\/nagios3.pid n&rsquo;est pas purg\u00e9 \u00e0 l&rsquo;arr\u00eat de Nagios ; pas grave.<br \/>\n<\/em><br \/>\nEnfin, on modifie la <em>command<\/em> check_nt. Le \u00ab\u00a0missing -l parameters\u00a0\u00bb signifie bien qu&rsquo;on n&rsquo;a pas pass\u00e9 le param\u00e8tre \u00ab\u00a0-l\u00a0\u00bb au binaire check_nt, param\u00e8tre obligatoire pour certains tests. En fait, dans <code>\/etc\/nagios-plugins\/config\/nt.cfg<\/code>, l&rsquo;appel \u00e0 check_nt est d\u00e9fini comme suit :<\/p>\n<pre>        #command_line    \/usr\/lib\/nagios\/plugins\/check_nt -H '$HOSTADDRESS$' -v '$ARG1$'<\/pre>\n<p>Mais souvent, dans les services associ\u00e9s \u00e0 notre <em>hostgroup<\/em> windows-servers, on voit qu&rsquo;un deuxi\u00e8me param\u00e8tre est pass\u00e9. Le fameux \u00ab\u00a0-l\u00a0\u00bb. C&rsquo;est simplement que la d\u00e9finition de la commande (<em>command_line<\/em>) ne s&rsquo;occupe de r\u00e9cup\u00e9rer qu&rsquo;un seul param\u00e8tre&#8230;<br \/>\nJe sugg\u00e8re donc de modifier <code>\/etc\/nagios-plugins\/config\/nt.cfg<\/code> comme suit :<\/p>\n<pre>gw:\/etc\/nagios-plugins\/config# cat nt.cfg\r\n# 'check_nt' command definition\r\ndefine command {\r\n        command_name    check_nt\r\n        #command_line    \/usr\/lib\/nagios\/plugins\/check_nt -H '$HOSTADDRESS$' -v '$ARG1$'\r\n        command_line    \/usr\/lib\/nagios\/plugins\/check_nt -H $HOSTADDRESS$ -p 12489 -v $ARG1$ $ARG2$\r\n}<\/pre>\n<p>Reload de Nagios. Enfin les premiers testent passent !<br \/>\nPour dire vrai, je suis pass\u00e9 par un stade interm\u00e9diaire de \u00ab\u00a0wrong -l argument\u00a0\u00bb. J&rsquo;ai forc\u00e9 l&rsquo;appel du port (-p 12489) dans la <em>command_line<\/em> pour r\u00e9gler le probl\u00e8me. Si vous voulez rendre ce port variable, \u00e0 vous de modifier la d\u00e9finition des services (dans les <em>define service<\/em>) appelant check_nt pour passer un n-i\u00e8me argument.<br \/>\nJ&rsquo;ai aussi fait sauter les apostrophes, \u00e7a me faisait des trucs bizarres.<br \/>\n<em>FIXME : si quelqu&rsquo;un sait comment activer une trace qui permet de savoir comment a \u00e9t\u00e9 appel\u00e9e telle ou telle commande par Nagios, ce serait cool \u00e7a permettrait de d\u00e9bugger plus facilement. J&rsquo;ai tent\u00e9 plusieurs niveaux de d\u00e9buggage, sans succ\u00e8s.<\/em><\/p>\n<h1>Ouf, premiers tests fonctionnels. Vite, d&rsquo;autres !<\/h1>\n<p>Ca marche, c&rsquo;est pas trop t\u00f4t. Quelques suggestions tir\u00e9es de ce qui pr\u00e9c\u00e8de :<\/p>\n<ul>\n<li>Dans <code>\/etc\/nagios-plugins\/conf.d\/<\/code>, il y a plein de noms de commandes \u00e0 lire, pour voir ce qu&rsquo;on va pouvoir rapidement contr\u00f4ler. Exemple : contr\u00f4ler un port https, avec ou sans authentification (plusieurs commandes dispo).<\/li>\n<li>Dans <code>\/usr\/lib\/nagios\/plugins\/<\/code>, il y a le pendant en terme de binaires. C&rsquo;est bien de se familiariser avec ceux qu&rsquo;on compte utiliser pour \u00eatre s\u00fbr de savoir les utiliser en ligne de commande avant de s&rsquo;ajouter des bugs en les d\u00e9finissant mal dans la conf Nagios.<\/li>\n<\/ul>\n<p>Je consid\u00e8re par la suite que vous avez bien assimil\u00e9 ce qu&rsquo;on vient de voir et que vous \u00eates maintenant par\u00e9s pour cr\u00e9er de la configuration Nagios \u00e0 grand coup de grep et de copier-coller d&rsquo;exemples. Je vais pouvoir donner des bouts de codes en vrac, par th\u00e8me.<\/p>\n<p>C&rsquo;est reparti.<br \/>\n<em>C&rsquo;est l\u00e0 o\u00f9 j&rsquo;aurais voulu faire une doc m\u00e9ga-compl\u00e8te, mais c&rsquo;est impossible. J&rsquo;ajouterai donc plus tard des chapitres lorsque j&rsquo;estimerai que tel ou tel sujet n&rsquo;\u00e9tait pas trivial \u00e0 mettre en place ou qu&rsquo;il y a un concept fort que je n&rsquo;ai pas abord\u00e9.<\/em><\/p>\n<h2>Contr\u00f4le DHCP<\/h2>\n<p>Plus exactement, \u00ab\u00a0tester si le serveur DHCP est en mesure d&rsquo;attribuer des IP\u00a0\u00bb (plage pleine ? service KO ?).<br \/>\nJe consid\u00e8re ici mon serveur Nagios comme un simple ordinateur client DHCP sur le r\u00e9seau (ou une partie du r\u00e9seau). En ex\u00e9cutant un script, l&rsquo;outil check_dhcp simulera une demande de bail et v\u00e9rifiera que tout se passe bien.<br \/>\nEn lisant <code>\/etc\/nagios-plugins\/config\/dhcp.cfg<\/code>, vous voyez vite que la <em>command_line<\/em> attend un param\u00e8tre, l&rsquo;adresse du serveur DHCP. Donc, en ajoutant quelque part dans votre <code>\/etc\/nagios3\/conf.d\/quelquechose.cfg<\/code> les lignes suivantes, on met en place le contr\u00f4le DHCP :<\/p>\n<pre>define service {\r\n        use     generic-service\r\n        host_name mon_serveur_dhcp ; ou alors vous raisonnez par hostgroups, au choix\r\n        service_description     Reponse du DHCP\r\n        check_command           check_dhcp\r\n}<\/pre>\n<p>En ayant bien s\u00fbr d\u00e9fini \u00ab\u00a0mon_serveur_dhcp\u00a0\u00bb dans un bloc <code>define host<\/code> quelque part.<br \/>\nNotez qu&rsquo;il y a aussi un check_dhcp_interface, qui d&rsquo;apr\u00e8s <code>\/usr\/lib\/nagios\/plugins\/check_dhcp --help<\/code> permet de sp\u00e9cifier une interface particuli\u00e8re.<\/p>\n<p>Ce contr\u00f4le est un bon exemple car il faut qu&rsquo;il soit lanc\u00e9 avec les droits root &#8211; ou en sudo &#8211; car le principe, je suppose, doit \u00eatre de forger des paquets pour d\u00e9clencher une attribution de bail du serveur DHCP ; et forger des paquets => droit root, un peu comme l&rsquo;outil de scan de port \u00ab\u00a0nmap\u00a0\u00bb dans certains types de scans. Lire <code>\/usr\/share\/doc\/nagios-plugins\/README.Debian<\/code> \u00e0 ce propos. Ca raconte de faire :<\/p>\n<pre>dpkg-statoverride --update --add root nagios 4750 \/usr\/lib\/nagios\/plugins\/check_dhcp<\/pre>\n<p>Sinon, vous aurez un joli <code>Warning: This plugin must be either run as root or setuid root.<\/code> dans l&rsquo;interface Nagios.<br \/>\nDans mon cas, le serveur DHCP est un Windows (ah, j&rsquo;te parle plus). J&rsquo;ai donc aussi install\u00e9 le client NSC++ sur cette machine afin de pouvoir remonter de base tous les autres indicateurs. En effet, j&rsquo;ai d\u00e9clar\u00e9 \u00ab\u00a0mon_serveur_dhcp\u00a0\u00bb dans la cat\u00e9gorie windows-servers, donc il r\u00e9cup\u00e8re de base tous les tests concernant le groupe \u00ab\u00a0windows-servers\u00a0\u00bb, contr\u00f4le des disques, RAM, blablabla.<br \/>\nHop, un test de plus.<\/p>\n<h2>Zoom sur les groupes de machines<\/h2>\n<p>J&rsquo;en parle tout de suite car il y a d\u00e9j\u00e0 des groupes (<em>hostgroups<\/em>) d\u00e9finis dans <code>\/etc\/nagios3\/hostgroups_nagios2.cfg<\/code>. Notamment les machines \u00ab\u00a0pingables\u00a0\u00bb. Je trouve que c&rsquo;est une bonne id\u00e9e d&rsquo;ajouter des groupes type \u00ab\u00a0les serveurs web\u00a0\u00bb ou \u00ab\u00a0les serveurs de mail\u00a0\u00bb. M\u00eame si pour l&rsquo;instant vous n&rsquo;avez pas encore d\u00e9fini de service (<em>define service<\/em>) pour ces groupes, \u00e7a permet de s&rsquo;organiser et de pr\u00e9voir la distribution automatique de plein de tests \u00e0 mesure qu&rsquo;on d\u00e9clare nos <em>host<\/em> et qu&rsquo;on les affecte \u00e0 ces groupes (<em>hostgroup<\/em>), et non pas aux machines.<\/p>\n<p><em>Au passage, avec un bon <code>dpkg -S base\/debian.png<\/code> et un grep qui va bien, vous allez vite localiser le bout de configuration qui permet d&rsquo;affecter des icones aux types de serveurs, pour faire joli dans l&rsquo;interface.<\/em><\/p>\n<h2>Droits d&rsquo;utilisateurs, contacts<\/h2>\n<p>Pour cr\u00e9er un utilisateur en lecture (votre patron par exemple, il faut le limiter, pour pas qu&rsquo;il fasse n&rsquo;importe quoi depuis l&rsquo;interface), le mieux est de lire <a href=\"http:\/\/nagios.sourceforge.net\/docs\/3_0\/cgiauth.html\">http:\/\/nagios.sourceforge.net\/docs\/3_0\/cgiauth.html<\/a>. Attention, c&rsquo;est fourbe car le menu de replanification &#8211; par exemple &#8211; de test de service est disponible pour tous les utilisateurs, mais c&rsquo;est apr\u00e8s validation de l&rsquo;action qu&rsquo;on voit que la personne n&rsquo;a bien <strong>pas<\/strong> le droit de lancer une planification de tests.<\/p>\n<p>Dans le cas d&rsquo;une installation \u00e9norme de serveurs, il est possible d&rsquo;affecter des contacts \u00e0 tel ou tel serveur. Vous pouvez aussi donner les droits de supervision \u00e0 une personne sur un certain ensemble de contr\u00f4les uniquement, ce genre de trucs.<br \/>\nCar la liste peut \u00eatre longue une fois d\u00e9clar\u00e9s une 20aine de serveurs tri\u00e9s en X cat\u00e9gories&#8230;<\/p>\n<h2>Vue par service<\/h2>\n<p>Dans l&rsquo;interface web de Nagios, vous avez s\u00fbrement trouv\u00e9 le menu qui permet d&rsquo;avoir un aper\u00e7u par <em>hostgroup<\/em>. On peut aussi cr\u00e9er une vue par service. Exemple, j&rsquo;ai mis plein de contr\u00f4les de \u00ab\u00a0services publics\u00a0\u00bb, \u00e0 savoir la r\u00e9ponse d&rsquo;un FTP distant, la pr\u00e9sence d&rsquo;un serveur web distant, la r\u00e9ponse sp\u00e9cifique (recherche d&rsquo;un mot dans un page web re\u00e7ue) etc. J&rsquo;estime que tout \u00e7a repr\u00e9sente un ensemble, mes \u00ab\u00a0services publics dont j&rsquo;aimerais \u00eatre s\u00fbr qu&rsquo;ils sont bien online \u00e0 tout moment sinon on perd nos clients\u00a0\u00bb.<br \/>\nJe vais donc d\u00e9finir un \u00ab\u00a0groupe de service\u00a0\u00bb (<em>servicegroup<\/em>) rassemblant des couples (machine , service).<\/p>\n<p>Plus pr\u00e9cisemment, il s&rsquo;agit de lister des couples (<em>host_name<\/em> d&rsquo;un <em>host<\/em> , <em>service_description<\/em> d&rsquo;un <em>service<\/em>).<br \/>\nPetit exemple :<\/p>\n<pre>define servicegroup {\r\n        servicegroup_name       public-services\r\n        alias                   Services Internet\r\n        members                 srvweb,Check URL non signee,ftpext,Check FTP ; les fameux couples host\/service\r\n}<\/pre>\n<p>Je suppose ici que les <em>define host<\/em> \u00ab\u00a0srvweb\u00a0\u00bb et \u00ab\u00a0ftpext\u00a0\u00bb sont d\u00e9finis, ainsi que les <em>define service<\/em> \u00ab\u00a0Check FTP\u00a0\u00bb et \u00ab\u00a0Check URL non signee\u00a0\u00bb ; ces exemples seront donn\u00e9s plus bas dans cette doc.<br \/>\nPour les services, il s&rsquo;agit bien de leur description longue, pas de leur nom.<br \/>\nAinsi, dans le menu \u00ab\u00a0servicegroup overview\u00a0\u00bb, vous verrez un groupe \u00ab\u00a0Services Internet\u00a0\u00bb vous donnant d&rsquo;un coup d&rsquo;oeil l&rsquo;\u00e9tat de tous vos services publics\/web.<\/p>\n<h2>Contr\u00f4le de services Windows<\/h2>\n<p>Exemple pour un serveur Exchange ou pour une base Oracle, je veux \u00eatre s\u00fbr que tous les services associ\u00e9s sont en cours d&rsquo;ex\u00e9cution.<br \/>\nBon cette fois, je passe sur les groupes de machines Oracle qu&rsquo;on pourrait cr\u00e9er. L\u00e0 le but est d&rsquo;appr\u00e9hender le contr\u00f4le de services Windows via NSClient++.<\/p>\n<h3>Exemple avec Exchange<\/h3>\n<p>Si je vous sugg\u00e8re de tester la commande suivante, vous allez vite comprendre :<\/p>\n<pre>srvnagw:\/usr\/lib\/nagios\/plugins# .\/check_nt -H mon_serveur_exchange -p 12489 -v SERVICESTATE -d SHOWALL -l MSExchangeIS,MSExchangeMTA,SMTPSVC,RESvc,W3SVC<\/pre>\n<p><strong>La liste des noms technique des services s&rsquo;obtient en double-cliquant sur le nom d&rsquo;un service Windows, dans ses propri\u00e9t\u00e9s<\/strong>.<br \/>\nReste \u00e0 d\u00e9finir le service et la commande qui va bien et \u00e0 l&rsquo;affecter \u00e0 votre serveur ou votre groupe de serveurs Exchange.<br \/>\nVoir plus bas mes exemples si vous \u00eates paum\u00e9s.<\/p>\n<p>Ce qui est bien avec cet agent NSClient++, c&rsquo;est que \u00e7a marche pour n&rsquo;importe quel service. Ci-dessous, on d\u00e9couvre que \u00e7a marche aussi pour perfmon :).<\/p>\n<h3>Exemple avec l&rsquo;anti-virus Sophos, remarque sur la syntaxe<\/h3>\n<p>Attention, certains services ont des espaces dans leur nom.<\/p>\n<ul>\n<li>Pour les nommer\/utiliser en ligne de commande, il faut un backslash \\<\/li>\n<li>Pour les nommer\/utiliser depuis Nagios, il faut 2 backslash \\<\/li>\n<\/ul>\n<p>Exemple :<\/p>\n<pre>define service {\r\n        use generic-service\r\n        hostgroup_name          sophos-servers\r\n        service_description     Svc SOPHOS server\r\n        check_command           check_nt!SERVICESTATE!-d SHOWALL -l Sophos\\\\ Agent,Sophos\\\\ Certification\\\\ Manager,Sophos\\\\ EMLibUpdate\\\\ Agent,Sophos\\\\ Enterprise\\\\ Manager\\\\ Scheduler,Sophos\\\\ Management\\\\ Service,Sophos\\\\ Message\\\\ Router\r\n}\r\n<\/pre>\n<p>Pour tester ce check_nt en ligne de commande, un seul \\ suffirait.<\/p>\n<h3>Exemple de surveillance des services Oracle<\/h3>\n<p>Ben c&rsquo;est la m\u00eame chose, un gros <code>check_nt!SERVICESTATE!-d SHOWALL -l blabla<\/code> o\u00f9 \u00ab\u00a0blabla\u00a0\u00bb est la liste de noms de noms instances Oracle, du listener etc.<\/p>\n<h2>Contr\u00f4le de perfmon<\/h2>\n<p>Dans la lign\u00e9e de ce qui pr\u00e9c\u00e8de, si vous voulez surveiller des indicateurs perfmon de serveurs Windows, c&rsquo;est jouable.<br \/>\nNotez que perfmon permettant de surveiller \u00e0 peu pr\u00e8s n&rsquo;importe quoi sur Windows (charge r\u00e9seau par exemple), ce test peut \u00eatre une variante d&rsquo;un test de charge via SNMP ; en ce qui concerne la charge r\u00e9seau. Pour d&rsquo;autres indicateurs de perfmon, il n&rsquo;y a que NSClient++ je suppose, ou un script d\u00e9di\u00e9.<br \/>\nNotamment, vous pouvez contr\u00f4ler la taille des files d&rsquo;attente du serveur Exchange monitor\u00e9 pr\u00e9c\u00e9demment.<br \/>\nJe ne m&rsquo;\u00e9tends pas, mais il faut appeler check_nt avec \u00ab\u00a0-v COUNTER\u00a0\u00bb et le nom des indicateurs que l&rsquo;on veut suivre.<\/p>\n<h2>Contr\u00f4le de switchs<\/h2>\n<p>Les informations sont d\u00e9crites l\u00e0 : <a href=\"http:\/\/nagios.sourceforge.net\/docs\/3_0\/monitoring-routers.html\">http:\/\/nagios.sourceforge.net\/docs\/3_0\/monitoring-routers.html<\/a>.<br \/>\nIl faut \u00eatre un peu habitu\u00e9 \u00e0 SNMP, ou alors c&rsquo;est l&rsquo;occasion de s&rsquo;y mettre. Il faut savoir activer le SNMP sur un switch et conna\u00eetre quelques OIDs.<br \/>\nCeci dit attention, vous pourrez tester l&rsquo;\u00e9tat de certains ports, l&rsquo;uptime d&rsquo;un switch. Mais pour contr\u00f4ler la bande passante du trafic d&rsquo;un port, il n&rsquo;y a pas d&rsquo;OID. Il faudra \u00e9crire votre script vous-m\u00eame ou alors, interfacer avec Cacti qui lui stocke l&rsquo;historique des informations de compteurs de trafic, permettant ainsi de calculer des vitesses moyennes. Je suis dessus l\u00e0, donc j&rsquo;en parlerai s\u00fbrement de ce ces 4.<br \/>\nLe principe est le suivant :<\/p>\n<ul>\n<li>Il faut activer le \u00ab\u00a0requ\u00eatage\u00a0\u00bb SNMP sur le routeur en question, d\u00e9finir une \u00ab\u00a0communaut\u00e9\u00a0\u00bb (si autre que \u00ab\u00a0public\u00a0\u00bb), un \u00e9ventuel mot de passe (si SNMP v3)<\/li>\n<li>S&rsquo;inspirer ensuite du mod\u00e8le de conf g\u00e9n\u00e9rique des switchs dispo ici : <code>\/usr\/share\/doc\/nagios3-common\/examples\/template-object\/switch.cfg<\/code><\/li>\n<li>Reprendre le template generic-switch (et uniquement lui) de <code>\/usr\/share\/doc\/nagios3-common\/examples\/template-object\/templates.cfg.gz<\/code><\/li>\n<li>Lire <a href=\"http:\/\/fr.wikipedia.org\/wiki\/Snmp\">http:\/\/fr.wikipedia.org\/wiki\/Snmp<\/a><\/li>\n<li>Lire <a href=\"http:\/\/doc.ubuntu-fr.org\/snmp\">http:\/\/doc.ubuntu-fr.org\/snmp<\/a> pour comprendre rapidement les MIB<\/li>\n<li>Tester en ligne de commande pure d&rsquo;abord, avec check_snmp<\/li>\n<\/ul>\n<p>Pour activer le SNMP sur un 3com type 4400, l&rsquo;attaquer en telnet (menu system management snmp community) car ce n&rsquo;est pas accessible en interface web. Pour un netgear, c&rsquo;est g\u00e9rable par l&rsquo;interface web du switch (ou alors \u00e7a d\u00e9pend de la version du firmware, j&rsquo;ai d\u00e9j\u00e0 vu \u00e7a aussi). On peut limiter \u00e0 une interface IP, par exemple le serveur Nagios ex\u00e9cutant la requ\u00eate.<\/p>\n<h2>Appel \u00e0 un script tiers, sous Windows : contr\u00f4le des patchs en attente<\/h2>\n<p>Truc tr\u00e8s pratique, au lieu d&rsquo;aller voir dans WSUS-qui-rame-et-qui-est-\u00e0-moiti\u00e9-pratique.<br \/>\nOn va utiliser <a href=\"http:\/\/nagios.sourceforge.net\/docs\/nrpe\/NRPE.pdf\">NRPE<\/a>, un agent qui tournera localement sur la machine distante et qui permettra d&rsquo;ex\u00e9cuter des scripts. Ca tombe bien NSClient++ peut assurer ce r\u00f4le, du moment qu&rsquo;on a d\u00e9commenter <code>NRPEListener.dll<\/code>, voir plus haut dans la doc.<br \/>\nNagios appellera donc NRPE qui appellera un script (ici un .wsf). Au niveau des alertes NAgios, on obtiendra des \u00ab\u00a0warnings\u00a0\u00bb et \u00ab\u00a0critical\u00a0\u00bb suivant la nature des patchs.<br \/>\nJ&rsquo;utilise le script suivant (ou celui l\u00e0, je ne sais plus, essayez les deux).<br \/>\nPlacez les par exemple sur C:\\ du serveur \u00e0 monitorer.<\/p>\n<h3>Conf NRPE pour patchs Windows<\/h3>\n<p>Dans la section <code>[NRPE]<\/code> du fichier NSC.ini d&rsquo;un serveur \u00e0 monitorer, j&rsquo;ai d\u00fb param\u00e9trer les choses suivantes :<\/p>\n<pre>;# COMMAND ARGUMENT PROCESSING\r\n;  This option determines whether or not the NRPE daemon will allow clients to specify arguments to commands that are executed.\r\nallow_arguments=1\r\n\r\n;  This option determines whether or not the NRPE daemon will allow clients to specify nasty (as in |`&><'\"\\[]{}) characters in arguments.\r\nallow_nasty_meta_chars=1\r\n\r\nallowed_hosts=192.mon.nag.ios<\/pre>\n<p>Et dans la section <code>[NRPE Handlers]<\/code>, comprenez \"les commandes autoris\u00e9es via NRPE\", j'ai simplement cr\u00e9\u00e9 une commande appel\u00e9e (au niveau de NSClient\/NRPE) \"windows_updates\" :<\/p>\n<pre>command[windows_updates]=c:\\\\windows\\\\system32\\\\cscript.exe \/\/NoLogo \/\/T:120 c:\\\\check_windows_updates.wsf \/w:0 \/c:1\r\n;# RESTE du blabla pour que vous situiez l'endroit\r\n;# COMMAND DEFINITIONS\r\n;# Command definitions that this daemon will run.\r\n;# Can be either NRPE syntax:\r\n;command[check_users]=\/usr\/local\/nagios\/libexec\/check_users -w 5 -c 10\r\n<\/pre>\n<p>Attention aux doubles backslashs\/slashs etc.<br \/>\nRechargez le service NSClient++.<br \/>\nJe suppose que le port par d\u00e9faut (5666) est accessible depuis NAgios vers votre serveur.<\/p>\n<h3>Conf Nagios pour patchs Windows<\/h3>\n<p>Si tous vos serveurs Windows sont \u00e9quip\u00e9s du script et que la conf NRPE dans NSClient++ est bonne pour chacun, vous pouvez ajouter quelque part dans \/etc\/nagios3\/conf.d\/ ce bout de code :<\/p>\n<pre>define service{\r\n        hostgroup_name          windows-servers\r\n        use                     generic-service\r\n        service_description     Windows Update\r\n        check_command           check_nrpe_1arg!windows_updates\r\n}<\/pre>\n<p>Si vous n'avez qu'une machine (pour tester), pensez \u00e0 utiliser <code>host_name toto<\/code> au lieu de <code>hostgroup_name<\/code>.<\/p>\n<p>Ensuite, on va d\u00e9finir un test Nagios qui appelle la commande \"windows_updates\" via NRPE. Le nom windows_updates est bien celui reprit dans la conf NSC.ini, section [NRPE Handlers].<br \/>\nApr\u00e8s quelques tests, j'ai d\u00fb recr\u00e9er mon propre passage d'argument \u00e0 check_nrpe, script qui d'ailleurs vient normalement avec les plugins de Nagios. Voyez :<\/p>\n<pre>monnagios:\/etc\/nagios-plugins\/config# cat check_nrpe.cfg\r\n# this command runs a program $ARG1$ with arguments $ARG2$\r\ndefine command {\r\n        command_name    check_nrpe\r\n        command_line    \/usr\/lib\/nagios\/plugins\/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -a $ARG2$\r\n}\r\n\r\n# this command runs a program $ARG1$ with no arguments\r\ndefine command {\r\n        command_name    check_nrpe_1arg\r\n#JACQUES\r\n        command_line    \/usr\/lib\/nagios\/plugins\/check_nrpe -H $HOSTADDRESS$ -c $ARG1$ -t 60\r\n        #command_line   \/usr\/lib\/nagios\/plugins\/check_nrpe -H $HOSTADDRESS$ -c $ARG1$\r\n}<\/pre>\n<p>Notamment en ajoutant un timeout (-t) plus long et en supprimant le 2\u00e8 argument.<br \/>\nComme d'habitude, pour inventer cela, il faut jouer avec la commande <code>\/usr\/lib\/nagios\/plugins\/check_nrpe<\/code> directement. Et commencer par jouer localement avec le script .wsf (sur la machine Windows, donc), histoire de v\u00e9rifier que tout va bien et de d\u00e9bugger pas \u00e0 pas votre bazar (script mal plac\u00e9, NRPE mal configur\u00e9, Nagios mal param\u00e9tr\u00e9 pour ce test etc).<\/p>\n<p>Voil\u00e0, normalement ce test fonctionne aussi.<\/p>\n<h1>Trucs en vrac<\/h1>\n<p>Par manque de temps et impossibilit\u00e9 de faire un guide \"complet\", je note 2\/3 id\u00e9es en vrac :<\/p>\n<p>Attention apr\u00e8s un <code>\/etc\/init.d\/nagios3 reload<\/code> : temps de latence (tests en pending) et lorsqu'un test \u00e9choue, il est replanifi\u00e9 pour X minutes plus tard. On peut forcer sa r\u00e9ex\u00e9cution, mais il faut y aller mollo et ne pas \u00eatre trop impatient.<\/p>\n<p>Il reste tant \u00e0 dire : la d\u00e9pendance entre services, la carte des machines, les pr\u00e9visions de <em>downtime<\/em> de machines (pour \u00e9viter les mails et alertes inutiles), la fr\u00e9quence des tests.<br \/>\nMais l\u00e0, maintenant que vous avez la base, vous allez pouvoir facilement lire n'importe quelle doc (je veux dire, m\u00eame celles o\u00f9 tr\u00e8s peu de choses sont expliqu\u00e9es) pour peaufiner votre installation. J'esp\u00e8re.<\/p>\n<p>A+<\/p>\n<p>(enfin c'est publi\u00e9, youhou.... ; j'esp\u00e8re que le tout reste coh\u00e9rent et utile vu que \u00e7a a \u00e9t\u00e9 \u00e9crit en plein de fois et \u00e0 diff\u00e9rents moments de mon apprentissage Nagios)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction Gros guide de mise en place de Nagios sur Debian, avec comme principal objectif de vous amener petit \u00e0 petit \u00e0 monitorer tout ce qu&rsquo;on peut imaginer sur un parc de serveurs Linux, Windows, &hellip;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_crdt_document":"","_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[2,82,389,384],"tags":[329,328,326,325,383,354,327],"class_list":["post-360","post","type-post","status-publish","format-standard","hentry","category-debian","category-pl","category-reseau-secu","category-supervision","tag-check_http","tag-check_ldap","tag-check_nt","tag-nagios","tag-nrpe","tag-nsclient","tag-snmp"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Mise en place de Nagios : en partant de rien - Le blog de Michauko<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Mise en place de Nagios : en partant de rien - Le blog de Michauko\" \/>\n<meta property=\"og:description\" content=\"Introduction Gros guide de mise en place de Nagios sur Debian, avec comme principal objectif de vous amener petit \u00e0 petit \u00e0 monitorer tout ce qu&rsquo;on peut imaginer sur un parc de serveurs Linux, Windows, &hellip;\" \/>\n<meta property=\"og:url\" content=\"https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/\" \/>\n<meta property=\"og:site_name\" content=\"Le blog de Michauko\" \/>\n<meta property=\"article:published_time\" content=\"2009-10-07T09:31:45+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2015-11-21T09:06:52+00:00\" \/>\n<meta name=\"author\" content=\"michauko\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"michauko\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"33 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/mise-en-place-de-nagios-360\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/mise-en-place-de-nagios-360\\\/\"},\"author\":{\"name\":\"michauko\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#\\\/schema\\\/person\\\/0cd9f3d9ce4dccc05df81a5b27051ea9\"},\"headline\":\"Mise en place de Nagios : en partant de rien\",\"datePublished\":\"2009-10-07T09:31:45+00:00\",\"dateModified\":\"2015-11-21T09:06:52+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/mise-en-place-de-nagios-360\\\/\"},\"wordCount\":5777,\"commentCount\":7,\"keywords\":[\"check_http\",\"check_ldap\",\"check_nt\",\"nagios\",\"NRPE\",\"NSClient++\",\"snmp\"],\"articleSection\":[\"Debian\",\"planet-libre.org\",\"reseau et s\u00e9cu\",\"supervision\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/michauko.org\\\/blog\\\/mise-en-place-de-nagios-360\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/mise-en-place-de-nagios-360\\\/\",\"url\":\"https:\\\/\\\/michauko.org\\\/blog\\\/mise-en-place-de-nagios-360\\\/\",\"name\":\"Mise en place de Nagios : en partant de rien - Le blog de Michauko\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#website\"},\"datePublished\":\"2009-10-07T09:31:45+00:00\",\"dateModified\":\"2015-11-21T09:06:52+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#\\\/schema\\\/person\\\/0cd9f3d9ce4dccc05df81a5b27051ea9\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/mise-en-place-de-nagios-360\\\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/michauko.org\\\/blog\\\/mise-en-place-de-nagios-360\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/mise-en-place-de-nagios-360\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\\\/\\\/michauko.org\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Mise en place de Nagios : en partant de rien\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/michauko.org\\\/blog\\\/\",\"name\":\"Le blog de Michauko\",\"description\":\"Si tu ne comprends pas le titre de l&#039;article, passe ton chemin\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/michauko.org\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/michauko.org\\\/blog\\\/#\\\/schema\\\/person\\\/0cd9f3d9ce4dccc05df81a5b27051ea9\",\"name\":\"michauko\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g\",\"caption\":\"michauko\"},\"sameAs\":[\"http:\\\/\\\/michauko.org\\\/\"],\"url\":\"https:\\\/\\\/michauko.org\\\/blog\\\/author\\\/randomized2\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Mise en place de Nagios : en partant de rien - Le blog de Michauko","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/","og_locale":"fr_FR","og_type":"article","og_title":"Mise en place de Nagios : en partant de rien - Le blog de Michauko","og_description":"Introduction Gros guide de mise en place de Nagios sur Debian, avec comme principal objectif de vous amener petit \u00e0 petit \u00e0 monitorer tout ce qu&rsquo;on peut imaginer sur un parc de serveurs Linux, Windows, &hellip;","og_url":"https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/","og_site_name":"Le blog de Michauko","article_published_time":"2009-10-07T09:31:45+00:00","article_modified_time":"2015-11-21T09:06:52+00:00","author":"michauko","twitter_card":"summary_large_image","twitter_misc":{"\u00c9crit par":"michauko","Dur\u00e9e de lecture estim\u00e9e":"33 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/#article","isPartOf":{"@id":"https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/"},"author":{"name":"michauko","@id":"https:\/\/michauko.org\/blog\/#\/schema\/person\/0cd9f3d9ce4dccc05df81a5b27051ea9"},"headline":"Mise en place de Nagios : en partant de rien","datePublished":"2009-10-07T09:31:45+00:00","dateModified":"2015-11-21T09:06:52+00:00","mainEntityOfPage":{"@id":"https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/"},"wordCount":5777,"commentCount":7,"keywords":["check_http","check_ldap","check_nt","nagios","NRPE","NSClient++","snmp"],"articleSection":["Debian","planet-libre.org","reseau et s\u00e9cu","supervision"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/","url":"https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/","name":"Mise en place de Nagios : en partant de rien - Le blog de Michauko","isPartOf":{"@id":"https:\/\/michauko.org\/blog\/#website"},"datePublished":"2009-10-07T09:31:45+00:00","dateModified":"2015-11-21T09:06:52+00:00","author":{"@id":"https:\/\/michauko.org\/blog\/#\/schema\/person\/0cd9f3d9ce4dccc05df81a5b27051ea9"},"breadcrumb":{"@id":"https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/michauko.org\/blog\/mise-en-place-de-nagios-360\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/michauko.org\/blog\/"},{"@type":"ListItem","position":2,"name":"Mise en place de Nagios : en partant de rien"}]},{"@type":"WebSite","@id":"https:\/\/michauko.org\/blog\/#website","url":"https:\/\/michauko.org\/blog\/","name":"Le blog de Michauko","description":"Si tu ne comprends pas le titre de l&#039;article, passe ton chemin","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/michauko.org\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Person","@id":"https:\/\/michauko.org\/blog\/#\/schema\/person\/0cd9f3d9ce4dccc05df81a5b27051ea9","name":"michauko","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/secure.gravatar.com\/avatar\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/5c3a8969c185fd0eef3893a15408f3ef1b36a6681a066b1eb32045643c30ba65?s=96&d=mm&r=g","caption":"michauko"},"sameAs":["http:\/\/michauko.org\/"],"url":"https:\/\/michauko.org\/blog\/author\/randomized2\/"}]}},"_links":{"self":[{"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/posts\/360","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/comments?post=360"}],"version-history":[{"count":64,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/posts\/360\/revisions"}],"predecessor-version":[{"id":1710,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/posts\/360\/revisions\/1710"}],"wp:attachment":[{"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/media?parent=360"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/categories?post=360"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/michauko.org\/blog\/wp-json\/wp\/v2\/tags?post=360"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}