<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Linux on slash-root.fr</title><link>https://beta.slash-root.fr/tags/linux/</link><description>Recent content in Linux on slash-root.fr</description><generator>Hugo -- gohugo.io</generator><language>fr-fr</language><lastBuildDate>Sun, 01 Dec 2024 12:18:07 +0100</lastBuildDate><atom:link href="https://beta.slash-root.fr/tags/linux/index.xml" rel="self" type="application/rss+xml"/><item><title>Libérez votre swap !</title><link>https://beta.slash-root.fr/liberez-votre-swap/</link><pubDate>Sun, 01 Dec 2024 06:09:15 +0100</pubDate><guid>https://beta.slash-root.fr/liberez-votre-swap/</guid><description>&lt;img src="https://beta.slash-root.fr/liberez-votre-swap/cover.png" alt="Featured image of post Libérez votre swap !" /&gt;&lt;h2 id="préambule"&gt;&lt;a href="#pr%c3%a9ambule" class="header-anchor"&gt;&lt;/a&gt;Préambule
&lt;/h2&gt;&lt;p&gt;Envie de libérer Britney ? Ou plutôt... votre swap ? 🎵&lt;/p&gt;
&lt;p&gt;Si vous cherchez à optimiser l'utilisation de votre mémoire virtuelle sur une machine Debian, vous êtes au bon endroit !&lt;/p&gt;
&lt;hr /&gt;
&lt;h3 id="le-swappiness-cest-quoi-"&gt;&lt;a href="#le-swappiness-cest-quoi-" class="header-anchor"&gt;&lt;/a&gt;Le &lt;code&gt;swappiness&lt;/code&gt;, c&amp;rsquo;est quoi ?
&lt;/h3&gt;&lt;p&gt;Le &lt;code&gt;swappiness&lt;/code&gt; est un paramètre du kernel Linux qui contrôle la &amp;quot;proportion&amp;quot; du système à utiliser le swap. Une valeur faible favorise l'utilisation de la RAM, tandis qu'une valeur élevée incite à swapper rapidement sur le disque.&lt;/p&gt;
&lt;hr /&gt;
&lt;h2 id="quelques-commandes-essentielles"&gt;&lt;a href="#quelques-commandes-essentielles" class="header-anchor"&gt;&lt;/a&gt;Quelques commandes essentielles
&lt;/h2&gt;&lt;h3 id="1-vérifier-la-valeur-actuelle-du-swappiness"&gt;&lt;a href="#1-v%c3%a9rifier-la-valeur-actuelle-du-swappiness" class="header-anchor"&gt;&lt;/a&gt;1. Vérifier la valeur actuelle du &lt;code&gt;swappiness&lt;/code&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat /proc/sys/vm/swappiness
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="2-modifier-dynamiquement-le-swappiness"&gt;&lt;a href="#2-modifier-dynamiquement-le-swappiness" class="header-anchor"&gt;&lt;/a&gt;2. Modifier dynamiquement le &lt;code&gt;swappiness&lt;/code&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo sysctl vm.swappiness&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#ae81ff"&gt;20&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;⚠️ Cette modification n'est pas persistante et sera perdue au redémarrage.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="3-rendre-la-configuration-persistante"&gt;&lt;a href="#3-rendre-la-configuration-persistante" class="header-anchor"&gt;&lt;/a&gt;3. Rendre la configuration persistante
&lt;/h3&gt;&lt;p&gt;Ajoutez ou modifiez la ligne suivante dans &lt;code&gt;/etc/sysctl.conf&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;vm.swappiness&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;20&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Appliquez ensuite la configuration :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo sysctl -p
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="4-comprendre-les-valeurs-du-swappiness"&gt;&lt;a href="#4-comprendre-les-valeurs-du-swappiness" class="header-anchor"&gt;&lt;/a&gt;4. Comprendre les valeurs du &lt;code&gt;swappiness&lt;/code&gt;
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;100&lt;/strong&gt; : Le système swap intensément.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;0&lt;/strong&gt; : Swap uniquement en cas de RAM complètement saturée.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Défaut&lt;/strong&gt; : Généralement &lt;strong&gt;60&lt;/strong&gt; sur Debian.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="5-désactiver-et-réactiver-le-swap"&gt;&lt;a href="#5-d%c3%a9sactiver-et-r%c3%a9activer-le-swap" class="header-anchor"&gt;&lt;/a&gt;5. Désactiver et réactiver le swap
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo swapoff -a &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; sudo swapon -a
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;⚠️ Assurez-vous que la RAM disponible est suffisante pour accueillir les données du swap avant de désactiver ce dernier.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="6-identifier-les-processus-utilisant-le-swap"&gt;&lt;a href="#6-identifier-les-processus-utilisant-le-swap" class="header-anchor"&gt;&lt;/a&gt;6. Identifier les processus utilisant le swap
&lt;/h3&gt;&lt;p&gt;Pour examiner les processus gourmands en swap, utilisez cette commande :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; file in /proc/*/status ; &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; awk &lt;span style="color:#e6db74"&gt;&amp;#39;/VmSwap|Name/{printf $2 &amp;#34; &amp;#34; $3}END{ print &amp;#34;&amp;#34;}&amp;#39;&lt;/span&gt; $file; &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;done&lt;/span&gt; | &lt;span style="color:#ae81ff"&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sort -k &lt;span style="color:#ae81ff"&gt;2&lt;/span&gt; -n -r | less
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr /&gt;
&lt;h2 id="automatisation-avec-un-script-bash"&gt;&lt;a href="#automatisation-avec-un-script-bash" class="header-anchor"&gt;&lt;/a&gt;Automatisation avec un script Bash
&lt;/h2&gt;&lt;p&gt;Pour simplifier la gestion du swap, voici un script bash prêt à l'emploi :&lt;/p&gt;
&lt;h3 id="script--free-swapsh"&gt;&lt;a href="#script--free-swapsh" class="header-anchor"&gt;&lt;/a&gt;Script : &lt;code&gt;free-swap.sh&lt;/code&gt;
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;check_command&lt;span style="color:#f92672"&gt;()&lt;/span&gt; &lt;span style="color:#f92672"&gt;{&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#f92672"&gt;[[&lt;/span&gt; $? -ne &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#f92672"&gt;]]&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;Erreur lors de l&amp;#39;exécution de la commande: &lt;/span&gt;$1&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;free_data&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;free&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;check_command &lt;span style="color:#e6db74"&gt;&amp;#34;free&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mem_data&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$free_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | grep &lt;span style="color:#e6db74"&gt;&amp;#39;Mem:&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;free_mem&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$mem_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | awk &lt;span style="color:#e6db74"&gt;&amp;#39;{print $4}&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;buffers&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$mem_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | awk &lt;span style="color:#e6db74"&gt;&amp;#39;{print $6}&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cache&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$mem_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | awk &lt;span style="color:#e6db74"&gt;&amp;#39;{print $7}&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;total_free&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$((&lt;/span&gt;free_mem &lt;span style="color:#f92672"&gt;+&lt;/span&gt; buffers &lt;span style="color:#f92672"&gt;+&lt;/span&gt; cache&lt;span style="color:#66d9ef"&gt;))&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$free_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | grep -q &lt;span style="color:#e6db74"&gt;&amp;#39;Échange:&amp;#39;&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; used_swap&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$free_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | grep &lt;span style="color:#e6db74"&gt;&amp;#39;Échange:&amp;#39;&lt;/span&gt; | awk &lt;span style="color:#e6db74"&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; used_swap&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;$free_data&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt; | grep &lt;span style="color:#e6db74"&gt;&amp;#39;Swap:&amp;#39;&lt;/span&gt; | awk &lt;span style="color:#e6db74"&gt;&amp;#39;{print $3}&amp;#39;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo -e &lt;span style="color:#e6db74"&gt;&amp;#34;Free memory:\t&lt;/span&gt;$total_free&lt;span style="color:#e6db74"&gt; kB (&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$((&lt;/span&gt;total_free &lt;span style="color:#f92672"&gt;/&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1024&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;))&lt;/span&gt;&lt;span style="color:#e6db74"&gt; MB)\nUsed swap:\t&lt;/span&gt;$used_swap&lt;span style="color:#e6db74"&gt; kB (&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$((&lt;/span&gt;used_swap &lt;span style="color:#f92672"&gt;/&lt;/span&gt; &lt;span style="color:#ae81ff"&gt;1024&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;))&lt;/span&gt;&lt;span style="color:#e6db74"&gt; MB)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;if&lt;/span&gt; &lt;span style="color:#f92672"&gt;[[&lt;/span&gt; $used_swap -eq &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt; &lt;span style="color:#f92672"&gt;]]&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;Félicitations ! Aucun swap n&amp;#39;est utilisé.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;elif&lt;/span&gt; &lt;span style="color:#f92672"&gt;[[&lt;/span&gt; $used_swap -lt $total_free &lt;span style="color:#f92672"&gt;]]&lt;/span&gt;; &lt;span style="color:#66d9ef"&gt;then&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;Libération du swap...&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sudo swapoff -a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; check_command &lt;span style="color:#e6db74"&gt;&amp;#34;swapoff&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; sudo swapon -a
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; check_command &lt;span style="color:#e6db74"&gt;&amp;#34;swapon&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;else&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; echo &lt;span style="color:#e6db74"&gt;&amp;#34;Pas assez de mémoire libre pour libérer le swap. Arrêt.&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; exit &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;fi&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="instructions-"&gt;&lt;a href="#instructions-" class="header-anchor"&gt;&lt;/a&gt;Instructions :
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;Enregistrez le script dans un fichier, par exemple : &lt;code&gt;free-swap.sh&lt;/code&gt;.&lt;/li&gt;
&lt;li&gt;Rendez-le exécutable :&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod u+x free-swap.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;ol&gt;
&lt;li&gt;Exécutez-le :&lt;/li&gt;
&lt;/ol&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./free-swap.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;⚠️ Ne pas utiliser ce script si &lt;strong&gt;ZRAM&lt;/strong&gt; est activé sur votre système, car cela pourrait entraîner des comportements inattendus.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr /&gt;
&lt;h2 id="conclusion"&gt;&lt;a href="#conclusion" class="header-anchor"&gt;&lt;/a&gt;Conclusion
&lt;/h2&gt;&lt;p&gt;Vous venez de découvrir comment optimiser la gestion du swap sous Debian. Que ce soit via des commandes ou un script Bash, vous êtes désormais armé pour reprendre le contrôle de votre mémoire virtuelle.&lt;/p&gt;
&lt;p&gt;Et surtout, souvenez-vous : le swap, c'est bien... mais la RAM, c'est mieux ! 😉&lt;/p&gt;</description></item><item><title>OneDrive : Client Linux OpenSource</title><link>https://beta.slash-root.fr/onedrive-client-linux-opensource/</link><pubDate>Fri, 14 Jan 2022 14:56:22 +0100</pubDate><guid>https://beta.slash-root.fr/onedrive-client-linux-opensource/</guid><description>&lt;img src="https://beta.slash-root.fr/onedrive-client-linux-opensource/cover.jpg" alt="Featured image of post OneDrive : Client Linux OpenSource" /&gt;&lt;h2 id="contexte"&gt;&lt;a href="#contexte" class="header-anchor"&gt;&lt;/a&gt;Contexte
&lt;/h2&gt;&lt;p&gt;Dans le cadre de mon travail, j'ai récement migré sur Pop!_OS pour mon environnement du quotidien. Etant un utilisateur de plusieurs comptes OneDrive (perso &amp;amp; pro), il me fallait pouvoir synchroniser ceux-ci dans des dossiers différents de mon système.&lt;/p&gt;
&lt;p&gt;Par exemple :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Mon compte OneDrive perso dans &lt;code&gt;~/OneDrive_Perso&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Mon compte OneDrive pro dans &lt;code&gt;~/OneDrive_Pro&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Bien evidément, cela doit fonctionner en tant que service.&lt;/p&gt;
&lt;p&gt;Je suis tombé sur ce projet : &lt;a href="https://github.com/skilion/onedrive"&gt;https://github.com/skilion/onedrive&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Update 07/12/2023 :&lt;br /&gt;
Le projet utilisé dans cet article est stoppé.&lt;br /&gt;
Utiliser / Adapter avec celui-ci : &lt;a href="https://github.com/abraunegg/onedrive.git"&gt;https://github.com/abraunegg/onedrive.git&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;C'est un outil sous licence GPL3 permettant d'intéragir avec OneDrive sous Linux.&lt;/p&gt;
&lt;p&gt;Les fonctionnalités sont les suivantes : &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;State caching&lt;/li&gt;
&lt;li&gt;Real-Time file monitoring with Inotify&lt;/li&gt;
&lt;li&gt;Resumable uploads&lt;/li&gt;
&lt;li&gt;Support OneDrive for Business (part of Office 365)&lt;/li&gt;
&lt;li&gt;Shared folders (only OneDrive Personal)&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;J'ajouterai également qu'il est possible de faire du multi-comptes.&lt;/p&gt;
&lt;p&gt;C'est parfait car c'est mon besoin 🙂&lt;/p&gt;
&lt;h2 id="installation"&gt;&lt;a href="#installation" class="header-anchor"&gt;&lt;/a&gt;Installation
&lt;/h2&gt;&lt;p&gt;Pour information, j'ai réalisé cette installation sous Pop!_OS 21.10 mais celle-ci devrait fonctionner à partir des dérivés d'Ubuntu 18+. Pour Fedora, CentOS, ArchLinux, se référer directement à la page du projet cité plus haut.&lt;/p&gt;
&lt;p&gt;Tout d'abord l'installation des pré-requis :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo apt install git libcurl4-openssl-dev libsqlite3-dev snap snapd
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo snap install --classic dmd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Puis le clonage du projet et l'installation de l'outil :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git clone https://github.com/skilion/onedrive.git
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd onedrive
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;make
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo make install
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="configuration"&gt;&lt;a href="#configuration" class="header-anchor"&gt;&lt;/a&gt;Configuration
&lt;/h2&gt;&lt;p&gt;La configuration est optionnelle. Par défaut, tous les fichiers seront stockés dans &lt;code&gt;~/OneDrive&lt;/code&gt; et les fichiers/dossiers commençant par &lt;code&gt;.&lt;/code&gt; et &lt;code&gt;~&lt;/code&gt; seront ignorés.&lt;/p&gt;
&lt;p&gt;3 directives sont définissables :&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;sync_dir&lt;/code&gt; : Le répertoire où seront stockés les données.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;skip_file&lt;/code&gt; : Les fichiers / dossiers à ne pas synchroniser. L'utilisation des wildcards &lt;code&gt;*&lt;/code&gt; et &lt;code&gt;?&lt;/code&gt; sont autorisés. Le &lt;code&gt;|&lt;/code&gt; peut être employé pour séparer différents patterns.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;L'outil doit être relancé avec l'argument &lt;code&gt;--resync&lt;/code&gt; après une modification de la directive &lt;code&gt;skip_file&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;code&gt;sync_list&lt;/code&gt; : Spécifier les fichiers / dossiers à synchroniser. J'en parlerai dans un prochain article.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;L'outil doit être relancé avec l'argument &lt;code&gt;--resync&lt;/code&gt; après une modification de la directive &lt;code&gt;skip_file&lt;/code&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Comme je veux utiliser 2 configurations différentes (une perso et une pro), j'ai créé 1 répertoire pour chaque compte où seront stockés mes données respectives :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p ~/&lt;span style="color:#f92672"&gt;{&lt;/span&gt;OneDrive_Perso,OneDrive_Pro&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Ensuite, j'ai créé 2 dossiers de configuration (un dossier par compte) :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir -p ~/.config/&lt;span style="color:#f92672"&gt;{&lt;/span&gt;onedrive_perso,onedrive_pro&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;J'ai ensuite créé mes 2 fichiers de configurations (un fichier par compte).&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;OneDrive perso :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat &amp;gt; ~/.config/onedrive_perso/config &lt;span style="color:#e6db74"&gt;&amp;lt;&amp;lt; EOF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;# Directory where the files will be synced
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;sync_dir = &amp;#34;~/OneDrive_Perso&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;# Skip files and directories that match this pattern
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;skip_file = &amp;#34;.*|~*&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;OneDrive pro :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cat &amp;gt; ~/.config/onedrive_pro/config &lt;span style="color:#e6db74"&gt;&amp;lt;&amp;lt; EOF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;# Directory where the files will be synced
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;sync_dir = &amp;#34;~/OneDrive_Pro&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;# Skip files and directories that match this pattern
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;skip_file = &amp;#34;.*|~*&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#e6db74"&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id="initialisation"&gt;&lt;a href="#initialisation" class="header-anchor"&gt;&lt;/a&gt;Initialisation
&lt;/h2&gt;&lt;p&gt;L'étape suivante que j'ai réalisé a été de lier chaque configuration (perso et pro) à un compte OneDrive. Pour se faire j'ai exécuté dans un 1er temps la synchronisation de mon OneDrive perso :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;onedrive --monitor --confdir&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;~/.config/onedrive_perso&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Un lien est généré :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-shell" data-lang="shell"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Authorize this app visiting:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id&lt;span style="color:#f92672"&gt;=&lt;/span&gt;22c49a0d-d21c-4792-aed1-8f163c982546&amp;amp;scope&lt;span style="color:#f92672"&gt;=&lt;/span&gt;files.readwrite%20files.readwrite.all%20offline_access&amp;amp;response_type&lt;span style="color:#f92672"&gt;=&lt;/span&gt;code&amp;amp;redirect_uri&lt;span style="color:#f92672"&gt;=&lt;/span&gt;https://login.microsoftonline.com/common/oauth2/nativeclient
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Enter the response uri:
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;En visitant cette URL, une authentification sur le compte OneDrive désiré est demandé. Puis, viens une page blanche (ou noire suivant votre thème) :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="URI_init.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;J'ai copié l'URI de cette page en réponse à mon prompt &lt;code&gt;Enter the response uri:&lt;/code&gt; &lt;/p&gt;
&lt;p&gt;La synchro démarre (oui, j'aime bien watch dogs legion...) :&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="sync_init.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Ensuite, je teste mon compte OneDrive_Pro :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;onedrive --monitor --confdir&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;~/.config/onedrive_pro&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Il est important de libèrer le token office avant. J'étais, au préalablement, identifié sur mon compte perso.&lt;/p&gt;
&lt;p&gt;Pour cela, je me suis déconnecté avec mon navigateur internet de mon compte office perso précédement connecté à l'aide de l'URL suivante : &lt;a href="https://www.office.com/?auth=2"&gt;https://www.office.com/?auth=2&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="URI_pro.png" alt="" /&gt;&lt;/p&gt;
&lt;h2 id="5-services"&gt;&lt;a href="#5-services" class="header-anchor"&gt;&lt;/a&gt;5. Services
&lt;/h2&gt;&lt;p&gt;Lors de l'installation de l'outil un service a été créé : &lt;code&gt;/usr/lib/systemd/user/onedrive.service&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;J'ai décidé de garder ce service pour mon compte perso et d'en créer un second pour mon compte pro :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cp /usr/lib/systemd/user/onedrive.service /usr/lib/systemd/user/onedrive_pro.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;J'ai ensuite édité mon 1er service (onedrive perso) pour correspondre à sa configuration :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vi /usr/lib/systemd/user/onedrive.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Puis, j'ai modifié la ligne &lt;code&gt;ExecStart&lt;/code&gt; :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;ExecStart&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;/usr/local/bin/onedrive --monitor --confdir=&amp;#34;~/.config/onedrive_perso&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Et enfin la même modification pour mon serive OneDrive pro :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vi /usr/lib/systemd/user/onedrive_pro.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Cette fois-ci, j'ai modifié comme suit :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-ini" data-lang="ini"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#a6e22e"&gt;ExecStart&lt;/span&gt;&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;/usr/local/bin/onedrive --monitor --confdir=&amp;#34;~/.config/onedrive_pro&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pour terminer, j'ai activé mes 2 services :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl --user enable onedrive.service
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl --user enable onedrive_pro.service
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl --user start onedrive.service
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl --user start onedrive_pro.service
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="6-vérifications--logs"&gt;&lt;a href="#6-v%c3%a9rifications--logs" class="header-anchor"&gt;&lt;/a&gt;6. Vérifications / Logs
&lt;/h2&gt;&lt;p&gt;Pour vérifier le bon fonctionnement des services, j'utilise ces 2 commandes :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;journalctl --user-unit onedrive -f
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;journalctl --user-unit onedrive_pro -f
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="7-désinstallation"&gt;&lt;a href="#7-d%c3%a9sinstallation" class="header-anchor"&gt;&lt;/a&gt;7. Désinstallation
&lt;/h2&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo make uninstall
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;rm -rf ~/.config/onedrive*
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;</description></item><item><title>Supervision et autodiscover: Open Centreon Discovery</title><link>https://beta.slash-root.fr/supervision-et-autodiscover-open-centreon-discovery/</link><pubDate>Tue, 14 Dec 2021 11:03:02 +0100</pubDate><guid>https://beta.slash-root.fr/supervision-et-autodiscover-open-centreon-discovery/</guid><description>&lt;img src="https://beta.slash-root.fr/supervision-et-autodiscover-open-centreon-discovery/cover.png" alt="Featured image of post Supervision et autodiscover: Open Centreon Discovery" /&gt;&lt;h2 id="présentation"&gt;&lt;a href="#pr%c3%a9sentation" class="header-anchor"&gt;&lt;/a&gt;Présentation
&lt;/h2&gt;&lt;p&gt;Open Centreon Discover est un module indépendant qui permet l'autodiscover des équipements SNMP, de les ajouter à la plateforme Centreon à l'aide de CLAPI. &lt;/p&gt;
&lt;p&gt;OCD permet également un scan des réseaux en tâche de fond, et cerise sur la gateau, il est possible d'affecter automatiquement les templates en fonction de l'OS détecté.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Source: &lt;a href="https://www.sugarbug.fr/atelier/techniques/ihmweb/open-centreon-discovery/"&gt;L'atelier de Kermith&lt;/a&gt; et &lt;a href="https://github.com/romnvll/Open-Centreon-Discovery"&gt;Github du créateur&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="installation"&gt;&lt;a href="#installation" class="header-anchor"&gt;&lt;/a&gt;Installation
&lt;/h2&gt;&lt;h3 id="téléchargement-du-module"&gt;&lt;a href="#t%c3%a9l%c3%a9chargement-du-module" class="header-anchor"&gt;&lt;/a&gt;Téléchargement du module
&lt;/h3&gt;&lt;p&gt;Créer un dossier:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir /usr/share/discovery
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Récupérer le dépôt:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;git clone https://github.com/romnvll/Open-Centreon-Discovery.git
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="configuration-dapache"&gt;&lt;a href="#configuration-dapache" class="header-anchor"&gt;&lt;/a&gt;Configuration d&amp;rsquo;Apache
&lt;/h3&gt;&lt;p&gt;Pour qu'Apache reconnaisse OCD, il faut créer le fichier de configuration:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim /etc/httpd/conf.d/discovery.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Copiez ces lignes dans le fichier:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;###########################################&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Alias /discovery /usr/share/discovery/
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;LocationMatch ^/discovery/&lt;span style="color:#f92672"&gt;(&lt;/span&gt;.*&lt;span style="color:#ae81ff"&gt;\.&lt;/span&gt;php&lt;span style="color:#f92672"&gt;(&lt;/span&gt;/.*&lt;span style="color:#f92672"&gt;)&lt;/span&gt;?&lt;span style="color:#f92672"&gt;)&lt;/span&gt;$&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ProxyPassMatch fcgi://127.0.0.1:9042/usr/share/discovery/$1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;/LocationMatch&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ProxyTimeout &lt;span style="color:#ae81ff"&gt;300&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;Directory &lt;span style="color:#e6db74"&gt;&amp;#34;/usr/share/discovery&amp;#34;&lt;/span&gt;&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; DirectoryIndex index.php
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Options Indexes
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; AllowOverride all
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Order allow,deny
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Allow from all
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; Require all granted
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;IfModule mod_php5.c&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; php_admin_value engine Off
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &amp;lt;/IfModule&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; AddType text/plain hbs
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&amp;lt;/Directory&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;RedirectMatch ^/$ /discovery
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;###########################################&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;En fonction de votre configuration vous devrez modifier le port d'écoute de php-fpm (904x). Pour savoir quel port est utilisé: &lt;code&gt;netstat -paunt | grep php&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Redémarrez Apache:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl restart httpd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="installation-des-fichiers"&gt;&lt;a href="#installation-des-fichiers" class="header-anchor"&gt;&lt;/a&gt;Installation des fichiers
&lt;/h3&gt;&lt;p&gt;Déplacez vous dans le dossier téléchargé au préalable et copiez les fichiers dans son répertoire dédié:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd Open-Centreon-Discovery
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cp -r * /usr/share/discovery
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pour que le scan en tâche de fond puisse être réalisé, Apache nécessite les permissions sur ce dossier:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chown -R apache: /usr/share/discovery
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Modifiez le fichier de configuration d'OCD. Un fichier d'exemple de configuration existe déjà, je vous suggère de l'utiliser (vous pouvez utiliser le fichier d'exemple déjà présent mais il faudra le renommer):&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mv /usr/share/discovery/config&lt;span style="color:#f92672"&gt;{&lt;/span&gt;php.example,php&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim /usr/share/config.php
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Placez y le login/password d'un utilisateur ayant les droits de modification avec CLAPI, ainsi que le chemin de CLAPI (&lt;code&gt;admin&lt;/code&gt; dispose des droits, mais vous pouvez créer un utilisateur de service dédié à cela) :&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;//Vos identifiants centreon
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$config&lt;span style="color:#f92672"&gt;[&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;centreon&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;][&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;user&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;user&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$config&lt;span style="color:#f92672"&gt;[&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;centreon&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;][&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;password&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;password&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;//chemin de clapi
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;$config&lt;span style="color:#f92672"&gt;[&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;centreon&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;][&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#39;clapi&amp;#39;&lt;/span&gt;&lt;span style="color:#f92672"&gt;]&lt;/span&gt; &lt;span style="color:#f92672"&gt;=&lt;/span&gt; &lt;span style="color:#e6db74"&gt;&amp;#39;/usr/share/centreon/bin/centreon&amp;#39;&lt;/span&gt;;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id="scanner-manuellement-le-réseau"&gt;&lt;a href="#scanner-manuellement-le-r%c3%a9seau" class="header-anchor"&gt;&lt;/a&gt;Scanner manuellement le réseau
&lt;/h2&gt;&lt;h3 id="connexion-à-linterface-du-module"&gt;&lt;a href="#connexion-%c3%a0-linterface-du-module" class="header-anchor"&gt;&lt;/a&gt;Connexion à l&amp;rsquo;interface du module
&lt;/h3&gt;&lt;p&gt;Connectez vous à l'interface web d'OCD avec l'url &lt;code&gt;http://ip-centreon-central/discovery&lt;/code&gt; avec l'utilisateur que vous avez déclaré dans le fichier &lt;code&gt;config.php&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="index-OCD.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Vous arriverez alors sur la page suivante:&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="recherche-OCD.png" alt="" /&gt;&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Si à ce moment vous tombez sur une page blanche, il se peut que vous identifiants soient incorrects. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;u&gt;La découverte SNMP avec ce module ne prend en charge que la v1 et la v2c.&lt;/u&gt;&lt;/p&gt;
&lt;p&gt;Nous reviendrons plus tard sur le message concernant le scan en tâche de fond.&lt;/p&gt;
&lt;h3 id="configuration-du-réseau-à-scanner"&gt;&lt;a href="#configuration-du-r%c3%a9seau-%c3%a0-scanner" class="header-anchor"&gt;&lt;/a&gt;Configuration du réseau à scanner
&lt;/h3&gt;&lt;p&gt;Pour lancer votre premier scan afin de trouver des hôtes qui ne seraient pas intégrés à votre plateforme Centreon, vous devez entrer manuellement les informations nécessaires au scan: le réseau, la communauté snmp, la version et le timeout.&lt;/p&gt;
&lt;p&gt;Une fois ces paramètres rentrés, cliquez sur le bouton Scan.&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="conf-scan-rsx.png" alt="" /&gt;&lt;/p&gt;
&lt;h4 id="le-réseau"&gt;&lt;a href="#le-r%c3%a9seau" class="header-anchor"&gt;&lt;/a&gt;Le réseau
&lt;/h4&gt;&lt;p&gt;Il s'agit du sous-réseau en notation CIDR sur lequel vous voulez détecter des hôtes.&lt;/p&gt;
&lt;h4 id="la-communauté"&gt;&lt;a href="#la-communaut%c3%a9" class="header-anchor"&gt;&lt;/a&gt;La communauté
&lt;/h4&gt;&lt;p&gt;Il n'est pas forcément nécessaire de configurer le fichier de configuration snmpd.conf si vous utilisez la communauté &lt;code&gt;public&lt;/code&gt; avec ses paramètres par défaut, mais dans le cas où vous souhaiteriez utiliser une communauté personnalisé avec vos propres vues et ouvertures de MIB, petit rappel :&lt;/p&gt;
&lt;p&gt;Déplacez le fichier de conf par défaut et créez le votre:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mv /etc/snmp/snmpd.&lt;span style="color:#f92672"&gt;{&lt;/span&gt;conf,conf.default&lt;span style="color:#f92672"&gt;}&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Il est toujours utile de garder de côté ce fichier par défaut.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim /etc/snmp/snmpd.conf
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;agentAddress udp:161
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# sec.name source community&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;com2sec masecu ip.srv.centreon macommu
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# groupname securityModel securityName&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;group groupdesecu v1 masecu
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;group groupdesecu v2c masecu
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# name incl/excl subtree mask(optional)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;view mavue included .1.3.6.1.2.1.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;view mavue included .1.3.6.1.2.1.25.1.1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;# group context sec.model sec.level prefix read write notif&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;access groupedesecu &lt;span style="color:#e6db74"&gt;&amp;#34;&amp;#34;&lt;/span&gt; any noauth exact mavue none none
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Redémarrez snmpd:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;systemctl restart snmpd
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="la-version"&gt;&lt;a href="#la-version" class="header-anchor"&gt;&lt;/a&gt;La version
&lt;/h4&gt;&lt;p&gt;Il s'agit tout simplement de la version utilisée pour &lt;/p&gt;
&lt;h4 id="le-timeout"&gt;&lt;a href="#le-timeout" class="header-anchor"&gt;&lt;/a&gt;Le timeout
&lt;/h4&gt;&lt;p&gt;Si le scan est trop long vous pouvez redescendre ce timeout à des valeurs inférieures. Attention toutefois, un timeout trop court peut empêcher la découverte de certains équipements.&lt;/p&gt;
&lt;h3 id="le-résultat-du-scan"&gt;&lt;a href="#le-r%c3%a9sultat-du-scan" class="header-anchor"&gt;&lt;/a&gt;Le résultat du scan
&lt;/h3&gt;&lt;p&gt;Après avoir cliqué sur &lt;code&gt;Scan&lt;/code&gt;, au bout de quelques secondes vous arriverez sur cette page:&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="resultscan-1.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Cette liste affiche les hôtes découvrables (voir config snmp) et qui ne sont pas encore intégrés à Centreon.&lt;/p&gt;
&lt;p&gt;Vous pouvez cliquer sur le bouton &lt;code&gt;Magie&lt;/code&gt; et celui-ci affectera automatiquement le template d'hôte associé à l'os détecté.&lt;/p&gt;
&lt;p&gt;Il sera également possible de rajouter manuellement deux autres templates supplémentaires.&lt;/p&gt;
&lt;p&gt;Veillez également à sélectionner le bon poller, &lt;u&gt;&lt;strong&gt;cochez le ou les équipement(s) à exporter&lt;/strong&gt;&lt;/u&gt; puis cliquez sur &lt;code&gt;Valider&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="resultscan-2.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Deux choix s'offrent alors à vous:&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="resultscan-3.png" alt="" /&gt;&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Soit la configuration actuelle vous suffit, et vous pouvez cliquer sur &lt;code&gt;Appliquer et redémarrer le moteur&lt;/code&gt; ce qui revient à faire l'export de la nouvelle configuration dans l'interface Centreon;&lt;/li&gt;
&lt;li&gt;Soit vous cliquez sur &lt;code&gt;Appliquer dans centreon&lt;/code&gt; ce qui vous permet d'intégrer ces hôtes dans Centreon, sans pour autant appliquer de suite la nouvelle configuration. Libre à vous ensuite d'affiner selon vos besoins la configuration de vos hôtes dans l'interface web Centreon.&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;Par acquis de conscience vérifiez l'intégralité des hôtes et services déployés.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="background-autodiscover"&gt;&lt;a href="#background-autodiscover" class="header-anchor"&gt;&lt;/a&gt;Background autodiscover
&lt;/h2&gt;&lt;p&gt;Le scan manuel reste un outil pratique pour des besoins ponctuels ou une petite structure, mais lorsque vos besoins couvrent un large panel d'équipements, réseaux et communautés différentes, Open Centreon Discovery embarque un autre outil qui va vous simplifier la vie et vous faire gagner du temps: la découverte SNMP en tâche de fond.&lt;/p&gt;
&lt;h3 id="ajout-de-réseaux-à-scanner"&gt;&lt;a href="#ajout-de-r%c3%a9seaux-%c3%a0-scanner" class="header-anchor"&gt;&lt;/a&gt;Ajout de réseaux à scanner
&lt;/h3&gt;&lt;p&gt;Il faut au préalable venir écrire les réseaux à scanner dans le fichier de configuration d'OCD:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim /usr/share/discovery/config.php
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La variable &lt;code&gt;$config[&amp;#039;backGroundScanUse&amp;#039;]&lt;/code&gt; est activé par défaut. C'est elle qui défini l'activation ou l'arrêt du processus.&lt;/p&gt;
&lt;p&gt;La variable &lt;code&gt;$config[&amp;#039;backGroundRoot&amp;#039;]&lt;/code&gt; permet de déclarer le chemin où viendra s'enregistrer le fichier de résultat du scan ( &lt;code&gt;resultScan&lt;/code&gt; ). &lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Attention&lt;/strong&gt;: si vous modifiez ce chemin, veillez à bien donner les droits nécessaires au fonctionnement du backgroundScan:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;L'application de tâche de fond doit avoir les droits en lecture/écriture.&lt;/li&gt;
&lt;li&gt;L'application web nécessite les droits en lecture.&lt;/li&gt;
&lt;/ul&gt;
&lt;/blockquote&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;//pour le scan BackGround

//activation du scan backGround pour les /16 et plus : true or false
$config[&amp;#39;backGroundScanUse&amp;#39;] = true ;
//chemin de l&amp;#39;executable scanBackGround

$config[&amp;#39;backGroundRoot&amp;#39;] = &amp;#39;/usr/share/discovery&amp;#39;;

$config[&amp;#39;backGroundScan&amp;#39;][0] = array(&amp;#34;network&amp;#34; =&amp;gt; &amp;#34;192.168.1.0/24&amp;#34;,
 &amp;#34;community&amp;#34;=&amp;gt;&amp;#34;public&amp;#34;,
 &amp;#34;version&amp;#34;=&amp;gt;&amp;#34;2&amp;#34; );

$config[&amp;#39;backGroundScan&amp;#39;][1] = array(&amp;#34;network&amp;#34; =&amp;gt; &amp;#34;192.168.4.0/24&amp;#34;,
 &amp;#34;community&amp;#34;=&amp;gt;&amp;#34;macommuperso&amp;#34;,
 &amp;#34;version&amp;#34;=&amp;gt;&amp;#34;2&amp;#34; );
&lt;/code&gt;&lt;/pre&gt;&lt;h3 id="planifier-la-tâche"&gt;&lt;a href="#planifier-la-t%c3%a2che" class="header-anchor"&gt;&lt;/a&gt;Planifier la tâche
&lt;/h3&gt;&lt;p&gt;Après avoir configuré vos réseaux, il est temps de planifier vos scans.&lt;/p&gt;
&lt;p&gt;Tout d'abord, tester la commande qui exécute le scan:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd /usr/share/discovery &lt;span style="color:#f92672"&gt;&amp;amp;&amp;amp;&lt;/span&gt; /usr/bin/php -q backGroundScan.php
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le &lt;code&gt;cd&lt;/code&gt; ici est indispensable. Le code php étant rédigé avec des chemins relatifs il est nécessaire de se placer dans le dossier &lt;code&gt;discovery&lt;/code&gt;.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;ATTENTION&lt;/strong&gt;: après avoir testé manuellement la commande il se peut que les droits du fichier resulScan soit attribué à l'utilisateur qui a lancé la commande. Il est indispensable de rendre apache propriétaire du fichier!!!&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chown apache: resulScan
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/blockquote&gt;
&lt;p&gt;Au bout de quelques secondes vous devriez voir apparaitre vos hôtes sur l'interface web d'OCD&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" decoding="async" src="resultscan-4.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Cliquez ensuite sur &lt;code&gt;Go&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Vous arriverez alors sur la même page que le scan manuel où vos hôtes seront listés, avec le bouton &lt;code&gt;magie&lt;/code&gt; pour associer vos templates.&lt;/p&gt;
&lt;p&gt;Merci à &lt;a href="https://github.com/romnvll/Open-Centreon-Discovery"&gt;romnvll&lt;/a&gt;, qui a créé ce module et qui m'a aidé à sa mise en place, et merci à &lt;a href="https://www.sugarbug.fr/atelier/techniques/ihmweb/open-centreon-discovery/"&gt;Kermith&lt;/a&gt; pour ses tutos très éclairés qui m'ont inspiré.&lt;/p&gt;</description></item><item><title>Supervision: tour d’horizon avec CentCTL pour Centreon Open Source.</title><link>https://beta.slash-root.fr/supervision-tour-dhorizon-avec-centctl-pour-centreon-open-source/</link><pubDate>Fri, 26 Nov 2021 14:51:09 +0100</pubDate><guid>https://beta.slash-root.fr/supervision-tour-dhorizon-avec-centctl-pour-centreon-open-source/</guid><description>&lt;img src="https://beta.slash-root.fr/supervision-tour-dhorizon-avec-centctl-pour-centreon-open-source/cover.png" alt="Featured image of post Supervision: tour d’horizon avec CentCTL pour Centreon Open Source." /&gt;&lt;h2 id="historique"&gt;&lt;a href="#historique" class="header-anchor"&gt;&lt;/a&gt;Historique
&lt;/h2&gt;&lt;p&gt;CentCTL est un exécutable indépendant créé en 2020 par Mélissa Bertin au sein de la société &lt;a href="https://www.ypsi.fr/"&gt;YPSI&lt;/a&gt;. Tout comme CLAPI, il utilise l'API pour réaliser la majeure partie des tâches sur Centreon en ligne de commande. CLAPI nécessite d'être exécuté localement sur le serveur Centreon Central. Vous aurez donc besoin d'une connexion SSH pour pouvoir l'administrer depuis votre poste de travail. De plus, les commandes nécessitent systématiquement une authentification avec mot de passe en clair, et a parfois une syntaxe de commande peu intuitive.&lt;/p&gt;
&lt;p&gt;CentCTL utilise l'API REST v1 pour opérer les différentes tâches d'administration. En ayant seulement accès à l'API, on peut administrer notre solution de supervision sans connexion SSH. Aucunement besoin d'interface web, seul un utilisateur avec les droits d'accès à l'API est nécessaire. Le module est développé en langage Go, ce qui le rend multiplateforme et plaira donc à la fois à nos amis pingouins comme aux croqueurs de pommes et aux afficionados des solutions Microsoft. &lt;/p&gt;
&lt;h2 id="centreon--centctl-limportance-de-la-convention-de-nommage"&gt;&lt;a href="#centreon--centctl-limportance-de-la-convention-de-nommage" class="header-anchor"&gt;&lt;/a&gt;Centreon &amp;amp; CentCTL: l&amp;rsquo;importance de la convention de nommage.
&lt;/h2&gt;&lt;p&gt;Il est très important d'adopter une convention de nommage précise et de s'y tenir!!! Il est très facile de filtrer les éléments dont vous avez besoin grâce à des regex dans CentCTL. Mais pour cela, il faut adopter une convention assez précise.&lt;/p&gt;
&lt;p&gt;Ci-dessous je détaille une proposition de convention de nommage.&lt;/p&gt;
&lt;h3 id="les-commandes"&gt;&lt;a href="#les-commandes" class="header-anchor"&gt;&lt;/a&gt;Les commandes
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;ChC = Check Command&lt;/li&gt;
&lt;li&gt;NoC = Notification Command&lt;/li&gt;
&lt;li&gt;DiC = Discovery Command&lt;/li&gt;
&lt;li&gt;MiC = Miscellaneous Command&lt;/li&gt;
&lt;li&gt;CoC = Connectors Command&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Puis ajoutez le nom de la commande. Prenez soit l'objet utilisé par le plugin Centreon, Nagios ou autre pour les commandes de check (par exemple check_ping), soit un descriptif très succinct comme nous pouvons l'avoir de base dans les commandes de notification déjà intégrées à Centreon (host-notify-by-email).&lt;/p&gt;
&lt;p&gt;Le résultat donnera quelque chose comme:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChC_CHECK_PING&lt;/li&gt;
&lt;li&gt;NoC_HOST_EMAIL&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si votre commande est spécifiquement adapté à un seul type d'OS, alors il faudra le préciser avant le nom:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;ChC_OS_ORACLE8_DISK_SPACE_VAR&lt;/li&gt;
&lt;li&gt;ChC_OS_WINSRV16_DISK_SPACE_D&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ect... Libre à vous d'imaginer le plus parlant. &lt;/p&gt;
&lt;h3 id="les-templates"&gt;&lt;a href="#les-templates" class="header-anchor"&gt;&lt;/a&gt;Les templates
&lt;/h3&gt;&lt;h4 id="les-templates-de-configuration"&gt;&lt;a href="#les-templates-de-configuration" class="header-anchor"&gt;&lt;/a&gt;Les templates de configuration
&lt;/h4&gt;&lt;p&gt;Une bonne pratique est de créer, pour les services et pour les hôtes, des templates de configuration (pour configurer d'autres templates).&lt;/p&gt;
&lt;p&gt;Exemple: template de configuration de notifications.&lt;/p&gt;
&lt;p&gt;Lors de la création d'un modèle d'hôte ou de service, liez directement le Template de configuration de notifications, et vous n'aurez pas à configurer les notifications pour ce template. Ce qui, grâce aux relations avec les modèles d'hôte ou de service fonctionnels, évitera les manipulations trop lourdes et trop contraignantes dans leurs nombres pour venir modifier un paramètre concernant les notifications. Vous changez votre paramètre directement dans le template de configuration de notification et cela s'applique absolument à tout les templates liés, se répercutant donc sur les hôtes et services. &lt;/p&gt;
&lt;p&gt;Lors de la création de ce template, ne configurez que les paramètres notifications (ce qui correspond à l'onglet du même nom dans l'interface web).&lt;/p&gt;
&lt;p&gt;Par exemple, ces templates se nommeront ainsi:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Nom =&amp;gt; STC_NOTIF = Service Template Configuration&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Nom =&amp;gt; HTC_NOTIF = Host Template Configuration&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Vous pouvez mettre la même chose dans l'alias. &lt;/p&gt;
&lt;p&gt;Libre à vous de créer les template de configuration de votre choix, par exemple plusieurs templates de configuration pour vos différentes communautés snmp, etc... Adaptez selon vos besoins.&lt;/p&gt;
&lt;h4 id="les-templates-de-service"&gt;&lt;a href="#les-templates-de-service" class="header-anchor"&gt;&lt;/a&gt;Les templates de service
&lt;/h4&gt;&lt;p&gt;Ces templates de baseront sur le nom de la commande qu'ils représentent:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nom =&amp;gt; ST_ChC_OS_DEB10_DISK_SPACE_VAR (ST pour Service Template)
&lt;ul&gt;
&lt;li&gt;Alias =&amp;gt; SFT_ChC_OS_DEB10_DISK_SPACE_VAR (SFT pour Service From Template)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Ici, définir un alias correctement peut vous permettre de différencier sur la page des services par hôtes, les services hérités d'un modèle de service, et ceux créés manuellement sans passer par un template.&lt;/p&gt;
&lt;h4 id="les-templates-dhôte"&gt;&lt;a href="#les-templates-dh%c3%b4te" class="header-anchor"&gt;&lt;/a&gt;Les templates d&amp;rsquo;hôte
&lt;/h4&gt;&lt;p&gt;Décrivez succinctement l'OS et la fonction de l'hôte en question:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nom =&amp;gt; HT_OS_WINSRV19_WEB_SRV (HT pour Host Template)
&lt;ul&gt;
&lt;li&gt;Alias =&amp;gt; HFT_OS_WINSRV19_WEB_SRV (HFT pour Host From Template)&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="les-hôtes"&gt;&lt;a href="#les-h%c3%b4tes" class="header-anchor"&gt;&lt;/a&gt;Les hôtes
&lt;/h3&gt;&lt;p&gt;Le nom de l'hôte supervisé sera basé sur le nom de la société et/ou sa localisation (si vous supervisez plusieurs entreprises ou sites), son os, sa fonction, éventuellement le service auquel il est affecté et un numéro (utile si vous supervisez de très nombreux postes de travail ou une ferme de serveurs)&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Nom: Aukfood_Linux_Server_Web_001
&lt;ul&gt;
&lt;li&gt;ou encore: CrdAgr_RSY-PlaceVendee_Win10_Direction_001&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Pour l'alias, inscrivez simplement son FQDN.&lt;/p&gt;
&lt;h3 id="les-services"&gt;&lt;a href="#les-services" class="header-anchor"&gt;&lt;/a&gt;Les services
&lt;/h3&gt;&lt;p&gt;Si vous créez un service automatiquement lors de la création d'un hôte en relation avec un template d'hote et des templates de service alors celui ci portera le nom de l'alias donné au template de service:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;SFT_ChC_CHECK_PING&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Si vous créez un service manuellement sans passer par un template:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;S_ChC_CHECK_PING&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="pourquoi-tout-ça"&gt;&lt;a href="#pourquoi-tout-%c3%a7a" class="header-anchor"&gt;&lt;/a&gt;Pourquoi tout ça?
&lt;/h3&gt;&lt;p&gt;Et bien, lorsque vous allez utiliser des commandes CentCTL par la suite pour créer des listes à utiliser dans un script pour automatiser un déploiement par exemple, vous n'aurez qu'à filtrer avec un peu de regex des ensembles d'éléments, rediriger le flux de sortie dans un fichier, un peu de substitution massive par de la regex (encore) dans vim et le tour est joué. J'y reviendrai plus tard.&lt;/p&gt;
&lt;h2 id="préparer-le-poste-de-travail"&gt;&lt;a href="#pr%c3%a9parer-le-poste-de-travail" class="header-anchor"&gt;&lt;/a&gt;Préparer le poste de travail
&lt;/h2&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;&lt;em&gt;Le reste de cet article décrit des procédures qui ont été réalisées sous Rocky Linux 8.4.&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="téléchargement-de-centctl"&gt;&lt;a href="#t%c3%a9l%c3%a9chargement-de-centctl" class="header-anchor"&gt;&lt;/a&gt;Téléchargement de CentCTL
&lt;/h3&gt;&lt;p&gt;Créer un dossier dans lequel récupérer CentCTL puis télécharger la dernière version:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;mkdir $HOME/centctl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;cd $HOME/centctl
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;wget https://github.com/YPSI-SAS/centctl/releases/download/v2.5/centctl_linux_amd64 -O centctl
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Rendre ce fichier exécutable:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;chmod +x centctl
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="préparation-de-la-commande"&gt;&lt;a href="#pr%c3%a9paration-de-la-commande" class="header-anchor"&gt;&lt;/a&gt;Préparation de la commande
&lt;/h3&gt;&lt;p&gt;Configurer la variable d'environnement CENTCTL_CONF avec le chemin et le nom du fichier de configuration nommé &lt;code&gt;centctl.yaml&lt;/code&gt;. Modifier le &lt;code&gt;.bashrc&lt;/code&gt; de l'utilisateur qui utilisera CentCTL avec la ligne suivante en bas du fichier:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;export CENTCTL_CONF&lt;span style="color:#f92672"&gt;=&lt;/span&gt;/home/USER/centctl/centctl.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;em&gt;USER étant votre nom d'utilisateur, bien entendu !&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Configurer l'auto-complétion :&lt;/p&gt;
&lt;p&gt;Si le paquet n'est pas installé:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;dnf install bash-completion
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Puis exécuter les commandes:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;source ~/.bashrc
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;type _init_completion
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Si la commande réussi, on peut passer à la suite, sinon:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Dans le .bashrc, écrivez cette ligne de commande en bas du fichier:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;source /usr/share/bash-compltion/bash_completion
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Rechargez votre shell avec &lt;code&gt;source .bashrc&lt;/code&gt; puis vérifiez que la complétion et correctement installée avec la commande &lt;code&gt;type _init_completion&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Pour terminer, ajouter le script de complétion dans le répertoire &lt;code&gt;/etc/bash_completion.d&lt;/code&gt;:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;sudo su
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/home/USER/centctl/centctl completion bash &amp;gt; /etc/bash_completion.d/centctl
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="configuration-de-centctl"&gt;&lt;a href="#configuration-de-centctl" class="header-anchor"&gt;&lt;/a&gt;Configuration de CentCTL
&lt;/h3&gt;&lt;p&gt;Il faut maintenant construire de fichier de configuration &lt;code&gt;centctl.yaml&lt;/code&gt;. &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim centctl.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Pour déclarer un serveur, utilisez la configuration ci-dessous en remplaçant les mots en &lt;code&gt;MAJUSCULE&lt;/code&gt;.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;NAMESERVER&lt;/code&gt; c'est le nom du serveur à utiliser avec le flag &lt;code&gt;--server&lt;/code&gt;. ATTENTION: le nom du serveur doit être unique.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;URL&lt;/code&gt;: c'est l'adresse utilisée pour l'accès à l'interface web de Centreon au format: &lt;a href="https://monserveurcentreon.fr"&gt;https://monserveurcentreon.fr&lt;/a&gt; (ou avec l'IP). ATTENTION: si l'url n'est pas sécurisée, mettre &lt;strong&gt;http&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;insecure&lt;/code&gt; est utilisé quand l'URL du server est en &lt;strong&gt;https&lt;/strong&gt;. Le flag est le même ( &lt;code&gt;--insecure&lt;/code&gt;) pour forcer la connexion.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LOGIN&lt;/code&gt; est le login &lt;strong&gt;&lt;u&gt;avec les droits d'accès RestAPI&lt;/u&gt;&lt;/strong&gt; utilisé pour la connexion au serveur. CONSEIL: utiliser &lt;strong&gt;admin&lt;/strong&gt; qui est automatiquement autorisé pour l'API Rest.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PASSWORD&lt;/code&gt; est le mot de passe de l'utilisateur&lt;/li&gt;
&lt;li&gt;&lt;code&gt;VERSION&lt;/code&gt; est la version du Rest API (v1 ou v2)&lt;/li&gt;
&lt;li&gt;&lt;code&gt;default&lt;/code&gt; défini le server par défaut auquel se connecter&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Exemple de fichier de configuration:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;servers:
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - server: &lt;span style="color:#e6db74"&gt;&amp;#34;centreon-centos&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; url: &lt;span style="color:#e6db74"&gt;&amp;#34;https://centreon21.aukfood.fr&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; insecure: true
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; login: &lt;span style="color:#e6db74"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; password: &lt;span style="color:#e6db74"&gt;&amp;#34;Pa55word&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; version: &lt;span style="color:#e6db74"&gt;&amp;#34;v1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; default: true
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; - server: &lt;span style="color:#e6db74"&gt;&amp;#34;centreon-rocky&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; url: &lt;span style="color:#e6db74"&gt;&amp;#34;http://192.168.1.222/centreon&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; login: &lt;span style="color:#e6db74"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; password: &lt;span style="color:#e6db74"&gt;&amp;#34;azerty666&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; version: &lt;span style="color:#e6db74"&gt;&amp;#34;v1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Pour rappel CentCTL utilise la V1 de Rest API.&lt;/strong&gt;&lt;/p&gt;
&lt;h3 id="tester-la-configuration"&gt;&lt;a href="#tester-la-configuration" class="header-anchor"&gt;&lt;/a&gt;Tester la configuration
&lt;/h3&gt;&lt;blockquote&gt;
&lt;p&gt;Pour exécuter les commandes &lt;code&gt;./centctl&lt;/code&gt;, se placer dans le répertoire &lt;code&gt;centctl&lt;/code&gt; &lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Un test tout simple qui permet de voir si la configuration est bonne:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos list host
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Voici le résultat, au format json par défaut:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-json" data-lang="json"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;{
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;server&amp;#34;&lt;/span&gt;: {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;centreon-centos&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;hosts&amp;#34;&lt;/span&gt;: [
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; {
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;id&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;23&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;name&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;Aukfood_Rocky_Client_001&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;alias&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;RockyLinux.aukfood.fr&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;address&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;192.168.1.148&amp;#34;&lt;/span&gt;,
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; &lt;span style="color:#f92672"&gt;&amp;#34;activate&amp;#34;&lt;/span&gt;: &lt;span style="color:#e6db74"&gt;&amp;#34;1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ]
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; }
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;}
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;D'autres formats sont disponibles avec le flag &lt;code&gt;--output&lt;/code&gt; en fin de commande:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos list host --output yaml
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos list host --output csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos list host --output text
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;D'autres options sont disponibles, comme filtrer avec des regex... Rendez-vous sur la page d'aide &lt;code&gt;/.centctl --help&lt;/code&gt;&lt;/p&gt;
&lt;h3 id="exporter-les-configurations"&gt;&lt;a href="#exporter-les-configurations" class="header-anchor"&gt;&lt;/a&gt;Exporter les configurations
&lt;/h3&gt;&lt;p&gt;La migration de la configuration de la plateforme Centreon est possible avec CentCTL, même par exemple depuis la 20.10 vers une version supérieure comme la 21.10.&lt;/p&gt;
&lt;p&gt;Personnellement je préfère éviter d'exporter toute la configuration d'un coup surtout si celle-ci est importante, j'ai été confronté à certains problèmes lors de test. Je préfère être méticuleux et catégoriser.&lt;/p&gt;
&lt;h4 id="la-configuration-du-moteur-centreon"&gt;&lt;a href="#la-configuration-du-moteur-centreon" class="header-anchor"&gt;&lt;/a&gt;La configuration du moteur Centreon
&lt;/h4&gt;&lt;blockquote&gt;
&lt;p&gt;J'utilise le flag &lt;code&gt;-r ^.*&lt;/code&gt; pour tout selectionner mais le flag &lt;code&gt;--all&lt;/code&gt; marche très bien aussi.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos export engineCFG -r ^.* -f engine.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="les-ressources-du-poller"&gt;&lt;a href="#les-ressources-du-poller" class="header-anchor"&gt;&lt;/a&gt;Les ressources du poller
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos export resourceCFG -r ^.* -f ressources.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="les-contactsutilisateurs"&gt;&lt;a href="#les-contactsutilisateurs" class="header-anchor"&gt;&lt;/a&gt;Les contacts/utilisateurs
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos export contact -r ^.* -f contacts.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Les paramètres de notification ne seront pas exportés, attention lors de l'importation à les configurer de nouveau à la main. En effet, l'API REST v1 ne prend pas en charge ces paramètres et la v2 ne supporte pas les contacts.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h4 id="les-commandes-1"&gt;&lt;a href="#les-commandes-1" class="header-anchor"&gt;&lt;/a&gt;Les commandes
&lt;/h4&gt;&lt;p&gt;Exportez les commandes:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos export commands -r ^ChC -f check_commands.csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos export commands -r ^NoC -f notification_commands.csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#f92672"&gt;(&lt;/span&gt;etc...&lt;span style="color:#f92672"&gt;)&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="les-templates-1"&gt;&lt;a href="#les-templates-1" class="header-anchor"&gt;&lt;/a&gt;Les Templates
&lt;/h4&gt;&lt;h5 id="les-templates-de-notification"&gt;&lt;a href="#les-templates-de-notification" class="header-anchor"&gt;&lt;/a&gt;Les templates de notification
&lt;/h5&gt;&lt;p&gt;Exportez les templates de notifications des services et des hôtes à part du reste des templates:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos export template service -r ^STC -f conf_serv_temp.csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos export template host -r ^HTC -f conf_host_temp.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h5 id="les-templates-dhôte-1"&gt;&lt;a href="#les-templates-dh%c3%b4te-1" class="header-anchor"&gt;&lt;/a&gt;Les templates d&amp;rsquo;hôte
&lt;/h5&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos export template host -r ^HT -f host_temp.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h5 id="les-templates-de-service-1"&gt;&lt;a href="#les-templates-de-service-1" class="header-anchor"&gt;&lt;/a&gt;Les templates de service
&lt;/h5&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos export template service -r ^ST -f serv_temp.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="les-hôtes-1"&gt;&lt;a href="#les-h%c3%b4tes-1" class="header-anchor"&gt;&lt;/a&gt;Les hôtes
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos export host -r ^.* -f hosts.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h4 id="les-services-1"&gt;&lt;a href="#les-services-1" class="header-anchor"&gt;&lt;/a&gt;Les services
&lt;/h4&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt; ./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-centos export service -r ^*$ -f services.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="importer-vos-configurations"&gt;&lt;a href="#importer-vos-configurations" class="header-anchor"&gt;&lt;/a&gt;Importer vos configurations
&lt;/h3&gt;&lt;p&gt;Cet ordre d'importation me parait le plus logique en fonction des dépendances/héritages qu'il peut y avoir. &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;La configuration du moteur&lt;/li&gt;
&lt;li&gt;Les ressources du poller&lt;/li&gt;
&lt;li&gt;Les templates de configuration&lt;/li&gt;
&lt;li&gt;Les commandes&lt;/li&gt;
&lt;li&gt;Les utilisateurs&lt;/li&gt;
&lt;li&gt;Les templates d'hôtes&lt;/li&gt;
&lt;li&gt;Les templates de services&lt;/li&gt;
&lt;li&gt;Les hôtes&lt;/li&gt;
&lt;li&gt;Les services&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;Si différents éléments n'ont pas tous les paramètres renseignés car ceux-ci sont hérités de templates, alors de nombreux messages de warning apparaitront, mais ne gêneront pas le processus.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky import -f engine.csv 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky import -f ressources.csv 
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky import -f contacts.csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky import -f check_commands.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;(ect... pour les commandes)&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky import -f conf_host_temp.csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky import -f conf_serv_temp.csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky import -f host_temp.csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky import -f serv_temp.csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky import -f hosts.csv
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky import -f services.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="déployer-la-configuration"&gt;&lt;a href="#d%c3%a9ployer-la-configuration" class="header-anchor"&gt;&lt;/a&gt;Déployer la configuration
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky import -f engine.csv 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Il peut être préférable de vérifier la configuration dans l'interface web plutot que d'appliquer directement lors d'une grosse importation. &lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id="centctl-de-la-commande-à-lhôte"&gt;&lt;a href="#centctl-de-la-commande-%c3%a0-lh%c3%b4te" class="header-anchor"&gt;&lt;/a&gt;CentCTL: de la commande à l&amp;rsquo;hôte.
&lt;/h2&gt;&lt;p&gt;Les manipulations qui vont suivre peuvent paraitre longues et fastidieuses comparé à la simplicité d'utilisation de l'interface web Centreon. En effet, pour un besoin ponctuel, il est préférable de passer par l'interface.&lt;/p&gt;
&lt;p&gt;Mais ces commandes sont nécessaires dans le cadre de la réalisation d'un script pour automatiser et accélérer la configuration de nombreux éléments. &lt;/p&gt;
&lt;h3 id="créer-une-commande"&gt;&lt;a href="#cr%c3%a9er-une-commande" class="header-anchor"&gt;&lt;/a&gt;Créer une commande
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky add command -l &lt;span style="color:#e6db74"&gt;&amp;#34;\$USER1&lt;/span&gt;$&lt;span style="color:#e6db74"&gt;/check_ping -H \$HOSTADDRESS&lt;/span&gt;$&lt;span style="color:#e6db74"&gt; -w \$_SERVICEWARNING&lt;/span&gt;$&lt;span style="color:#e6db74"&gt; \$_SERVICECRITICAL&lt;/span&gt;$&lt;span style="color:#e6db74"&gt; -p \$_SERVICENBPACKETS&lt;/span&gt;$&lt;span style="color:#e6db74"&gt; -4&amp;#34;&lt;/span&gt; -n ChC_CHECK_PING -t check
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Il est impératif de banaliser le premier $ des macros avec un antislash sinon le shell va interpréter comme une variable vide et ça ne va pas correctement s'implanter dans Centreon.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="créer-un-template-de-service"&gt;&lt;a href="#cr%c3%a9er-un-template-de-service" class="header-anchor"&gt;&lt;/a&gt;Créer un template de service:
&lt;/h3&gt;&lt;p&gt;Exemple avec la commande check_ping:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky add template service -a SFT_ChC_CHECK_PING -n ST_ChC_CHECK_PING -t CST_NOTIF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Configurer les paramètres généraux:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n ST_ChC_CHECK_PING -p macro --value&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;WARNING|3,40%|0|seuil d&amp;#39;alerte 1&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n ST_ChC_CHECK_PING -p macro --value&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;CRITICAL|5,60%|0|seuil d&amp;#39;alerte 2&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n ST_ChC_CHECK_PING -p macro --value&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;NBPACKETS|5|0|nombre de paquets&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n ST_ChC_CHECK_PING -p check_period -v 24x7
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n ST_ChC_CHECK_PING -p normal_check_interval -v &lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n ST_ChC_CHECK_PING -p retry_check_interval -v &lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n ST_ChC_CHECK_PING -p active_checks_enabled -v &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n ST_ChC_CHECK_PING -p passive_checks_enabled -v &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n ST_ChC_CHECK_PING -p is_volatile -v &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Configurer les paramètres de notification:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Nous allons utiliser un autre template, dédié à la configuration des notifications&lt;/p&gt;
&lt;/blockquote&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n STC_NOTIF -p notifications_enabled -v &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n STC_NOTIF -p contact -v &lt;span style="color:#e6db74"&gt;&amp;#34;admin&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n STC_NOTIF -p contactgroup -v &lt;span style="color:#e6db74"&gt;&amp;#34;Supervisors&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;/centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n STC_NOTIF -p notification_interval -v &lt;span style="color:#ae81ff"&gt;10&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n STC_NOTIF -p notification_period -v 24x7
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n STC_NOTIF -p notification_options -v &lt;span style="color:#e6db74"&gt;&amp;#34;w,u,c,r,f,s&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template service -n STC_NOTIF -p recovery_notification_delay -v &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Pour les temps définis à zero il n'est pas utile de taper la commande&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="créer-un-template-dhôte"&gt;&lt;a href="#cr%c3%a9er-un-template-dh%c3%b4te" class="header-anchor"&gt;&lt;/a&gt;Créer un template d&amp;rsquo;hôte
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky add template host -a HFT_DEBIAN_WEB_SERVER -n HT_DEBIAN_WEB_SERVER -t HTC_NOTIF
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template host -n HT_DEBIAN_WEB_SERVER -p snmp_community -v public
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template host -n HT_DEBIAN_WEB_SERVER -p snmp_version -v 2c
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template host -n HT_DEBIAN_WEB_SERVER -p timezone -v Europe/Paris
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template host -n HT_DEBIAN_WEB_SERVER -p check_command -v ChC_HOSTALIVE
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template host -n HT_DEBIAN_WEB_SERVER -p max_check_attempts -v &lt;span style="color:#ae81ff"&gt;5&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template host -n HT_DEBIAN_WEB_SERVER -p check_interval -v &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template host -n HT_DEBIAN_WEB_SERVER -p retry_check_interval -v &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template host -n HT_DEBIAN_WEB_SERVER -p active_checks_enabled -v &lt;span style="color:#ae81ff"&gt;1&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template host -n HT_DEBIAN_WEB_SERVER -p passive_checks_enabled -v &lt;span style="color:#ae81ff"&gt;0&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;Ici la commande ChC_HOSTALIVE liée au template ne comporte pas de macros perso ni d'arguments. Dans le cas où vous auriez des macros à configurer, les valeurs de celles-ci se déclarent de la même manière que pour les macros des templates de service.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Les commandes pour les paramètres de notifications sont les mêmes que pour les templates de service.&lt;/p&gt;
&lt;p&gt;Pour lier des templates de service:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify template host -n HT_DEBIAN_WEB_SERVER -p linkedservice -v ST_ChC_CHECK_PING
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Répéter la commande autant de fois qu'il y a de templates de service à lier.&lt;/p&gt;
&lt;h3 id="créer-un-hôte"&gt;&lt;a href="#cr%c3%a9er-un-h%c3%b4te" class="header-anchor"&gt;&lt;/a&gt;Créer un hôte
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky add host -i 192.168.1.148 -a websrv01.aukfood.fr -n Aukfood_Debian_Web_Server_001 -p Central -t HT_DEBIAN_WEB_SERVER 
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Par défaut, l'ajout de l'hôte par CentCTL créé automatiquement les services liés aux templates.&lt;/p&gt;
&lt;p&gt;Pour définir d'autres paramètres (soit non définis dans un template d'hôte ou volonté de le changer, soit pour configurer l'hôte manuellement sans relation avec un template), se référer aux commandes listées plus haut.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky modify host -n Aukfood_Debian_Web_Server_001 -p .....
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="créer-un-service"&gt;&lt;a href="#cr%c3%a9er-un-service" class="header-anchor"&gt;&lt;/a&gt;Créer un service
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky add service -n Aukfood_Debian_Web_Server_001 -t ST_ChC_CHECK_PING -d SFT_ChC_CHECK_PING
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;blockquote&gt;
&lt;p&gt;-n nom de l'hôte, -t template de service, -d description (nom du service/alias du template de service)&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h3 id="pour-aller-plus-loin"&gt;&lt;a href="#pour-aller-plus-loin" class="header-anchor"&gt;&lt;/a&gt;Pour aller plus loin
&lt;/h3&gt;&lt;p&gt;De nombreux autres paramètres n'ont pas été abordés! Pour en découvrir d'autres, c'est par &lt;a href="https://github.com/YPSI-SAS/centctl/tree/master/exemple"&gt;ici&lt;/a&gt; !!!&lt;/p&gt;
&lt;h2 id="exemple-pratique-automatiser-le-déploiement-dun-nouveau-service-sur-tout-un-parc"&gt;&lt;a href="#exemple-pratique-automatiser-le-d%c3%a9ploiement-dun-nouveau-service-sur-tout-un-parc" class="header-anchor"&gt;&lt;/a&gt;Exemple pratique: automatiser le déploiement d&amp;rsquo;un nouveau service sur tout un parc
&lt;/h2&gt;&lt;p&gt;Afin d'éviter de devoir faire une myriade de clics pour déployer un nouveau service sur des centaines de machines, nous pouvons à l'aide d'un petit script très basique déployer en un temps record la nouvelle sonde.&lt;/p&gt;
&lt;h3 id="contexte"&gt;&lt;a href="#contexte" class="header-anchor"&gt;&lt;/a&gt;Contexte
&lt;/h3&gt;&lt;p&gt;Nous avons correctement créé nos hôtes, hérités d'un Template d'hôte, qui est en relation avec un ou plusieurs Template de service qui contiennent une commande.&lt;/p&gt;
&lt;h3 id="extraire-une-liste-dhôtes"&gt;&lt;a href="#extraire-une-liste-dh%c3%b4tes" class="header-anchor"&gt;&lt;/a&gt;Extraire une liste d&amp;rsquo;hôtes
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky list host -r ^.* --output csv &amp;gt; hosts.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim hosts.csv
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La liste se présente sous ce format: &lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;ID,Name,Alias,Address,Activate
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;5,Aukfood_Debian_Web_Server_001,websrv01.aukfood.fr,192.168.1.148,1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;6,Aukfood_Debian_Web_Server_002,websrv02.aukfood.fr,192.168.1.149,1
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;7,Aukfood_Win19srv_Dns_Server_001,dnssrv01.aukfood.fr,192.168.1.253,1
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Quelques petites manips avec vim:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Ôter la premiere ligne en plaçant le curseur en début de ligne et appuyez 2 fois rapidement sur d&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Entrez ces commandes:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;:g/^&lt;span style="color:#ae81ff"&gt;\d&lt;/span&gt;*,/s///
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;:g/,.*$/s///
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&amp;gt; Selon les préférences, la commande &lt;code&gt;sed&lt;/code&gt; ira très bien aussi!&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Après manipulation nous obtennons une liste ne contenant que les noms d'hôtes.&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Aukfood_Debian_Web_Server_001
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Aukfood_Debian_Web_Server_002
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;Aukfood_Win19srv_Dns_Server_001
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id="créer-le-script"&gt;&lt;a href="#cr%c3%a9er-le-script" class="header-anchor"&gt;&lt;/a&gt;Créer le script
&lt;/h3&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;vim autodeploy.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-bash" data-lang="bash"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#!/bin/bash
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#Déclare la liste d&amp;#39;hôte&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;listhost&lt;span style="color:#f92672"&gt;=&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;&lt;span style="color:#66d9ef"&gt;$(&lt;/span&gt;&amp;lt;hosts.csv&lt;span style="color:#66d9ef"&gt;)&lt;/span&gt;&lt;span style="color:#e6db74"&gt;&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#Boucle sur tout les hôtes&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;for&lt;/span&gt; host in $listhost; &lt;span style="color:#66d9ef"&gt;do&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky add service -n $host -t ST_ChC_CHECK_PING -d SFT_ChC_CHECK_PING
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#66d9ef"&gt;done&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#75715e"&gt;#Exporte la configuration sur le poller selectionné et le recharge&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;./centctl --server&lt;span style="color:#f92672"&gt;=&lt;/span&gt;centreon-rocky apply -n Central
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;echo &lt;span style="color:#e6db74"&gt;&amp;#34;Wouah, c&amp;#39;était long! Tu as bien travaillé, vas te reposer maintenant ;)&amp;#34;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Maintenant, vous pouvez grâce à toutes les commandes CentCTL vues précédemment vous amuser à scripter dans tout les sens...&lt;/p&gt;
&lt;h1&gt;Sources&lt;/h1&gt;
&lt;p&gt;&lt;a href="https://www.sugarbug.fr/atelier/" title="L&amp;#039;atelier de Kermith"&gt;L'atelier de Kermith&lt;/a&gt; qui est une vraie pépite pleine de bonne choses!&lt;br /&gt;
&lt;a href="https://github.com/YPSI-SAS/centctl" title="Github de CentCTL"&gt;Github de CentCTL&lt;/a&gt; dans lequel j'ai trouvé nombreuses réponses.&lt;br /&gt;
Mes cours sur la supervision lors de ma formation TSSR à l'&lt;a href="https://www.eni-ecole.fr/" title="ENI de St-Herblain"&gt;ENI de St-Herblain&lt;/a&gt; ( coucou Fred 🙂 )&lt;/p&gt;
&lt;h1&gt;Merci&lt;/h1&gt;
&lt;p&gt;Merci de m'avoir lu, et soyez indulgent pour mon 1er article dans le monde de l'IT !!! (et du monde libre, une pierre deux coups, tant qu'à faire)&lt;/p&gt;
&lt;p&gt;Charles, stagiaire TSSR.&lt;/p&gt;</description></item><item><title>Uptime Kuma : Une alternative à Uptime Robot !</title><link>https://beta.slash-root.fr/uptime-kuma-une-alternative-a-uptime-robot/</link><pubDate>Wed, 24 Nov 2021 09:51:40 +0100</pubDate><guid>https://beta.slash-root.fr/uptime-kuma-une-alternative-a-uptime-robot/</guid><description>&lt;img src="https://beta.slash-root.fr/uptime-kuma-une-alternative-a-uptime-robot/cover.png" alt="Featured image of post Uptime Kuma : Une alternative à Uptime Robot !" /&gt;&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.aukfood.fr/uptime-kuma-une-alternative-a-uptimerobot/" title="Cet article a été écrit par la société AukFood, n&amp;#039;hésitez pas à les contacter pour la mise en place d&amp;#039;un tel outil."&gt;Cet article a été écrit par la société AukFood, n'hésitez pas à les contacter pour la mise en place d'un tel outil.&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Vous connaissez certainement UptimeRobot, qui est une solution qui permet de monitorer un ou plusieurs sites web et d'être alerté le plus rapidement possible. C'est un outil de monitoring extrêmement simple, qui surveille une URL donnée. 👀&lt;/p&gt;
&lt;p&gt;Cependant ce service est payant, la version gratuite étant limitée à 50 URLs. C'est pour cela que je vais vous présenter à travers cet article, la solution Uptime Kuma, qui offre les mêmes features. C'est évidemment un projet open-source. ✌️&lt;/p&gt;
&lt;p&gt;Le projet est assez jeune, mais compte 24 releases à ce jour, et près de 9k d'étoiles sur GitHub. Les fonctionnalités sont les suivantes : &lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Surveillance des protocoles HTTP(s), TCP, Ping, DNS ;&lt;/li&gt;
&lt;li&gt;Notifications via Telegram, Discord, Slack, Rocket.Chat, Pushover, Email, etc... ;&lt;/li&gt;
&lt;li&gt;Surveillance des certificats SSL ;&lt;/li&gt;
&lt;li&gt;Mais également un thème sombre ! 🌙&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;La surveillance des services s'effectue sur une intervalle de 20 secondes.&lt;/p&gt;
&lt;p&gt;Uptime Kuma s'installe sur un serveur, principalement en conteneur Docker (une version autonome est possible également). Nous allons voir dans cet article l'installation avec Docker. 🐳&lt;/p&gt;
&lt;p&gt;Premièrement, créer un volume : &lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ docker volume create uptime_kuma_storage
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Puis créer le conteneur : &lt;/p&gt;
&lt;pre tabindex="0"&gt;&lt;code&gt;$ docker run -d --restart=always -p 3001:3001 -v uptime-kuma_storage:/app/data --name uptime-kuma louislam/uptime-kuma:1
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Comme vous pouvez le constater sur la deuxième commande, Uptime Kuma écoute sur le port 3001.&lt;/p&gt;
&lt;p&gt;Allez sur l'interface web (par défaut : &lt;a href="http://localhost:3001"&gt;http://localhost:3001&lt;/a&gt;), vous pouvez configurer une écoute distante, à travers un reverse-proxy par exemple.&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" height="532" width="696" decoding="async" src="image-20211025155806836.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Vous voici sur la page d'inscription. L'utiliseateur qui sera créé sera de type administrateur. Après avoir rempli le formulaire, vous vous trouverez sur le tableau de bord par défaut : &lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" height="521" width="696" decoding="async" src="image-20211025180959389.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Dans le cadre de notre article, nous allons ajouter notre site web en supervision. Pour cela, cliquez sur &amp;quot;Ajouter une nouvelle sonde&amp;quot;.&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" height="521" width="696" decoding="async" src="image-20211025181256338.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Vous avez différentes options possibles, dans notre cas on restera sur celles de base (URL, protocole, intervalle de vérification...) mais vous pouvez paramétrer par exemple les codes HTTP acceptés (par défaut compris entre 200 et 299, le 404 par exemple sera considéré) comme un downtime.&lt;/p&gt;
&lt;p&gt;Quelques secondes plus tard, le résultat est déjà affiché ! &lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" height="521" width="696" decoding="async" src="image-20211025181500419.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Faisons la même chose avec le DNS : &lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" height="521" width="696" decoding="async" src="image-20211025181601993.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;&lt;img data-recalc-dims="1" height="521" width="696" decoding="async" src="image-20211025181625949.png" alt="" /&gt;&lt;/p&gt;
&lt;p&gt;Les notifications sont paramétrables, ce qui fera l'objet d'un article prochainement.&lt;/p&gt;
&lt;p&gt;En résumé, Uptime Kuma est un outil très simple d'utilisation, dont l'interface est intuitive, attractive, et accessible à un public non technique. &lt;/p&gt;
&lt;p&gt;Il se concentre sur son but principal, à savoir vérifier si un service est UP ou DOWN, ni plus ni moins. On va droit à l'essentiel, et c'est très bien comme cela.&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;a href="https://www.aukfood.fr/uptime-kuma-une-alternative-a-uptimerobot/" title="Cet article a été écrit par la société AukFood, n&amp;#039;hésitez pas à les contacter pour la mise en place d&amp;#039;un tel outil."&gt;Cet article a été écrit par la société AukFood, n'hésitez pas à les contacter pour la mise en place d'un tel outil.&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;</description></item></channel></rss>