Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Scroll Ignore
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-htmldocbookfalsetrue
scroll-docbookeclipsehelptrue
scroll-eclipsehelpepubtrue
scroll-epubhtmltruefalse
Panel
titleSommaire

Table of Contents
stylenone
printablefalse

Application du modèle via l'interface de Configuration

Excerpt
Section
Column
width66%

Dans l'interface de Configuration :

  • créer ou éditer un hôte ( voir la page Éditer un Hôte ),
  • ajouter les modèles "Proxmox-API" dans la propriété "Modèles d'hôte hérités" à l'aide du menu déroulant.
Column
width33%
Panel

Image Removed

Application du modèle via un collecteur d'import de fichiers au format .cfg

Section Column

Dans votre fichier de définition de vos éléments à importer via votre collecteur :

  • créer ou éditer la définition de votre hôte,
  • ajouter la valeur "Proxmox-API" (selon vos besoins ) dans la propriété "use"

    Contexte

    Cette page a pour objectif de décrire la mise en place du pack proxmox-ve-by-API__shinken :

    • Le déploiement du pack sur la plateforme (sur le Synchronizer et sur le ou les Pollers),

    • La configuration des prérequis nécessaires à l’exécution des checks.

    L'installation du pack sur l'infrastructure Shinken

    Installation de dépendance : VENV__plugins-packs__shinken

    En préambule, il faut :

    1. Récupérer la dernière version du pack contenant le VENV auprès de l'équipe Shinken,
    2. Transférer le pack sur le Synchronizer et le ou les Pollers.

    L'installation de l'environnement virtuel s'effectue en deux étapes :


    Récupérer l'archive tar.xz de l'environnement virtuel

    Chaque pack requiert une version minimale de l'environnement virtuel pour fonctionner. Les versions sont rétrocompatibles. Il est donc recommandé de toujours utiliser la dernière version disponible de l'environnement virtuel.

    PackEnvironnement virtuel minimum
    proxmox-ve-by-APIV01.00.03


    Décompresser l'archive tar.xz de l'environnement virtuel sur tous les serveurs Shinken avec un poller ou synchronizer et lancer l'installation.

    Décompresser l'archive sur les serveurs Shinken

    Code Block
    themeEmacs
    tar -xJf VENV__plugins-packs__shinken__VXX.XX.XX__Linux-<distrib>.tar.xz

    Rentrer dans le répertoire créé à la suite de la décompression, et exécuter le script d'installation.

    Code Block
    themeEmacs
    cd VENV__plugins-packs__shinken__VXX.XX.XX__Linux-<distrib>
    ./install-venv.sh

    Mise en place du pack avec l'installeur "install.sh" ( sur Poller / Synchronizer )

    Commun à tout Poller / Synchronizer

    Que ce soit sur un Synchronizer ou sur un Poller :

    1. Désarchiver le pack :

      Code Block
      languagetext
      themeEmacs
      tar --no-same-owner -xf NOM_DU_PACK.tar.xz
    2. Entrer dans le répertoire extrait de l'archive et lancer le "install.sh"

      Code Block
      languagetext
      themeEmacs
      cd NOM_DU_PACK/
      ./install.sh
    3. L'installeur dépose les éléments suivants :

      • Le fichier de configuration de la source "shinken-additional-packs-import" qui servira à importer la définition du pack dans le Synchronizer.
      • Les fichiers de définitions des éléments du pack, à importer dans le Synchronizer.
      • Les sondes du pack. 

    Exemple de mise en place :

    Code Block
    languagetext
    themeEmacs
    ========================================================
    PRE-INSTALLATION CHECKS
    ========================================================
    
    No previous installation detected. Proceeding with installation...
    
    ========================================================
    CHECKING PACK LIBRARIES:
    ========================================================
      - PYTHON VENV
      ~~~~~~~~~~~~~~~~~~
                => Location [/var/lib/shinken-user/libexec/shinken-additional-packs/.shinken__venv_plugin]
    
            => REQUIRED : 01.00.03
                - Currently installed Venv version : 01.00.03
    
                => NOTHING TO DO.
    
    
    ========================================================
    INSTALL PACK [ proxmox-ve-by-API__shinken V01.00.00 ]
    ========================================================
    
        -----------------------------
        |   COLLECTOR [ shinken-additional-packs-import ]
    
            => Collector cfg file already AVAILABLE
                  - Path : /etc/shinken/sources/shinken-additional-packs-import.cfg
    
            => Collector DATA space already AVAILABLE
                  - Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import
    
            => Definition File already AVAILABLE [ definition_shinken-additional-packs-import.cfg ]
                  - Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/definition_shinken-additional-packs-import.cfg
    
            => Applying permissions
                  - Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import
                  - Setting owner ( to "shinken" user )
                  - Setting rights
    
        -----------------------------
        |   MONITORING DEFINITION:
    
            => Installing definitions file in source-data folder ( Collector => shinken-additional-packs-import )
                  - Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import
                  - Setting owner ( to "shinken" user )
                  - Setting rights
    
            => Installing global data definitions file in SHINKEN directory ( => resource.d )
                  - Path : /etc/shinken/resource.d/shinken-additional-packs-import
                  - Setting owner ( to "shinken" user )
                  - Setting rights
    
        -----------------------------
        |   PROBES:
    
            => Installing probes
                  - Path : /var/lib/shinken-user/libexec/shinken-additional-packs/proxmox-ve-by-API__shinken
                  - Setting owner ( to "shinken" user )
                  - Setting rights
    
    ========================================================   
    Note
    iconfalse

     Si une version du pack est déjà installée, elle doit être désinstallée avant d’installer la nouvelle version. L’installeur vérifiera automatiquement si l’ancienne version a été correctement supprimée et vous avertira si ce n’est pas le cas.

    Code Block
    languagetext
    themeEmacs
    ========================================================
    PRE-INSTALLATION CHECKS
    ========================================================
    
    ERROR: Previous installation detected!
    
    The following files/folders from a previous installation were found:
                  - /var/lib/shinken-user/libexec/shinken-additional-packs/proxmox-ve-by-API__shinken
                  - /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/proxmox-ve-by-API__shinken
                  - /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken
                  - /etc/shinken/resource.d/shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken
    
    Please run './uninstall.sh' before installing the pack.
    
    Installation ABORTED.
    
    WARNING: Uninstallation will remove all installed config files ( .cfg ).
    This step is required for installing this new pack version.
    All manual changes to the present config files will be lost. This doesn't affect shinken Staging or Production environment.

    Sur le Synchronizer

    1. SEULEMENT si le collecteur "shinken-additional-packs-import" n'est pas déjà PRÉSENT dans votre Synchronizer ( par exemple : première fois que vous utilisez un installeur de pack Shinken ) :

      Vérifier dans la configuration de votre Synchronizer ( /etc/shinken/synchronizers/synchronizer-master.cfg ) que le collecteur "shinken-additional-packs-import" soit présent dans le champ sources.

      Code Block
      languagetext
      themeEmacs
      cat /etc/shinken/synchronizers/synchronizer-master.cfg
      Code Block
      languagejs
      themeConfluence
      define synchronizer {
          [...]
          sources                   Source 1, Source 2, Source 3, shinken-additional-packs-import
          [...]
      }

      Si le collecteur "shinken-additional-packs-import" n'est pas présent, l'ajouter dans la liste puis redémarrez le Synchronizer pour que le collecteur soit pris en compte :

      Section
      Code Block
      languagetext
      themeEmacs
      service-shinken-synchronizer restart
      Note
      iconfalse

      Pour les versions de Shinken strictement inférieures à V02.08.02-RC018.05, il faudra utiliser la commande suivante :

      Code Block
      languagetext
      themeEmacs
      service shinken-synchronizer restart
    2. Activer le collecteur "shinken-additional-packs-import" si ce n'est pas déjà fait.

      Panel

      Image Added

    3. Lancer l'import du collecteur "shinken-additional-packs-import" :

      Panel

      Image Added


      • En suivant, vous devrez peut-être accepter ou des nouveautés ou des différences qui seraient liées à ce pack ( en fonction de l'évolution du pack ).

    4. IMPORTANT : si c'est la première fois que vous installez le pack, il est nécessaire de faire un dernier redémarrage du Synchronizer.

      Section
      Code Block
      languagetext
      themeEmacs
      service-shinken-synchronizer restart
      Note
      iconfalse

      Pour les versions de Shinken strictement inférieures à V02.08.02-RC018.05, il faudra utiliser la commande suivante :

      Code Block
      languagetext
      themeEmacs
      service shinken-synchronizer restart

    Mise en place du pack manuellement ( si l'utilisation du script install.sh n’est pas souhaitée ) :

    Commun à tout Poller / Synchronizer

    Si le pack est déjà installé

    Il est recommandé de supprimer les anciens dossiers contenant le pack afin de garantir l'utilisation de la dernière version des fichiers livrés.

    Pour effectuer cette suppression ( si la procédure d'installation manuelle a été suivie telle quelle ), la commande suivante peut être utilisée :

    Code Block
    languagetext
    themeEmacs
    rm -rf /var/lib/shinken-user/libexec/shinken-additional-packs/proxmox-ve-by-API__shinken
    rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/proxmox-ve-by-API__shinken
    rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken
    rm -rf /etc/shinken/resource.d/shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken
    Extraire le pack

    Transférer le fichier du pack sur la machine et décompresser le fichier contenant le pack à l'aide de la ligne de commande ci-dessous (remplacer "PACK__shinken__NOM-DU-PACK__VERSION__OS.tar.xz" par le nom exact du pack livré) :

    • Pour Linux ( le paramètre --no-same-owner permet de ne pas conserver les attributs d'utilisateurs/roles présent lors de la création du pack ) :
    Code Block
    languagetext
    themeEmacs
    tar -xjfv --no-same-owner PACK__shinken__NOM-DU-PACK__VERSION__linux.tar.xz -C ./
    • Pour Windows ( Rôle de Poller ) :
    Code Block
    languagetext
    themeEmacs
    tar -xvzf PACK__shinken__NOM-DU-PACK__VERSION__windows.tar.xz -C ./

    Entrer dans le répertoire créé :

    Code Block
    languagetext
    themeEmacs
    cd NOM_DU_PACK/
    Les sondes ( mises en place )

    On place les sondes :

    Code Block
    languagetext
    themeEmacs
    probe_path="/var/lib/shinken-user/libexec/shinken-additional-packs/proxmox-ve-by-API__shinken"
    mkdir --parents $probe_path
    cp -r ./probes/* $probe_path
    chown -R shinken:shinken $probe_path
    chmod -R 750 $probe_path

    Sur le Synchronizer

    Ensuite, il est nécessaire de placer les définitions des éléments de supervision du pack au bon endroit.

    (ou les deux, en les séparent par une virgule ),importer le contenu du fichier via un collecteur de type "cfg-file-import" ( voir la page 
    • Les fichiers de configuration :
        • Il est recommandé de créer un collecteur de type cfg-file-import, qui permet d'importer des définitions d'éléments Shinken à partir des fichiers .cfg fournis dans le pack.

        • La procédure de mise en place de ce type de collecteur est disponible dans la documentation à la page  : (

    Column
        • .. )  du pack :

          Code Block
          languagetext
          themeEmacs
          shinken_collector_data_path="/etc/shinken-user/source-data/source-data-shinken-additional-packs-import"
          cp -r ./monitoring-definitions/packs/* $shinken_collector_data_path
          chown -R shinken:shinken $shinken_collector_data_path
          chmod -R 744 $shinken_collector_data_path
        • Ensuite, les données globales

    width33%
        • Code Block
          languagetext
          themeEmacs
          shinken_pack_globaldata_path="/etc/shinken/resource.d/shinken-additional-packs-import"
          mkdir --parents $shinken_pack_globaldata_path
          cp -r "./monitoring-definitions/global-data" "$shinken_pack_globaldata_path"
          chown -R shinken:shinken "$shinken_pack_globaldata_path"
          chmod -R 744 "$shinken_pack_globaldata_path"
    • Redémarrer le Synchronizer

      Section
      Code Block
      languagetext
      themeEmacs
      service-shinken-synchronizer restart
      Note
      iconfalse

      Pour les versions de shinken strictement inférieures à V02.08.02-RC018.05, il faudra utiliser la commande suivante :

      Code Block
      languagetext
      themeEmacs
      service shinken-synchronizer restart
    • Activer le collecteur  "shinken-additional-packs-import" :

      Panel

      Image Added

    • Lancer l'import du collecteur "shinken-additional-packs-import",

      Panel

      Image Added


      • En suivant, vous devrez peut-être accepter les nouveautés / différences qui seraient liées à ce pack ( en fonction de l'évolution du pack ).

    • IMPORTANT : si c'est la première fois que vous installez le pack, il est nécessaire de faire un dernier redémarrage du Synchronizer.

      Section
      Code Block
      languagetext
      themeEmacs
      service-shinken-synchronizer restart
      Note
      iconfalse

      Pour les versions de Shinken strictement inférieures à V02.08.02-RC018.05, il faudra utiliser la commande suivante :

      Code Block
      languagetext
      themeEmacs
      service shinken-synchronizer restart

    Le dossier extrait lors de la décompression du pack peut également être supprimé à l’aide de la commande suivante :

    Code Block
    languagetext
    themeEmacs
    rm -rf ./PACK__proxmox-ve-by-API__shinken__V01.00.00__Linux
    Info

    Attention à ne pas supprimer le fichier tar.xz. Connaître la version exacte du pack livré est utile en cas de problème avec celui-ci.

    Si une version précédente du pack a déjà été installée, il est recommandé de supprimer les anciens dossiers pour éviter de conserver des fichiers obsolètes, notamment en cas de modification de la structure du pack.

    Utiliser les commandes suivantes pour effectuer cette suppression :

    Code Block
    languagetext
    themeEmacs
    rm -rf /var/lib/shinken-user/libexec/shinken-additional-packs/proxmox-ve-by-API__shinken
    rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/proxmox-ve-by-API__shinken
    rm -rf /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken
    rm -rf /etc/shinken/resource.d/shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken

    Comment configurer la connexion API ?

    Pour l'exécution correcte des commandes du pack proxmox-ve-by-API, l'accès à l'API native de Proxmox est requis.

    Quelques informations au préalable sont nécessaires pour la bonne compréhension de cette partie.

    • D'une part, du côté de l'architecture Shinken, l'exécution des checks ( plus exactement les sondes) est réalisée  par les Pollers, en tant qu'utilisateur "shinken".
      • Les pollers Shinken seront la source des appels HTTP/HTTPS
    • D'autre part, du côté du cluster Proxmox supervisé,
      • Pour accéder à l'API, un nom d'utilisateur et un token API sont requis.
      • Dans les modèles du pack proxmox-ve-by-API, des données sont prévues à cet effet.

    Nous conseillons fortement l'utilisation d'un utilisateur spécifique ( pour le service de supervision ) à droit restreint pour effectuer les vérifications, afin d'éviter les brèches de sécurité.

    Côté client ( Proxmox supervisé )

    Pour créer tous les éléments nécessaires à la supervision Proxmox, il faut, directement depuis l'interface de configuration Proxmox :

    • Créer un nouvel utilisateur
    • Créer une nouvelle clé API ( liée à l'utilisateur créé )
    • Ajouter le rôle "PVEAuditor" au nouvel utilisateur pour permettre la supervision.

    Dans cet exemple, le nom d'utilisateur utilisé sera "shinken" et le nom de la clé sera "SUP-SHINKEN".


    Warning

    Les noms d'utilisateur et de clé API utilisés ici seront ensuite utilisés dans l'interface Shinken pour les données suivantes :

    • PROXMOX-VE-BY-API__TOKEN
    • PROXMOX-VE-BY-API__USER

    Création de l'utilisateur

    Sur l'interface de configuration, se rendre dans "Datacenter" puis dans "Users" :

    Panel

    Image Added

    Dans le menu "Users", créer un nouvel utilisateur avec le bouton "Add" ( indiquer uniquement un nom d'utilisateur et valider ) :

    Panel

    Image Added

    À ce stade, l'utilisateur de supervision "shinken" a bien été créé.

    Création de la clé API

    Sur l'interface de configuration, se rendre dans "Datacenter" puis dans "API Tokens" :

    Panel

    Image Added

    Dans le menu "API Tokens", créer une nouvelle clé avec le bouton "Add" ( indiquer uniquement un nom à la clé et valider ) :

    Panel

    Image Added

    Warning

    La clé API ne s'affiche qu'une seule fois, à la création de celle-ci. Il faut la stocker en lieu sûr avant de continuer.

    À ce stade, la clé API "SUP-SHINKEN" a bien été créée.

    Gestion des droits d'accès aux ressources

    Sur l'interface de configuration, se rendre dans "Datacenter" puis dans "Permissions" :

    Panel

    Image Added

    Dans le menu "Permission", créer une première règle avec le bouton "Add" en sélectionnant "User Permission" et indiquer :

    • Path : /
    • User : shinken@pam
    • Role : PVEAuditor
    Panel

    Image Added

    Dans le menu "Permission", créer une seconde règle avec le bouton "Add" en sélectionnant "API Token Permission" et indiquer :

    • Path : /
    • User : shinken@pam!SUP-SHINKEN
    • Role : PVEAuditor
    Panel

    Image Added

    À ce stade, la configuration des permissions est terminée.

    La configuration sur l'interface de configuration Proxmox est terminée. Le nœud est prêt à être supervisé.

    Côté interface de configuration

    Modèle d'hôtes proxmox-ve-by-API__base__shinken

    NomModifiable surUnitéDéfautValeur par défaut à l'installation du packDescription
    No Format
    PROXMOX-VE-BY-API__NODE-NAME

    l'Hôte

    ( Onglet Données )

    --

    $HOSTNAME$

    $HOSTNAME$

    Le nom du nœud Proxmox supervisé. Il faut utiliser le nom du nœud correspondant à l'adresse IP de l'hôte :

    • exemple-shinken-proxmox-cluster01 : 172.17.0.14
    • exemple-shinken-proxmox-cluster01 : 172.17.0.15
    Panel

    Image Added

    Si l'adresse IP de l'hôte Shinken est 172.17.0.14, alors PROXMOX-VE-BY-API__NODE-NAME doit être exemple-shinken-proxmox-cluster01.

    No Format
    PROXMOX-VE-BY-API__PORT

    l'Hôte

    ( Onglet Données )

    --

    8006

    8006

    Le port utilisé pour accéder à l'API. Par défaut, il s'agit du même port que celui de l'interface de configuration et de gestion Proxmox.

    No Format
    PROXMOX-VE-BY-API__SSL__USE-SSL

    l'Hôte

    ( Onglet Données )

    --

    True

    True

    Le mode de gestion SSL : 

    • True : vérification activée avec les autorités de certification connues du système
    • False : vérification des certificats désactivée
    • /chemin/vers/cert : vérification du certificat pour une autorité de certification spécifique
    No Format
    PROXMOX-VE-BY-API__TOKEN

    l'Hôte

    ( Onglet Données )

    --

    shinken:secret

    shinken:secret

    Combinaison du nom de la clé API et de la clé API.

    • TOKEN-API-NAME:API-KEY
      • Exemple : SUP-SHINKEN:d2abf83e-da98-4583-bf4b-f3e7e292dadd
    No Format
    PROXMOX-VE-BY-API__USER

    l'Hôte

    ( Onglet Données )

    --

    shinken@pve

    shinken@pve

    Nom de l'utilisateur Proxmox à utiliser pour la connexion.

    Désinstaller le pack avec "uninstall.sh"

    Entrer dans le répertoire extrait de l'archive et lancer le "uninstall.sh"

    Code Block
    languagetext
    themeEmacs
    cd PACK__proxmox-ve-by-API__shinken__V01.00.00__Linux && ./uninstall.sh

    Ce mécanisme va seulement enlever les fichiers mis en place lors de l'installation ( Fichier du collecteur d'import, définition des éléments de supervision, et les sondes proposées ), mais ne touche pas aux éléments que vous avez absorbés dans le Synchronizer.


    Code Block
    languagetext
    themeEmacs
    ==========================================================
    UNINSTALL PACK [ proxmox-ve-by-API__shinken V01.00.00 ]
    ==========================================================
    
        -----------------------------
        |   MONITORING DEFINITION:
    
            => Deleting pack monitoring definition folder
                  - Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/proxmox-ve-by-API__shinken
    
            => Deleting pack monitoring definition file
                  - Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/packs/proxmox-ve-by-API__shinken.pack
    
            => Deleting pack monitoring globaldata folder
                  - Path : /etc/shinken-user/source-data/source-data-shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken
    
            => Deleting shinken pack globaldata folder
                  - Path : /etc/shinken/resource.d/shinken-additional-packs-import/global-data/proxmox-ve-by-API__shinken/
    
    
        -----------------------------
        |   PROBES:
    
            => Deleting probes
                  - Path : /var/lib/shinken-user/libexec/shinken-additional-packs/proxmox-ve-by-API__shinken
    
    
    ==========================================================
    PACK [ proxmox-ve-by-API__shinken V01.00.00 ] SUCCESSFULLY UNINSTALLED
    ==========================================================
    Info

    À noter : vous  devrez retirer les éléments importés dans le Synchronizer ( modèles d'hôtes, checks, ... ) via les actions de masse.

    define host { host_name web use         Proxmox-API }