<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Shinken on Zwindler's Reflection</title><link>https://blog.zwindler.fr/tags/shinken/</link><description>Recent content in Shinken on Zwindler's Reflection</description><generator>Hugo -- gohugo.io</generator><language>fr</language><copyright>Licensed under CC BY-SA 4.0</copyright><lastBuildDate>Tue, 08 Jan 2019 12:45:34 +0000</lastBuildDate><atom:link href="https://blog.zwindler.fr/tags/shinken/index.xml" rel="self" type="application/rss+xml"/><item><title>Superviser des appliances HPE StoreVirtual VSA (LeftHand) avec Nagios/Centron/Shinken</title><link>https://blog.zwindler.fr/2019/01/08/superviser-des-appliances-hp-storevirtual-vsa-lefthand-os-avec-nagios-centron-shinken/</link><pubDate>Tue, 08 Jan 2019 12:45:34 +0000</pubDate><guid>https://blog.zwindler.fr/2019/01/08/superviser-des-appliances-hp-storevirtual-vsa-lefthand-os-avec-nagios-centron-shinken/</guid><description>&lt;img src="https://blog.zwindler.fr/2017/02/hp_vsa-1.webp" alt="Featured image of post Superviser des appliances HPE StoreVirtual VSA (LeftHand) avec Nagios/Centron/Shinken" /&gt;&lt;h2 id="superviser-des-lefthand-"&gt;Superviser des Lefthand ?
&lt;/h2&gt;&lt;p&gt;Dans une vie antérieure (article dans mes tiroirs depuis fin 2015 a priori XD), j’ai eu à gérer, &lt;em&gt;on premise&lt;/em&gt;, du stockage hautement disponible HPE VSA pour mes clusters VMware.&lt;/p&gt;
&lt;p&gt;Si vous êtes ici, c’est sûrement parce que vous aussi, vous avez acheté des LeftHand (StoreVirtual P4000) et/ou des HPE VSA, et que vous voulez les superviser.&lt;/p&gt;
&lt;p&gt;La plupart des tâches d’administration se font depuis la CMC (Centralized Management Console), mais clairement ce n’est pas hyper pratique. La section 7 du manuel StoreVirtual traite de la supervision en général : h20628.www2.hp.com/km-ext/kmcsdirect/emr_na-c04581885-1.pdf (lien mort, pas sauvegardé par Internet Archive).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2017/02/hpvsa_ftp.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Heureusement, la documentation explicite clairement qu’il est possible d’activer SNMP pour externaliser tout ça.&lt;/p&gt;
&lt;p&gt;A noter, je n’ai pas pu m&amp;rsquo;empêcher de glousser en lisant cette petit phrase dans un manuel d’administration un peu plus ancien, qui dit que vous ne pouvez pas changer, ni même supprimer (#Sécurité), les communautés par défaut :&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2018/12/sanmon.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Section 7 du manuel d’administration &lt;a class="link" href="http://www.hp.com/ctg/Manual/c01865545.pdf" target="_blank" rel="noopener"
&gt;http://www.hp.com/ctg/Manual/c01865545.pdf&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="nagios--centreon--shinken"&gt;Nagios / Centreon / Shinken
&lt;/h2&gt;&lt;p&gt;Pour superviser mes machines dans mes DC « on-premise », j’utilisais Centreon. Tout naturellement je me suis tourné vers Nagios Exchange pour voir s’il n’y avait pas déjà des gens qui avaient fait le travail.&lt;/p&gt;
&lt;p&gt;2 plugins ont attirés mon attention :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://exchange.nagios.org/directory/Plugins/Hardware/Storage-Systems/SAN-and-NAS/check_lefthand-2Epl/details" target="_blank" rel="noopener"
&gt;exchange.nagios.org/directory/Plugins/Hardware/Storage-Systems/SAN-and-NAS/check_lefthand-2Epl/details&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://exchange.nagios.org/directory/Plugins/Hardware/Storage-Systems/SAN-and-NAS/check_lhc/details" target="_blank" rel="noopener"
&gt;exchange.nagios.org/directory/Plugins/Hardware/Storage-Systems/SAN-and-NAS/check_lhc/details&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="prérequis"&gt;Prérequis
&lt;/h2&gt;&lt;p&gt;Le plus récent et le plus téléchargé, &lt;strong&gt;check_lhc&lt;/strong&gt;, nécessite le téléchargement de MIB. Je les avaient trouvé sur &lt;strong&gt;circitor&lt;/strong&gt; (ex. &lt;a class="link" href="http://www.circitor.fr/Mibs/Html/L/LEFTHAND-NETWORKS-NUS-COMMON-CLUSTERING-MIB.php" target="_blank" rel="noopener"
&gt;www.circitor.fr/Mibs/Html/L/LEFTHAND-NETWORKS-NUS-COMMON-CLUSTERING-MIB.php&lt;/a&gt;), puis de les déposer dans votre serveur Nagios/Centreon/Shinken&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/usr/share/snmp/mibs/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;J’avais également trouvé des ressources sur le site d’HPE, mais comme ils passent leur temps à le refaire les 3 liens que j’avais sauvegardés sont maintenant HS. Voilà voilà.&lt;/p&gt;
&lt;p&gt;En gros, ce que ça disait, c’est que les MIB sont contenues dans l’installeur, celui qui est utilisé pour instancier les VSA la première fois.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/01_storevirtual.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/02_storevirtual.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Fallait le savoir&amp;hellip;&lt;/p&gt;
&lt;h2 id="configurer-snmp"&gt;Configurer SNMP
&lt;/h2&gt;&lt;p&gt;Comme les deux plugins utilisent SNMP, on va&amp;hellip; l’activer. &lt;strong&gt;#ThanksCaptainObvious&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Depuis la CMC, on peut donc configurer nos StoreVirtual pour qu’elles acceptent des connexions SNMP et configurer une communauté (voir &lt;a class="link" href="http://h20628.www2.hp.com/km-ext/kmcsdirect/emr_na-c04581885-1.pdf" target="_blank" rel="noopener"
&gt;le manuel d’admin, page 93&lt;/a&gt;). Clairement, ce n’est pas sorcier.&lt;/p&gt;
&lt;p&gt;Dans le &lt;strong&gt;Management Group&lt;/strong&gt;, on a un menu &lt;strong&gt;Event&lt;/strong&gt;, dans lequel on peut configurer un serveur SMTP (pratique pour recevoir les mails qui m’informe que mon cluster est à plat et que mes données sont définitivement corrompues et que je peux aller pointer à &lt;em&gt;Paul Emploi&lt;/em&gt;).&lt;/p&gt;
&lt;p&gt;Et, &lt;strong&gt;SNMP&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/11/03_storevirtual.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;h2 id="checker"&gt;Checker
&lt;/h2&gt;&lt;p&gt;Maintenant que vous avez activé SNMP (avec une communauté bien complexe, readonly et des restrictions IP à vos seuls serveurs de supervision, on est d’accord), on peut voir si ça marche.&lt;/p&gt;
&lt;p&gt;Personnellement j’ai préféré &lt;strong&gt;check_lefthand&lt;/strong&gt;, car la doc est plus fournie et les options plus nombreuses .&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;./check_lefthand.pl -H 10.10.10.16 -C hyperdifficultcommunity
Cowardly exiting, not instructed to check anything!
check_lefthand.pl -H -C [-t timeout] [-p port]
Additional Options:
--module-space
report the available space on each &amp;#39;module&amp;#39; within a management group
--module-status
report on the various status elements for each &amp;#39;module&amp;#39; within a management group
--volume-space
report the available space on each volume within a management group
--volume-status
report on the various status elements for each volume within a management group
--cluster-space
report the available space for each cluster within a management group
--cluster-status
report the status of each cluster within a management group
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Les deux alertes que j’ai mises en place sont l’état du clusters, et le status de mes volumes (synchronisés ou pas entre les 2 salles).&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;centreon$ ./check_lefthand.pl -H 10.10.10.16 -C hyperdifficultcommunity --cluster-status
OK - mgmt group: MyAwesomeHPVSA 5/5 Cluster Managers Active.
centreon$ ./check_lefthand.pl -H 10.10.10.16 -C public --volume-status
OK - mgmt group: MyAwesomeHPVSA 4 Volumes with valid replication and Data Protection.
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A noter, tout n’est pas parfait. Dans certains cas, j’ai remarqué que l’alerte ne se déclenchait pas quand des nœuds étaient DOWN, car le compteur « total » de nœuds décrémentait en même temps que les nœuds tombaient (ce qui est très bête&amp;hellip;).&lt;/p&gt;
&lt;p&gt;Mais c’est quand même un début :)&lt;/p&gt;
&lt;h2 id="bonus--rage"&gt;Bonus : Rage
&lt;/h2&gt;&lt;p&gt;Ouais, je sais&amp;hellip;HPE VSA (maintenant HPe StoreVirtual VSA), quoi. L’alternative « géniale » de HPE à VSAN.&lt;/p&gt;
&lt;p&gt;Ne me blâmez pas&amp;hellip; A l’époque, on m’avait donné le choix entre 2 appliances physiques NetApps &lt;strong&gt;plus chères&lt;/strong&gt; et &lt;strong&gt;même pas hautement disponibles&lt;/strong&gt; (actif/passif) et donc les fameuses HPE VSA Storevirtual. Et puis sur le papier, ça paraissait robuste. C’est basé sur un produit éprouvé, les Lefthands (appliances physiques) et un OS Linux.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;What could go wrong?&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Maintenant que je ne m’en occupe plus, je peux dire que c’est grâce à ce superbe outil que j’aurai fais un week end non-stop quasiment sans dormir au téléphone avec des techs HPE et VMware de tout autour du monde (mais je me suis fait payer plus de 25 heures d’astreinte &lt;strong&gt;#youpi&lt;/strong&gt;) parce que les nœuds tombaient les uns après les autres sans raison apparente.&lt;/p&gt;
&lt;p&gt;Pour les curieux, c’était un problème de hotspare qui se mettait en veille et bloquaient les nodes, les uns après les autres, dès qu’une commande « refresh storage usage » était lancée par l’ESXi (automatique ou manuel).&lt;/p&gt;
&lt;p&gt;C’est aussi mon record personnel &lt;strong&gt;du ticket support le plus longtemps&lt;/strong&gt;, tout constructeur/éditeur confondu. Les chiffres sont impressionnants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;un mois pour trouver un workaround (désactiver les hotspares, #genious)&lt;/li&gt;
&lt;li&gt;plus de 200 emails&lt;/li&gt;
&lt;li&gt;5 mises à jours (dont 4 inutiles)&lt;/li&gt;
&lt;li&gt;3 interventions le soir sur la prod&lt;/li&gt;
&lt;li&gt;Et last but not least : &lt;strong&gt;2 ans&lt;/strong&gt; pour trouver le fix (alors que le problème était détecté puisqu’on savait qu’il suffisait de désactiver les hotspares).&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;em&gt;&lt;b&gt;DEUX&amp;hellip; ANS&amp;hellip;&lt;/b&gt;&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Au final, je ne suis même pas vraiment sûr que le problème soit fixé.&lt;/p&gt;
&lt;p&gt;Je ne suis plus sûr de rien, à part du niveau de compétence de HPE sur le sujet des serveurs et du stockage.&lt;/p&gt;
&lt;p&gt;Mais qui peut les blâmer, ce n’est pas leur cœur de métier après tout. &lt;strong&gt;#ohwait&lt;/strong&gt;&lt;/p&gt;</description></item><item><title>Monitorez le fait que les URLs bloquées sont bien bloquées par le proxy</title><link>https://blog.zwindler.fr/2017/11/18/supervisez-vos-urls-bloquees-proxy/</link><pubDate>Sat, 18 Nov 2017 12:45:25 +0000</pubDate><guid>https://blog.zwindler.fr/2017/11/18/supervisez-vos-urls-bloquees-proxy/</guid><description>&lt;img src="https://blog.zwindler.fr/2017/11/check_proxy_http_url.webp" alt="Featured image of post Monitorez le fait que les URLs bloquées sont bien bloquées par le proxy" /&gt;&lt;h2 id="comment-je-vérifie-que-les-sites-bloqués-par-mon-proxy-sont-bien-bloqués-"&gt;Comment je vérifie que les sites bloqués par mon proxy sont bien bloqués ?
&lt;/h2&gt;&lt;p&gt;Il y a plein de raisons qui peuvent expliquer qu’un site non légitime soit bloqué sur un lieu de travail (par exemple). Et autant de raisons qui font que, parfois, les proxies ne bloquent pas bien des sites que vous aviez pourtant bloqués !&lt;/p&gt;
&lt;p&gt;Pour tout ce qui est supervision des pages web, Nagios fourni le plugin &lt;strong&gt;check_http&lt;/strong&gt;, dans les &lt;em&gt;nagios-plugins&lt;/em&gt; (collection officielle de plugins), et qui permet de vérifier qu’une page web donnée est accessible (ou non).&lt;/p&gt;
&lt;h2 id="limitations"&gt;Limitations
&lt;/h2&gt;&lt;p&gt;Cependant, il existe plusieurs cas où ce plugin ne « fonctionne pas » comme je le souhaite :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;D’abord, dans le cas où l’URL checkée renvoie un 30x (redirection), le check_http considère que c’est bon et ne va pas chercher plus loin. Hors, il arrive que le site soit down au-delà de la redirection. Dans ce cas là, check_http ne nous notifie pas de l’échec.&lt;/li&gt;
&lt;li&gt;Ensuite, dans le cas où vous voulez traverser un proxy pour vérifier si une page est accessible ou non comme dans mon introduction, vous ne pouvez pas spécifier si un code retour 40x est une bonne chose ou non. Dans tous les cas, avec check_http, un 40x sera considéré comme un WARNING, jamais comme un CRITICAL ou un OK.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour résoudre ces problèmes, j’ai donc réécris un petit script bash simple, permettant de résoudre tous les cas ci-dessus. Avec &lt;strong&gt;check_proxy_http_url&lt;/strong&gt;, vous pouvez vérifier des URLs en spécifiant un proxy, suivre correctement les redirections (301 ou 302 par ex.) et spécifier si le fait qu’une page soit accessible (ou pas accessible) est une bonne chose ou non.&lt;/p&gt;
&lt;h2 id="installation"&gt;Installation
&lt;/h2&gt;&lt;p&gt;Le script est simplissime. Pour des raisons de facilité je me suis simplement appuyé sur un script &lt;strong&gt;bash&lt;/strong&gt; et de &lt;strong&gt;wget&lt;/strong&gt;, présents sur la plupart des serveurs par défaut. Il n’y a pas d’autres prérequis.&lt;/p&gt;
&lt;p&gt;Dans un futur (plus ou moins) proche j’ajouterai également une compatibilité avec &lt;strong&gt;cURL&lt;/strong&gt;, qui a tendance à le remplacer.&lt;/p&gt;
&lt;h2 id="usage"&gt;Usage
&lt;/h2&gt;&lt;p&gt;Là encore, j’ai fait au plus simple. Le script dispose d’un nombre limité d’arguments, permettant de réaliser les usecases indiqués précédemment.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;/var/lib/nrpe/plugins/check_proxy_http_url.sh -u TARGET_URL [-p PROXY_ADDRESS:PROXY_PORT] [-r] [-v]
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;TARGET_URL : obligatoire - l’URL que vous souhaitez superviser. Par défaut, un code retour de type 200 induira un OK, un 4XX/5XX un CRITICAL&lt;/li&gt;
&lt;li&gt;PROXY_ADDRESS &amp;amp; PROXY_PORT : optionnels - le hostname ou l’adresse de votre proxy, si nécessaire&lt;/li&gt;
&lt;li&gt;-r : optionnel - permet d’inverser les codes retours de Nagios. Un code retour 200 induira un CRITICAL (URL qui est accessible alors qu’elle ne le devrait pas) et un 4XX/5XX induira un OK&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="exemples"&gt;Exemples
&lt;/h2&gt;&lt;p&gt;Vérifier que http://@IPsome_forbidden_website.com n’est pas accessible et renvoyer un CRITICAL sinon.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;[root@lanhost ~]# /var/lib/nrpe/plugins/check_proxy_http_url.sh -u some_forbidden_website.com -r
OK: URL some_forbidden_website.com isn&amp;#39;t available and it shouldn&amp;#39;t - 403
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Vérifier que http://@IPsome_allowed_website_that_isnt_accessible.com n&amp;rsquo;est pas accessible et renvoyer un CRITICAL sinon.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" class="chroma"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;&lt;span class="o"&gt;[&lt;/span&gt;root@lanhost ~&lt;span class="o"&gt;]&lt;/span&gt;&lt;span class="c1"&gt;# /var/lib/nrpe/plugins/check_proxy_http_url.sh -p internal_proxy:8181 -u some_allowed_website_that_isnt_accessible.com&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class="line"&gt;&lt;span class="cl"&gt;CRITICAL: URL some_allowed_website_that_isnt_accessible.com isn&lt;span class="err"&gt;&amp;#39;&lt;/span&gt;t available and it should - &lt;span class="m"&gt;403&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="code-source"&gt;Code source
&lt;/h2&gt;&lt;p&gt;Comme d’habitude avec mes plugins « Nagios compatibles », les sources sont disponibles sur Github à l’adresse suivante :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://github.com/zwindler/check_proxy_http_url" target="_blank" rel="noopener"
&gt;github.com/zwindler/check_proxy_http_url&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Le lien pour &lt;a class="link" href="https://exchange.nagios.org/directory/Plugins/Network-Protocols/HTTP/check_proxy_http_url/details" target="_blank" rel="noopener"
&gt;Nagios Exchange est également disponible ici !&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Mes autres plugins sont également disponibles sur le Github :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.zwindler.fr/2015/07/16/plugin-check_mem_ng-sh-compatible-rhel-7/" &gt;Plugin check_mem_ng.sh compatible RHEL 7+&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.zwindler.fr/2017/04/25/plugin-de-supervision-rlp-emc%C2%B2-check_emc_rlp/" target="_blank" rel="noopener"
&gt;check_emc_rlp : supervision des LUNs dans le RLP sur baies VNX EMC²&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.zwindler.fr/2016/11/09/plugin-check_wlst_sessions-weblogic-9/" &gt;Plugin de supervision check_wlst_sessions (WebLogic 9+)&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;</description></item><item><title>check_emc_rlp : supervision des LUNs dans le RLP sur baies VNX EMC²</title><link>https://blog.zwindler.fr/2017/04/25/plugin-de-supervision-rlp-emc%C2%B2-check_emc_rlp/</link><pubDate>Tue, 25 Apr 2017 12:00:51 +0000</pubDate><guid>https://blog.zwindler.fr/2017/04/25/plugin-de-supervision-rlp-emc%C2%B2-check_emc_rlp/</guid><description>&lt;img src="https://blog.zwindler.fr/2017/04/check_emc_rlp03.webp" alt="Featured image of post check_emc_rlp : supervision des LUNs dans le RLP sur baies VNX EMC²" /&gt;&lt;h2 id="dans-la-série-"&gt;Dans la série &amp;hellip;
&lt;/h2&gt;&lt;p&gt;&amp;hellip; plugins pour les outils de supervision Nagios(r) like et « Nagios(r) compatibles » (Icinga, Naemon, Shinken, …), je met à disposition un script que j’ai écris il y a quelques années et qui permet de vérifier et de grapher que vous disposez toujours des LUNs dans le RLP (Reserved LUN Pool). Je l’ai appelé sobrement check_emc_rlp et j’en parle aussi dans &lt;a class="link" href="https://blog.zwindler.fr/2017/04/18/naviseccli-pour-piloter-ses-baies-emc-vnx-depuis-linux/" &gt;cet article à propos de NaviSecCli&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Mon problème initial était que j’avais plusieurs fois eu mes snapshots bloqués lors de l’utilisation un peu trop intensive du LUN source. Il n’y avait plus de place sur les LUNs dans le RLP, ce qui a pour effet de bloquer le snapshot et donc la base de préproduction que j’avais dessus. Un petit script qui vérifie qu’il y a toujours au moins 1 LUN non utilisé par LUN snapshoté permet de garder un peu de marge avant plantage.&lt;/p&gt;
&lt;p&gt;Voilà ce que donne ce &lt;code&gt;check_emc_rlp&lt;/code&gt; une fois mis en place dans Centreon :&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2017/04/check_emc_rlp04.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Le script nous informe qu’il reste suffisamment de LUN dans le RLP lorsqu’il y a des snapshots actifs&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2017/04/check_emc_rlp01.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;La courbe de performance (PERFDATA Nagios) indique ici qu’il reste 3 LUN par LUN snapshoté (12 en fait en tout), et qu’on remonte à 6 par LUN à minuit (moment où on rafraichit notre préproduction et que les snapshots se vident)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2017/04/check_emc_rlp03.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;La vue agrégée avec à la fois le nombre de LUN disponibles dans le RLP ainsi que le remplissage des LUN utilisés pour stocker le différentiel, par LUN snapshoté. Ce qui est intéressant ici c’est qu’on voit bien l’évolution du remplissage et le moment où la baie décide qu’elle a besoin d’un nouveau LUN en provenance du RLP&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Comme d’habitude pour le téléchargement et la documentation, c’est sur &lt;a class="link" href="https://exchange.nagios.org/directory/Plugins/Hardware/Storage-Systems/SAN-and-NAS/EMC-Clarion/check_emc_rlp/details" target="_blank" rel="noopener"
&gt;Nagios Exchange&lt;/a&gt; et &lt;a class="link" href="https://github.com/zwindler/check_emc_rlp" target="_blank" rel="noopener"
&gt;Github&lt;/a&gt; que ça se passe.&lt;/p&gt;
&lt;p&gt;Pour rappel, vous trouverez aussi mes autres plugins Nagios dans le &lt;a class="link" href="https://github.com/zwindler/" target="_blank" rel="noopener"
&gt;même repository Github.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Superviser des onduleurs/UPS avec Nagios/Centreon et SNMP</title><link>https://blog.zwindler.fr/2017/01/17/superviser_ups_centreon_snmp/</link><pubDate>Tue, 17 Jan 2017 13:00:52 +0000</pubDate><guid>https://blog.zwindler.fr/2017/01/17/superviser_ups_centreon_snmp/</guid><description>&lt;img src="https://blog.zwindler.fr/2016/12/ups.webp" alt="Featured image of post Superviser des onduleurs/UPS avec Nagios/Centreon et SNMP" /&gt;&lt;h2 id="être-alerté-par-londuleur-en-snmp"&gt;Être alerté par l’onduleur en SNMP
&lt;/h2&gt;&lt;p&gt;Il n’est pas rare que les onduleurs (ou Uninterrupted Power Supply chez nos amis anglosaxons), même sans être très haut de gamme, disposent de sortie Ethernet permettant de superviser l’état de l’onduleur, sa charge, &amp;hellip;&lt;/p&gt;
&lt;p&gt;Généralement, ce genre d’onduleur est également livré avec des clients propriétaires qui vous permettent de configurer la partie réseau de l’onduleur, puis ensuite de définir des alertes, voire des actions à réaliser lorsque l’onduleur commence à se décharger. Cependant, dans un environnement un tant soit peu industrialisé, ce genre d’outil est rarement pratique :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Il y a généralement déjà un outil de supervision en place, et en ajouter un va à l’encontre de l’efficacité pour les équipes support. Des consoles de supervision doivent être installés sur les postes des administrateur.&lt;/li&gt;
&lt;li&gt;Les agents pour éteindre les serveurs alimentés doivent être installés (ce qui induit une tâche d’exploitation/maintenance supplémentaire), parfois en s’appuyant sur des versions hors d’age de Java comme dépendance, et avec bien peu de support une fois que le produit est chez vous.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Heureusement, la plupart des onduleurs exposent également une MIB SNMP standard, que vous pouvez donc très simplement ajouter pour réaliser vous même votre propre supervision. Et même pourquoi pas votre propre agent d’extinction, en se basant sur un script ainsi qu’un agent déjà présent sur les machines pour la supervision (NSClient/NRPE pour moi).&lt;/p&gt;
&lt;p&gt;Pour trouver cette MIB (.1.3.6.1.4.1.21111.1.1, originalement nommée UPS), j’ai tout simplement utiliser un &lt;em&gt;snmpwalk&lt;/em&gt; sous Unix en me connectant à l’adresse IP de l’onduleur après configuration. Sous Windows, on peut aussi utiliser un utilitaire graphique pour faire la même chose, notamment avec iReasoning MIB Browser qui nous donne également quelques informations sur les indicateurs disponibles.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/11/ups2.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;MIB Browser donne des informations sur la MIB de manière graphique, ce qui peut être plus lisible qu’un simple snmpwalk&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="quoi-surveiller-"&gt;Quoi surveiller ?
&lt;/h2&gt;&lt;p&gt;Les indicateurs de la MIB UPS qui m’ont parus les plus opportuns à surveiller sont les suivants :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;upsBatStatus (.1.3.6.1.4.1.21111.1.1.3.1.0)&lt;/strong&gt; : L’état de la batterie qui peut être chargé ou en cours de déchargement. Tout ce qui n’est pas 2 est inquiétant.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;upsBatEstChargeRemaining (.1.3.6.1.4.1.21111.1.1.3.4.0)&lt;/strong&gt; : L’estimation de la charge restant de la batterie en %age. Si on descend sous 90% c’est que l’onduleur se décharge et que ce n’est pas une microcoupure !&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;upsBatEstMinutesRemaining (.1.3.6.1.4.1.21111.1.1.3.3.0)&lt;/strong&gt; : L’estimation du temps restant avant que la batterie soit épuisée. Je trouve cet indicateur pratique pour 2 raisons
&lt;ul&gt;
&lt;li&gt;On peut lancer des actions d’urgence (ssh + shutdown sur tous les linux) à partir d’un certain temps avant l’épuisement plutôt qu’un pourcentage, car on peut estimer que 5 minutes avant l’échéance, on aura plus le temps de rétablir avant coupure. Ce qui est plus difficile à fixer en pourcentage.&lt;/li&gt;
&lt;li&gt;On peut éventuellement détecter un problème sur les batteries ou sur la charge de l’onduleur si en fonctionnement normal (sur secteur) on se retrouve avec un temps de charge trop bas.&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;upsBatSecondsOnBattery (.1.3.6.1.4.1.21111.1.1.3.2.0)&lt;/strong&gt; : Le nombre de secondes depuis que l’onduleur est sur batterie et n’est donc plus sur secteur. Si on dépasse 0, c’est mauvais signe mais pour éviter les alertes intempestives j’ai mis 2.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Et comme je suis sympa, je vous passe la configuration Nagios/Centreon (ou tout autre produit compatible) associée qui vous permettra d’obtenir les indicateurs en question sans effort. Enjoy !&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/11/ups.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;define command {
command_name check_snmp
command_line $USER1$/check_snmp -H $HOSTADDRESS$ -o $ARG1$ -w $ARG2$ -c $ARG3$
}
define service {
service_description Template_par_défaut_pour_tous_les_serivces
name generic-service
contacts generic-contact
check_period 24x7
notification_period 24x7
max_check_attempts 5
check_interval 5
retry_interval 5
notification_interval 15
notification_options w,u,c
first_notification_delay 0
register 0
notifications_enabled 1
}
define service {
service_description 2_tentatives_et_interval_de_5_minutes_en_24_7
name 2retry_5min_24x7
check_period 24x7
max_check_attempts 2
check_interval 5
retry_interval 5
notification_interval 5
register 0
use generic-service
}
define service {
service_description Check_SNMP_upsBatStatus
name snmp_upsBatStatus
check_command check_snmp!.1.3.6.1.4.1.21111.1.1.3.1.0!2!2
register 0
use 2retry-5min-24x7
}
define service {
service_description Check_SNMP_upsBatEstChargeRemaining
name snmp_upsBatEstChargeRemaining
check_command check_snmp!.1.3.6.1.4.1.21111.1.1.3.4.0!90:!80:
register 0
use 2retry-5min-24x7
}
define service {
service_description Check_SNMP_upsBatEstMinutesRemaining
name snmp_upsBatEstMinutesRemaining
check_command check_snmp!.1.3.6.1.4.1.21111.1.1.3.3.0!30:!20:
register 0
use 2retry-5min-24x7
}
define service {
service_description Check_SNMP_upsBatSecondsOnBattery
name snmp_upsBatSecondsOnBattery
check_command check_snmp!.1.3.6.1.4.1.21111.1.1.3.2.0!2!2
register 0
use 2retry-5min-24x7
}
&lt;/code&gt;&lt;/pre&gt;</description></item><item><title>Plugin de supervision check_wlst_sessions (WebLogic 9+)</title><link>https://blog.zwindler.fr/2016/11/09/plugin-check_wlst_sessions-weblogic-9/</link><pubDate>Wed, 09 Nov 2016 13:00:18 +0000</pubDate><guid>https://blog.zwindler.fr/2016/11/09/plugin-check_wlst_sessions-weblogic-9/</guid><description>&lt;img src="https://blog.zwindler.fr/2016/10/check_wlst_sessions-1.webp" alt="Featured image of post Plugin de supervision check_wlst_sessions (WebLogic 9+)" /&gt;&lt;p&gt;Dans la série : plugin pour les outils de supervision Nagios(r) like et « Nagios(r) compatibles » (Icinga, Naemon, Shinken, &amp;hellip;), je met à disposition un script que j’ai écris il y a quelques années et qui permet de vérifier et de grapher que vous n’avez pas atteint un certain nombre de sessions concurrentes dans le serveur d’application Java WebLogic d’Oracle.&lt;/p&gt;
&lt;p&gt;Mon problème initial était que je n’arrivais pas à avoir de manière simple le nombre de sessions sur une JVM WbLogic. Je pouvais compter le nombre de processus/threads, mais ça ne correspond pas forcément à un nombre d’utilisateurs actifs.&lt;/p&gt;
&lt;p&gt;Or, l’éditeur du progiciel nous avait fourni un sizing en fonction d’un nombre d’utilisateurs. Il était donc important d’avoir ce chiffre de manière fiable.&lt;/p&gt;
&lt;p&gt;Il existait un plugin similaire pour la version 8 du serveur d’application (&lt;a class="link" href="https://exchange.nagios.org/directory/Plugins/Java-Applications-and-Servers/Weblogic/check_weblogic_sessions/details" target="_blank" rel="noopener"
&gt;développé par Sergei Haramundanis&lt;/a&gt;), mais qui utilisait un module Weblogic.Admin, déprécié dans la version 10 que j’utilise.&lt;/p&gt;
&lt;p&gt;Je me suis donc basé sur le WebLogic Scripting Tool (WLST) qui permet d’administrer et de récupérer des informations des serveurs WebLogic via des commandes Python interprété par Java (-_-« ). En fait, on peut réaliser l’ensemble des opérations disponibles dans la console WebLogic (l’AdminServer) en script.&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/10/check_wlst_sessions3.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;La documentation du WLST est &lt;a class="link" href="http://docs.oracle.com/cd/E13222_01/wls/docs90/config_scripting/reference.html" target="_blank" rel="noopener"
&gt;disponible à l’URL suivante&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Voilà ce que ça donne, une fois mis en place :&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/10/check_wlst_sessions2.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/10/check_wlst_sessions-1.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Comme d’habitude pour le téléchargement et la documentation, c’est sur &lt;a class="link" href="https://exchange.nagios.org/directory/Plugins/Java-Applications-and-Servers/Weblogic/check_wlst_sessions/details" target="_blank" rel="noopener"
&gt;Nagios Exchange&lt;/a&gt; et &lt;a class="link" href="https://github.com/zwindler/check_wlst_sessions" target="_blank" rel="noopener"
&gt;Github&lt;/a&gt; que ça se passe.&lt;/p&gt;
&lt;p&gt;Pour rappel, vous trouverez aussi mes autres plugins Nagios dans le &lt;a class="link" href="https://github.com/zwindler/" target="_blank" rel="noopener"
&gt;même repository Github.&lt;/a&gt;&lt;/p&gt;</description></item><item><title>Comment installer Shinken 2.4 hors ligne (sans accès à Internet)</title><link>https://blog.zwindler.fr/2016/11/02/installer-shinken-ligne-sans-acces-internet/</link><pubDate>Wed, 02 Nov 2016 15:11:10 +0000</pubDate><guid>https://blog.zwindler.fr/2016/11/02/installer-shinken-ligne-sans-acces-internet/</guid><description>&lt;img src="https://blog.zwindler.fr/2016/11/LogoShinken.webp" alt="Featured image of post Comment installer Shinken 2.4 hors ligne (sans accès à Internet)" /&gt;&lt;h2 id="pourquoi-installer-un-logiciel-et-notamment-shinken-hors-ligne-"&gt;Pourquoi installer un logiciel (et notamment Shinken) hors ligne ?
&lt;/h2&gt;&lt;p&gt;[Aparté] Pour ceux qui ne connaissent pas encore bien Shinken, je vous propose de lire mes &lt;a class="link" href="https://blog.zwindler.fr/recherche/?keyword=shinken" &gt;précédents articles sur le sujet&lt;/a&gt; et notamment celui où &lt;a class="link" href="https://blog.zwindler.fr/2015/09/22/tutoriel-shinken-2-4-sur-centosrhel-7-partie-1/" &gt;j’introduis le logiciel ainsi que ces fonctionnalités principales&lt;/a&gt;. [/Aparté]&lt;/p&gt;
&lt;p&gt;De plus en plus -même si ça fait bien longtemps que la tendance s’est installée- les packages (dépôts Debian like/RHEL/whatever) mais aussi les langages &amp;amp; les frameworks (&lt;a class="link" href="http://www.cpan.org/" target="_blank" rel="noopener"
&gt;perl&lt;/a&gt;, &lt;a class="link" href="http://pear.php.net/" target="_blank" rel="noopener"
&gt;pear (php)&lt;/a&gt;, &lt;a class="link" href="https://www.npmjs.com/" target="_blank" rel="noopener"
&gt;npmjs&lt;/a&gt;), voire même les logiciels vous simplifie la vie. On vous met à disposition un gestionnaire/binaire/ligne de commande pour télécharger de nouveaux modules/composants depuis un dépôt sur Internet, avec une gestion des dépendances et l’installation (voire compilation) automatisée.&lt;/p&gt;
&lt;p&gt;Et c’est vrai que c’est quand même super pratique.&lt;/p&gt;
&lt;p&gt;Qui n’a jamais pesté de ne pas avoir le CPAN de Perl à disposition ? Devoir télécharger manuellement sur le site CPAN.org puis compiler des modules selon un arbre de dépendances long comme le bras ? Et avec deux méthodes de compilation différentes (Make &amp;amp; Build) selon le module si possible !&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/11/cpan.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Pour ceux qui n’ont pas connus ce « fun ultime » je vous propose de jeter un œil à cet article où je récapitule &lt;a class="link" href="https://blog.zwindler.fr/2010/09/08/installer-3-plugins-nagios-dans-eon-1-2-coupe-dinternet-level-2/" &gt;comment installer sur EON et CentOS une sonde Nagios (oui, une seule) en 161 lignes de commande&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Pour autant, il n’est pas rare que les administrateurs réseaux du DataCenter, par souci de sécurité et respect des bonnes pratiques, refuse par défaut l’accès direct à Internet pour les serveurs. Dans le meilleur des cas, il existe des dépôts locaux qui sont le miroir de ce qu’on trouve sur Internet à un instant T, mais :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Ils ne contiennent jamais l’exhaustivité des RPM/DEB/&amp;hellip;&lt;/li&gt;
&lt;li&gt;Les versions des packages évoluent tout le temps et garder un ensemble cohérent de tous les modules et leur dépendances et quasi impossible (notamment les rpm pour des modules PHP&amp;hellip; $*%$$*)&lt;/li&gt;
&lt;li&gt;On ne peut pas avoir l’ensemble des gestionnaires qui existent (rien que la courte liste que je cite plus haut, c’est compliqué)&lt;/li&gt;
&lt;li&gt;Dernier cas : il n’existe pas nécessairement de méthode pour stocker dans le DC une copie des modules&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Il faut donc s’y résigner : il arrive des fois où l’installation hors ligne de dépendances est malheureusement incontournable.&lt;/p&gt;
&lt;h2 id="le-cas-de-shinken"&gt;Le cas de Shinken
&lt;/h2&gt;&lt;p&gt;Il m’est arrivé à plusieurs reprises à devoir installer Shinken hors ligne dans des DC coupés d’Internet et a priori je ne suis pas le seul (quelques anciens collègues, un commentaire sur le blog, &amp;hellip;). Pour autant, de ce que j’ai pu voir, il n’existe pas dans la documentation (ou alors plus) qui mentionne la méthode pour le faire.&lt;/p&gt;
&lt;p&gt;Mais vous avez de la chance, la méthode existe !&lt;/p&gt;
&lt;p&gt;Je ne vais pas rentrer autant dans les détails de l’installation et de la configuration de Shinken. Cette partie est traitée de manière exhaustive dans les tutoriels précédemment publiés (&lt;a class="link" href="https://blog.zwindler.fr/2015/09/22/tutoriel-shinken-2-4-sur-centosrhel-7-partie-2/" &gt;ici&lt;/a&gt; puis &lt;a class="link" href="https://blog.zwindler.fr/2015/09/22/tutoriel-shinken-2-4-sur-centosrhel-7-partie-3/" &gt;ici&lt;/a&gt;). Pour autant, voici la marche à suivre lorsque Shinken fait appel à Internet et que vous souhaitez réaliser l’opération &lt;strong&gt;hors ligne&lt;/strong&gt;.&lt;/p&gt;
&lt;h2 id="pour-les-dépendances-rpm-via-yum"&gt;Pour les dépendances RPM via yum
&lt;/h2&gt;&lt;p&gt;Note : cette partie de l’article est applicable au delà de Shinken, je l’utilise tous les jours pour constituer mes bases de RPM pour l’ensemble des distributions et des logiciels que j’administre.&lt;/p&gt;
&lt;p&gt;Pour les dépendances RPM, 2 solutions :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Soit vous montez votre propre dépôt local, par exemple avec &lt;strong&gt;createrepo&lt;/strong&gt; et un serveur Apache. C’est très simple à mettre en place et c’est un bonne idée lorsque vous avez beaucoup de packages a installer, ou plusieurs version de distrib’ a administrer.&lt;/li&gt;
&lt;li&gt;Soit vous vous créez un dossier dans lequel vous récupérer tous les RPM et leurs dépendances. Vous copierez ce dossier sur le serveur où vous souhaitez installer Shinken.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Quoiqu’il arrive, vous devrez donc passer par la case « téléchargement manuel » de tous les RPM nécessaires.&lt;/p&gt;
&lt;h3 id="yumdownloader"&gt;yumdownloader
&lt;/h3&gt;&lt;p&gt;Dans le meilleur des cas, vous disposez d’un Linux de la même version et qui a un accès à Internet. Et là vous allez vous simplifier la vie avec le binaire &lt;strong&gt;yumdownloader&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Ce binaire fonctionne de la même manière que yum, à ceci près qu’il télécharge les packages au lieu de les installer. Vous n’aurez donc qu’a ajouter dans votre &lt;strong&gt;/etc/yum.repo.d&lt;/strong&gt;/ l’ensemble des dépôts qui seront nécessaires à l’installation de Shinken (probablement CentOS-Base et EPEL Release pour un CentOS), puis télécharger tous les RPMs dont vous avez besoin avec la commande :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum install yum-utils
mkdir shinken_deps &amp;amp;&amp;amp; cd shinken_deps
yumdownloader --resolve mon_package
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A noter cependant, d’expérience le &lt;em&gt;&amp;ndash;resolve&lt;/em&gt; censé télécharger les dépendances du package en même temps est peu fiable. Vous aurez surement des dépendances manquantes à télécharger de manière complémentaire.&lt;/p&gt;
&lt;h3 id="a-la-mimine"&gt;A la mimine
&lt;/h3&gt;&lt;p&gt;Si vous n’êtes pas dans le cas cité plus haut, alors cette opération peut être fastidieuse. Elle va alors consister à taper dans votre moteur de recherche favori des mots clés du type « mon_package rpm el6 » (dans le cas d’un RHEL6 ou CentOS6), puis de télécharger la version qui y est disponible sur des sites comme &lt;em&gt;rpm.pbone.net&lt;/em&gt; et &lt;em&gt;&lt;a class="link" href="https://www.rpmfind.net" target="_blank" rel="noopener"
&gt;www.rpmfind.net&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;
&lt;p&gt;Et bien sûr, comme vous ne pouvez pas deviner aisément si les dépendances qui y sont affichées sont actuellement disponibles ou pas sur votre serveur, il y a un risque que ce soit une opération itérative, jusqu’à ce que vous ayez enfin toutes les dépendances pour tous les cas de figure.&lt;/p&gt;
&lt;p&gt;&amp;hellip;&lt;/p&gt;
&lt;p&gt;Et qu’il n’y ait pas de conflits entre versions de packages interdépendants&amp;hellip;&lt;/p&gt;
&lt;h3 id="installation"&gt;Installation
&lt;/h3&gt;&lt;p&gt;Votre base de RPM est enfin complète. Pour installer les RPMs nécessaires à Shinken !&lt;/p&gt;
&lt;h4 id="si-vous-avez-choisi-le-dépôt-local"&gt;Si vous avez choisi le dépôt local
&lt;/h4&gt;&lt;p&gt;Un simple ajout du dépôt sur le serveur vous permettra donc d’installer toutes les dépendances comme s’y vous étiez sur Internet&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;yum install package1 package2 ...
&lt;/code&gt;&lt;/pre&gt;&lt;blockquote&gt;
&lt;p&gt;Transparent !&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id="si-vous-avez-plutôt-une-clé-usbdvddisque-514-avec-toutes-les-dépendances-dessus"&gt;Si vous avez plutôt une clé USB/DVD/disque 5″1/4 avec toutes les dépendances dessus
&lt;/h4&gt;&lt;p&gt;Pendant longtemps, quand j’avais des RPMs à installer, je m&amp;rsquo;embêtais à les installer dans l’ordre de dépendance avec la commande &lt;strong&gt;rpm -hiv mon_package&lt;/strong&gt;. Et des fois je pestais parce que je ne l’avais pas fais dans le bon ordre&amp;hellip;&lt;br&gt;
Mais vous avez quand même de la chance, &lt;em&gt;yum&lt;/em&gt; est bien pensé. Il permet également d’installer des RPMs locaux et gère les dépendances de lui même, qu’elles soient sur déposés sur le serveur ou sur vos dépôts. Vous n’avez donc à vous soucier que des packages qui ne sont pas sur vos dépôts, &lt;em&gt;yum&lt;/em&gt; fera le tri parmi toutes les sources disponibles. Et ça simplifie grandement la vie.&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;cd shinken_deps/
yum install *.rpm
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id="installation-des-modules-python-via-pip-dont-shinken-lui-même"&gt;Installation des modules Python via pip (dont Shinken lui même)
&lt;/h2&gt;&lt;p&gt;Shinken étant codé majoritairement en python, vous ne serez donc pas surpris d’apprendre qu’il faut utiliser pip (ou pipy) pour installer des dépendances à Shinken, et même d’ailleurs Shinken lui même.&lt;/p&gt;
&lt;p&gt;Rappel des tutos précédents, pour installer Shinken sur un CentOS qui a accès au net, il faut « juste » faire&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;rpm -iUvh http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
yum update
yum install python-pip
adduser shinken
pip install shinken
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Si vous avez quand même partiellement accès à Internet via un proxy, vous pourrez vous en sortir en indiquant dans la variable http&lt;strong&gt;s&lt;/strong&gt;_proxy l’URL du proxy HTTPS pour &lt;em&gt;pip&lt;/em&gt; (notez le S).&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;export https_proxy=http://@IP_proxy_https:8080/
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Mais dans le cas où vous êtes réellement coupé d’Internet et que vous devez récupérer des packages &lt;em&gt;pipy&lt;/em&gt; a priori, vous pourrez quand même le faire de la façon suivante :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Récupérer le tar.gz du module pipy sur le site Internet. Par exemple, pour Shinken, il existe &lt;a class="link" href="https://pypi.python.org/pypi/Shinken" target="_blank" rel="noopener"
&gt;une page dédiée sur pipy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Déposer le fichier shinken-2.4.x.tar.gz sur le serveur où on souhaite installer Shinken&lt;/li&gt;
&lt;li&gt;Installer le module pipy simplement à l’aide de la commande &lt;strong&gt;pip install shinken-2.4.x.tar.gz&lt;/strong&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Cette méthode est valable pour toutes les dépendances Python de Shinken, mais aussi pour Shinken lui même, comme on vient de le voir.&lt;/p&gt;
&lt;h2 id="pour-linstallation-des-modules-de-shinken-comme-webui2-par-exemple"&gt;Pour l’installation des modules de Shinken (comme webui2 par exemple)
&lt;/h2&gt;&lt;p&gt;Mais au delà de l’installation de Shinken, de ses dépendances RPMs et Python, il reste encore un dernier problème : les modules de Shinken !&lt;/p&gt;
&lt;p&gt;Les développeurs de Shinken ont mis à disposition sur &lt;strong&gt;shinken.io&lt;/strong&gt; une liste de modules (plus de 100 je crois) optionnels et qui ne sont pas inclus dans le logiciel de base. Pour autant, certains sont quand même très utiles voir carrément importants. C’est notamment le cas de &lt;a class="link" href="http://shinken.io/package/webui" target="_blank" rel="noopener"
&gt;la webui&lt;/a&gt; (interface graphique officielle de Shinken).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2016/11/shinken_webui_offline.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Et pour vous simplifier la vie, l’installation de ces fameux « modules de shinken » se fait via une ligne de commande très simple, qui se charge de télécharger et d’installer pour vous les dépendances :&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;shinken install webui
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;C’est une super idée, mais, là encore, sans Internet, impossible de télécharger ce module de cette manière.&lt;/p&gt;
&lt;p&gt;N’ayez crainte ! En réalité, bien qu’il ne soit pas (ou plus, ou je n’ai pas trouvé) documenté, il existe un mécanisme d’installation locale de la même manière qu’avec &lt;em&gt;yum&lt;/em&gt; ou &lt;em&gt;pip&lt;/em&gt;. Ouf !&lt;/p&gt;
&lt;h3 id="dépendances"&gt;Dépendances
&lt;/h3&gt;&lt;p&gt;La première étape consiste à récupérer les dépendances pipy listées dans le mod-webui/requirements.txt qu’on peut trouver dans le code source du module.&lt;/p&gt;
&lt;p&gt;Dans le cas de la webui, il s’agit (à date) de &lt;strong&gt;bottle==0.12.8, pymongo&amp;gt;=3.0.3, requests, arrow et passlib&lt;/strong&gt;. On les récupèrent donc tous sur pipy, et on les installe comme je viens de le décrire avec un &lt;strong&gt;pip install monmodule.tar.gz&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="récupérer-les-sources-du-modules"&gt;Récupérer les sources du modules
&lt;/h3&gt;&lt;p&gt;Ensuite, on récupère les sources en un zip, qu’on dézippe sur le serveur. Pour le module &lt;strong&gt;webui&lt;/strong&gt;, les sources sont sur github &lt;a class="link" href="https://github.com/shinken-monitoring/mod-webui" target="_blank" rel="noopener"
&gt;github.com/shinken-monitoring/mod-webui&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;On peut enfin installer le module de Shinken à la main, à l’aide du flag &lt;strong&gt;&amp;ndash;local&lt;/strong&gt;&lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;shinken install --local webui
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Facile, non ?&lt;/p&gt;
&lt;p&gt;;-)&lt;/p&gt;</description></item><item><title>[Tutoriel] Shinken 2.4 sur CentOS/RHEL 7 – partie 1</title><link>https://blog.zwindler.fr/2015/09/22/tutoriel-shinken-2-4-sur-centosrhel-7-partie-1/</link><pubDate>Tue, 22 Sep 2015 16:30:24 +0000</pubDate><guid>https://blog.zwindler.fr/2015/09/22/tutoriel-shinken-2-4-sur-centosrhel-7-partie-1/</guid><description>&lt;img src="https://blog.zwindler.fr/2015/09/shinken.webp" alt="Featured image of post [Tutoriel] Shinken 2.4 sur CentOS/RHEL 7 – partie 1" /&gt;&lt;p&gt;Cet article fait parti d’une série d’articles (au moins 3) que je vais publier sur le sujet et que j’ai séparé pour les rendre un peu plus digestes. Je vous conseille quand même de ne pas en sauter pour bien comprendre de quoi on parle ;-) :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.zwindler.fr/2015/09/22/tutoriel-shinken-2-4-sur-centosrhel-7-partie-1/" &gt;Partie 1 : Présentation de Shinken&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.zwindler.fr/2015/09/22/tutoriel-shinken-2-4-sur-centosrhel-7-partie-2/" &gt;Partie 2 : Installation de Shinken 2.4 sur RHEL/CentOS 7&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a class="link" href="https://blog.zwindler.fr/2015/09/22/tutoriel-shinken-2-4-sur-centosrhel-7-partie-3/" &gt;Partie 3 : Configuration initiale de Shinken 2.4 sur RHEL/CentOS 7&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Note : Pour les plus pressés ou qui connaissent déjà bien Shinken, la partie &lt;em&gt;technique pure&lt;/em&gt; commence à partir du 2ème article.&lt;/p&gt;
&lt;h2 id="pourquoi-shinken-"&gt;Pourquoi Shinken ?
&lt;/h2&gt;&lt;p&gt;Ça fait un moment déjà que je parle de Shinken sans pour autant l’avoir vraiment présenté. Le sujet avait déjà été traité par pas mal de gens relativement calés comme Nicolargo pour ne citer que lui (et quelques articles de Monitoring-FR) et j’estimais du coup ne pas avoir forcément beaucoup à ajouter.&lt;/p&gt;
&lt;p&gt;Cependant, avec la sortie avant l’été de la version 2.4, ainsi que les récentes amélioration sur l’interface, j’ai voulu revenir sur le sujet car ça a pas mal bougé depuis, surtout la 2.0 qui a changé pas mal de choses !&lt;/p&gt;
&lt;h2 id="ok-alors-shinken-cest-quoi"&gt;Ok, alors. Shinken c’est quoi?
&lt;/h2&gt;&lt;p&gt;Je suis tombé par hasard sur Shinken pratiquement à son début. Par pur hasard, je m’intéressais justement à des alternatives hautement disponibles à Nagios à l’époque et je suis tombé &lt;a class="link" href="https://web.archive.org/web/20200224065218/http://www.gabes.fr/jean/2010/05/31/shinken-la-0-1-est-arrivee/" target="_blank" rel="noopener"
&gt;sur la v0.1 (lien mort, j&amp;rsquo;utilise Internet Archive)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Selon les propres mots de Jean Gabès son créateur en 2011, alors &lt;a class="link" href="http://blog.nicolargo.com/2011/08/interview-de-jean-gabes-le-createur-de-shinken.html" target="_blank" rel="noopener"
&gt;interviewé par Nicolargo&lt;/a&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Shinken est un outil de supervision, une implémentation de Nagios en Python &amp;lsquo;from scratch&amp;rsquo; qui a pour objectifs principaux de simplifier la vie des administrateurs de grands parcs et de coller au mieux à l’évolution de l’IT des dix dernières années, et si possible préparer les dix prochaines&amp;hellip;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Si la définition a probablement un peu évolué aujourd’hui, les grandes lignes sont là et présente bien la philosophie du projet telle quelle l’était au départ. Et c’est probablement cette philosophie qui a permis à Shinken de gagner autant de point parmi la communauté supervision open source, surtout face à un Nagios en perte d’identité.&lt;/p&gt;
&lt;p&gt;Pour les plus curieux, on découvre aussi pas mal de l’âme du projet &lt;a class="link" href="https://web.archive.org/web/20190320085832/http://www.gabes.fr/jean/category/shinken/" target="_blank" rel="noopener"
&gt;sur le blog de naparuba&lt;/a&gt; (Jean Gabès donc).&lt;/p&gt;
&lt;h2 id="en-quoi-shinken-est-mieux-que-nagios-"&gt;En quoi Shinken est mieux que Nagios ?
&lt;/h2&gt;&lt;p&gt;J’ai déployé mon premier Shinken sur un serveur complètement saturé qui surveillait un parc de développement de quelques milliers de serveurs.&lt;br&gt;
A l’époque, ce qui a convaincu la direction c’est surtout que Shinken étant beaucoup plus économe en ressources que Nagios : nous avons pu continuer à surveiller le parc avec le même serveur qui a retrouvé une seconde vie et avec &lt;em&gt;pratiquement aucune interruption&lt;/em&gt; puisque tout était compatible (agents, plugins, configuration des serveurs supervisés)&lt;/p&gt;
&lt;p&gt;C’était très réducteur par rapport aux nombreux avantages de Shinken par rapport à Nagios, mais ça a permis de commencer à mettre le doigt dans l’engrenage. Voici quelques qualités que j’aime mettre en avant  :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Compatible avec la configuration, les agents et les plugins d’un Nagios existant&lt;/li&gt;
&lt;li&gt;Des performances brutes bien meilleures que Nagios 3, la référence open source à l’époque&lt;/li&gt;
&lt;li&gt;Les &lt;em&gt;root problems&lt;/em&gt; : meilleure gestion de la détection automatique des vrais problèmes&lt;/li&gt;
&lt;li&gt;Multiplateforme - Shinken fonctionne sous Linux, Windows mais aussi sur Android. Vous pouvez l’installer sur un serveur ou un EeePC&lt;/li&gt;
&lt;li&gt;Des mécanismes d’aide au démarrage via des « packs » préconfigurés pour un type d’équipement donné (AIX, Linux, baie EMC, &amp;hellip;)&lt;/li&gt;
&lt;li&gt;Une architecture distribuée : découpage des fonctions principale du programme en modules, ce qui permet entre autre
&lt;ul&gt;
&lt;li&gt;De la répartition de charge gérée nativement&lt;/li&gt;
&lt;li&gt;De la haute disponibilité native&lt;/li&gt;
&lt;li&gt;Une gestion des DMZ et des sites distants native&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="time-to-go-live"&gt;Time to go live
&lt;/h2&gt;&lt;p&gt;Fort de ces arguments, Shinken a réussi à trouver une place dans le paysage de la supervision open source. Une version 1 est sortie, des prix d’innovations ont été gagnés, et Jean Gabès a décidé de se lancer totalement dans l’aventure en créant Shinken Solutions courant 2013.&lt;/p&gt;
&lt;p&gt;Le cœur de Shinken reste libre et communautaire, mais une version entreprise est lancée avec notamment des fonctionnalités de découvertes avancées et d’alimentation de référentiel par le biais de connecteurs (ex. vers VMware, vers la CMDB, vers un Active Directory, etc). La société &lt;strong&gt;Shinken Solutions&lt;/strong&gt; offre également un support aux entreprises qui le souhaitent.&lt;/p&gt;
&lt;h2 id="larchitecture-distribuée--largument-massue"&gt;L’architecture distribuée : l’argument massue
&lt;/h2&gt;&lt;p&gt;Mais assez parlé du projet !&lt;/p&gt;
&lt;p&gt;Pour débuter sur Shinken, la première chose à faire est de comprendre son architecture. Si la configuration et les plugins sont compatibles Nagios, Shinken n’en est pas moins très différent de son monolithique ancêtre.&lt;/p&gt;
&lt;p&gt;Même si vous êtes un expert de Nagios, il faut bien comprendre les concepts fondateurs avant de s’y lancer (voir &lt;a class="link" href="https://shinken.readthedocs.org/en/latest/09_architecture/the-shinken-architecture.html#architecture-the-shinken-architecture" target="_blank" rel="noopener"
&gt;la doc&lt;/a&gt;).&lt;/p&gt;
&lt;p&gt;&lt;img src="https://blog.zwindler.fr/2015/09/shinken-architecture.avif"
loading="lazy"
&gt;&lt;/p&gt;
&lt;p&gt;Pour résumer :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;l’&lt;strong&gt;arbiter&lt;/strong&gt; est le chef de l’équipe. Il a la vision globale des démons et des modules. Du coup, il est responsable de découper la configuration générale vers les différents démons et gère la répartition de charge et la haute disponibilité.&lt;/li&gt;
&lt;li&gt;le &lt;strong&gt;scheduler&lt;/strong&gt; c’est l’ordonnanceur. Il réparti les checks et les notifications à réaliser respectivement entre les &lt;em&gt;pollers&lt;/em&gt; et les &lt;em&gt;reactioners&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;le &lt;strong&gt;poller&lt;/strong&gt; récupère les checks actifs qu’il doit effectuer sur l’infrastructure depuis les ordres du &lt;em&gt;scheduler&lt;/em&gt; et renvoie le résultat au broker&lt;/li&gt;
&lt;li&gt;le &lt;strong&gt;receiver&lt;/strong&gt; reçoit les checks passifs provenant des serveurs et renvoie les résultat au broker (au même titre que le &lt;em&gt;poller&lt;/em&gt;)&lt;/li&gt;
&lt;li&gt;le &lt;strong&gt;reactionner&lt;/strong&gt; déclenche les envoie de notifications et gère les &lt;em&gt;events handlers&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt;le &lt;strong&gt;broker&lt;/strong&gt; centralise et consolide les informations renvoyées par les &lt;em&gt;pollers&lt;/em&gt; et les &lt;em&gt;receivers&lt;/em&gt;. On peut ensuite exploiter ces informations à l’aide des modules du broker qui présentent l’information (interfaces graphiques, exports de données, logs, &amp;hellip;)&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="la-suite-"&gt;La suite ?
&lt;/h2&gt;&lt;p&gt;Si vous avez digéré tout ça, vous êtes prêt pour la &lt;a class="link" href="https://blog.zwindler.fr/2015/09/22/tutoriel-shinken-2-4-sur-centosrhel-7-partie-2/" &gt;partie suivante&lt;/a&gt;.&lt;/p&gt;</description></item><item><title>Monitoring-FR a besoin de vous !</title><link>https://blog.zwindler.fr/2015/09/13/monitoring-fr-a-besoin-de-vous/</link><pubDate>Sun, 13 Sep 2015 10:03:12 +0000</pubDate><guid>https://blog.zwindler.fr/2015/09/13/monitoring-fr-a-besoin-de-vous/</guid><description>&lt;img src="https://blog.zwindler.fr/2015/09/logo_monitoring_fr.webp" alt="Featured image of post Monitoring-FR a besoin de vous !" /&gt;&lt;h2 id="aparté-retour-sur-lhistoire"&gt;Aparté (retour sur l’histoire)
&lt;/h2&gt;&lt;p&gt;Pour ceux qui ne connaîtraient pas Monitoring-FR, il s’agit du site d’une des plus grosses communautés francophone de supervision open source.&lt;/p&gt;
&lt;p&gt;Ce site s’appelait initialement Nagios-FR mais Ethan Galstad (créateur de Nagios®) a réclamé le nom de domaine (Nagios® est une marque déposée et on ne plaisante pas avec les avocats de Nagios® pour ceux qui ne l’auraient pas compris).&lt;/p&gt;
&lt;p&gt;Monitoring-FR se compose d’un blog animé par une équipe de passionnés qui sont présents lors des grands événements de la supervision, d’un forum d’entraide et d’un wiki assez conséquent quoiqu’un peu désordonné et pas forcément très à jour.&lt;/p&gt;
&lt;h2 id="cétait-mieux-avant-"&gt;C’était mieux avant ?
&lt;/h2&gt;&lt;p&gt;Les habitués de Monitoring-FR l’auront vu, cela fait quelques années que le rythme des publications diminue. La communauté semble moins vivace. Je ne sais pas si c’est les années &lt;a class="link" href="http://www.monitoring-fr.org/2010/02/accuse-nagios-fr-org-levez-vous/" target="_blank" rel="noopener"
&gt;Nagios-FR&lt;/a&gt; qui ont laissé des traces ou si c’est l’éclatement du logiciel Nagios lui même en sous projets concurrents (Icinga/Shinken/Centreon et sa volonté standalone) qui en est la cause.&lt;/p&gt;
&lt;p&gt;Le monde de la supervision Open Source n’est pas le même qu’il y a 5 ans.&lt;/p&gt;
&lt;p&gt;On a aussi senti en filigrane lors des échanges de &lt;a class="link" href="http://www.monitoring-fr.org/2015/03/reponse-lettre-ouverte-cedric-temple/" target="_blank" rel="noopener"
&gt;lettres ouvertes avec Cédric Temple&lt;/a&gt; de Merethis (Centreon) que les animateurs de la communautés manquaient de main d’oeuvre.&lt;/p&gt;
&lt;h2 id="monitoring-fr-a-besoin-de-vous"&gt;Monitoring-FR a besoin de vous
&lt;/h2&gt;&lt;p&gt;Mais au delà de tout ça, Monitoring-FR, c’était quand même une sacrée base de connaissance pour tout ceux qui débutent. C’est une référence pour tout ceux qui s’intéressent à la supervision et à son actualité (finalement pratiquement pas traité ailleurs) et le travail de l’équipe a toujours été très bon, aussi bien en terme de couverture d’événements que de retours sur les nouvelles versions des logiciels.&lt;/p&gt;
&lt;p&gt;Et c’est ce côté que je voir persister.&lt;/p&gt;
&lt;p&gt;Depuis quelques mois, les publications reviennent un peu, avec des retours sur les rencontres Paris et Nantes Monitoring notamment.&lt;/p&gt;
&lt;p&gt;Donc je voudrais relayer &lt;a class="link" href="http://www.monitoring-fr.org/2015/09/construisons-ensemble-la-communaute-de-demain/" target="_blank" rel="noopener"
&gt;l’appel de Monitoring-FR&lt;/a&gt; et vous inviter, si le cœur vous en dis, à rejoindre le mouvement pour relancer la machine (lien mort) :)&lt;/p&gt;</description></item></channel></rss>