Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Scroll Ignore
scroll-viewporttrue
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmlfalse
Panel
titleSommaire

Table of Contents
stylenone

Contexte

La source VMWare utilise les APIs des ESX ESXi pour récupérer les données des VM et des ESXESXi. Collecter toutes les informations de ces API peut être très long, c'est pour cette raison que nous avons ajouté un système permettant de choisir quels champs la source va récupérer.

Ajouter ou supprimer des champs collectés par la source

Vous pouvez modifier la liste des champs récupérés par la source, pour voir les nouvelles données dans Shinken, vous devrez en plus ajouter un mapping ( Voir la page Le mapping des informations collectées des champs du serveur VMWare vers les propriétés et les données Shinken ).

Le fichier à modifier est ici : 
/etc/shinken-user/source-data/source-data-[nom de la source]/configuration/collected_fields_from_source/list_of_collected_fields.json


Exemple de chemin pour la source livrée par défaut : 
/etc/shinken-user/source-data/source-data-synchronizer-collector-vmware/configuration/collected_fields_from_source/list_of_collected_fields.json

Le fichier list_of_collected_fields.json doit respecter le format suivant :

  • La source VMWare ne peut importer que des hôtes alors pour cette source le fichier de règle commencera toujours par "hosts".
  • Puis mettre le champ de l'API VMWare en champs ( à gauche )
  • Enfin mettre la valeur "true" pour récupérer la donnée ou "false" pour ne pas la récupérer


Info

Il est possible d'ajouter des commentaires dans ce fichier. Toutes les lignes qui commencent par le caractère # seront considérés comme des commentaires.

No Format
languagetext
themeEmacs
{
  "hosts": {
    "name": "true",
    "shinken.machine_type" : "true",
    "runtime.powerState": "false"
  }
}

Les champs livrées dans le fichier en commentaire du fichier par défaut ont toutes été testées et peuvent s'importer dans Shinken.

Il est possible d'ajouter des champs supplémentaires parmi plus de 3000 champs de l'API VMWare mais tous les champs n'ont pas été testées par nos soins et donc certaines données pourraient ne pas être exploitables.

Ajouter ou modifier les descriptions des champs de l'API VMWare

Par défaut, nous avons documenté un certain nombre de champs, mais comme il est possible d'ajouter des champs récupérés par la source, il est aussi possible d'ajouter une description pour ces champs.


Les fichiers à modifier sont ici : 
/etc/shinken-user/source-data/source-data-[nom de la source]/configuration/collected_fields_from_source/description_of_collected_fields_en.json
/etc/shinken-user/source-data/source-data-[nom de la source]/configuration/collected_fields_from_source/description_of_collected_fields_fr.json


Exemple de chemin pour la source livrée par défaut : 
/etc/shinken-user/source-data/source-data-synchronizer-collector-vmware/configuration/collected_fields_from_source/description_of_collected_fields_en.json
/etc/shinken-user/source-data/source-data-synchronizer-collector-vmware/configuration/collected_fields_from_source/description_of_collected_fields_fr.json


Vous pouvez modifier le fichier fr ou en fonction de la langue de votre installation

Les fichiers de description doivent respecter le format suivant :

  • La source VMWare ne peut importer que des hôtes, alors pour cette source le fichier de règle commencera toujours par "hosts".
  • Puis mettre le champ de l'API VMWare en champs ( à gauche )
  • Enfin mettre la description



No Format
languagetext
themeEmacs
{
  "hosts": {
    "name": "Nom de la machine",
    "shinken.machine_type" : "Type de machine VIRTUAL_MACHINE ou HOST",
    "runtime.powerState": "Etat d'alimentation de la machine virtuelle"
  }
}
Info

Il est possible d'ajouter des commentaires dans ce fichier. Toutes les lignes qui commencent par le caractère # seront considérées comme des commentaires.

Les champs modifiés par la source pour l'import dans Shinken

Pour pouvoir associer certains champs d'import VMWare avec nos propriétés Shinken, nous avons dû réadapter certains champs :

shinken.runtime.powerState

Dans l'API VMWare, le champs d'import runtime.powerState donne l'état actuel de l'ESX ESXi ou de la Machine virtuelle. Sa valeur peut être soit "poweredOn", soit "poweredOff".
Pour pouvoir associer ce champs avec la propriété shinken Activé (enabled en .cfg), nous convertissons les valeurs "poweredOn" / "poweredOff" en 1 / 0 dans un nouveau champs d'import nommé powerStateAsInt.


Champs de la source

Format de retour de l'import Exemple de valeur de la source 

shinken.runtime.powerState

Etat actuel de la machine1 ou 0

shinken.config.hardware.device.labelSummary

Dans l'API VMWare, le champs d'import config.hardware.device donne les informations complètes de chaque périphérique virtuel appartenant à la machine virtuelle.
La liste étant trop exhaustive, nous récupérons que certaines informations. À l'aide du nouveau champs d'import labelSummaryList, nous récupérons le nom et le récapitulatif des informations de chaque périphérique virtuel pour la machine virtuelle importée.


Champs de la source

Format de retour de l'import Exemple de valeur de la source 

shinken.config.hardware.device.labelSummary

(label = "nom du périphérique", summary = "Récapitulatif des informations")(label = IDE 0, summary = IDE 0),(label = Network adapter 1, summary = VM Network),(label = Network adapter 2, summary = Test)



shinken.runtime.networkRuntimeInfo.netStackInstanceRuntimeInfo.instanceState

Dans l'API VMWare, le champs d'import runtime.networkRuntimeInfo.netStackInstanceRuntimeInfonous donne la liste des informations d'exécution de la pile réseau de la machine virtuelle.
La liste étant trop exhaustive, nous avons stocké au sein du nouveau champs d'import netStackInfoAsInt, le champs de l'instance et l'état de cette instance pour chaque machine virtuelle importée.


Champs de la source

Format de retour de l'import Exemple de valeur de la source 

shinken.runtime.networkRuntimeInfo.netStackInstanceRuntimeInfo.instanceState

(instance = "clé de l'instance", state = "état de l'instance")(instance = defaultTcpipStack, state = active)

shinken.config.network.vnic.first

Afin de simplifier la récupération d'IP de l'ESXESXi, nous avons ajouté le champ shinken.config.network.vnic.first avec la première adresse IP que nous trouvons.

  • À titre indicatif :
    • Les adresses IP de l'ESX ESXi dans l'API VMWare, sont disponibles dans le champ config.network.vnic qui est une liste d'objet network.
    • Dans l'objet network les adresses IP sont dans le champ network.spec.ip.ipAddress. azerzaerza


Champs de la source

Format de retour de l'import Exemple de valeur de la source 

shinken.config.network.vnic.first

Première adresse IP de la machine192.168.1.1
Info

Pour les VM l'adresse IP est dans le champ : guest.ipAddress

shinken.ipAddress

Pour éviter d'avoir à utiliser deux champs différents (shinken.config.network.vnic.first OU guest.ipAddress) afin de récupérer l'adresse IP de l'hôte selon s'il est une machine virtuelle ou un ESXESXi, nous avons créé un champ unique shinken.ipAddress qui contiendra l'adresse IP de l'hôte peu importe sa nature.


Champs de la source

Format de retour de l'import Exemple de valeur de la source 

shinken.ipAddress

Adresse IP de la machine192.168.1.1

shinken.config.network.vnic

Dans l'API VMWare, le champs d'import config.network.vnic contient la liste des cartes réseaux virtuelles de l'ESXESXi. Nous récupérons l'adresse IP de chaque carte grâce au champs network.spec.ip.ipAdress
Chacune de ces IP est stockées dans le nouveau champs d'import ipAddressAsList.


Champs de la source

Format de retour de l'import Exemple de valeur de la source 

shinken.config.network.vnic

["Première adresse IP de la machine", "Deuxième adresse IP de la machine"][u'192.168.1.1', u'192.168.1.2']



shinken.datastore

Dans l'API VMWare, le champs d'import datastore nous donne une liste d'objet qui contient les informations des datastores ( disques, métadatas, iso, etc. ) liées aux VMs ou aux ESXsESXis.

  • Nous parcourons chaque objet pour récupérer les informations de chaque datastore afin de les retourner au format liste de données.
  • Ces informations sont stockés dans le champs d'import shinken.datastore.

Champs de la source

Format de retour de l'import Exemple de valeur de la source 

shinken.datastore

(name = "nom du datastore", summary_capacity = "capacité totale du datastore", summary_type = "type de datastore", summary_freeSpace = "espace libre total du datasotre", summary_url = "url du datastore", summary_uncommitted = "espace non alloué du datastore")(name = datastore1, summary_capacity = 491505319936, summary_type = VMFS, summary_freeSpace = 199942471680, summary_url = /vmfs/volumes/6034e02b-41d8f1a8-85b2-14187759998c, summary_uncommitted = 97587437547)



shinken.guest.disk

Dans l'API VMWare, le champs d'import disks nous donne la liste d'objet qui contient les informations de chaque disque liées aux VMs.

  • Nous parcourons chaque objet pour récupérer les informations de chaque disque afin de les retourner au format liste de données.
  • Ces informations sont stockées dans le champs d'import shinken.guest.disk.

Champs de la source

Format de retour de l'import Exemple de valeur de la source 

shinken.guest.disk

(capacity = "capacité du disque", diskPath = "emplacement du fichier du disque", freeSpace = "espace libre du disque")(capacity = 47217381376, diskPath = /, freeSpace = 26512211968),(capacity = 1063256064, diskPath = /boot, freeSpace = 860229632)

shinken.network

Dans l'API VMWare, le champs d'import network nous donne les noms des réseaux où est connectée la machine virtuelle importée. Nous parcourons chaque objet pour récupérer les informations de chaque réseau afin de retourner une chaîne de caractère contenant le nom des réseaux. Ces informations sont stockées dans le champs d'import shinken.network


Champs de la source

Format de retour de l'import Exemple de valeur de la source 

shinken.network

Réseau 1,Réseau 2VMware Network 1,VMware Network 2

Les champs dépendant de l'activation du paramètre "vmware_collect_tags"

Info

Pour récupérer les champs suivant il faut activé la récupération des balises (tags) avec le paramètre vmware_collect_tags ( voir la page Collecteur de type synchronizer-collector-vmware ( Pour vSphere - ESXi/vCenter ) )

shinken.tags

Le champ d'import shinken.tags nous donne la liste des noms des balises ( tags ) attachées à la machine virtuelle importée.


Champs de la source

Format de retour de l'import Exemple de valeur de la source 

shinken.tags

TAG 1,TAG 2,TAG 3,...BRONZE, ALMA-8, AQUITAINE

shinken.tag_categories

Le champ d'import shinken.tag_categories nous donne la liste des noms des catégories de balises ( tags ) attachées à la machine virtuelle importée.


Champs de la source

Format de retour de l'import Exemple de valeur de la source 

shinken.tag_categories

CATEGORIE 1, CATEGORIE 2, CATEGORIE 3,...SUPPORT, OS, REGION

shinken.tags_by_category

Le champ d'import tags_by_category nous donne pour chaque catégorie sa liste des balises ( tags ) associées.

Le format est un dictionnaire avec :

  • comme clés : les catégories définies dans le VSpherevSphere
  • comme valeur pour chaque clé : la liste des balises (tags) de cette catégorie.

Ces clé ( catégories ) et valeur ( liste de balises (tags) ) seront récupérés en fonction des catégories et balises ( tags ) associées à la machine virtuelle importée. 


Champs de la source

Format de retour de l'import Exemple de valeur de la source 

shinken.tags_by_category

  CATEGORIE 1 : TAG 1-1, TAG 1-2, TAG 1-3,...
  CATEGORIE 2 : TAG 2-1, TAG 2-2, TAG 2-3,...
  CATEGORIE 3 : TAG 3-1, TAG 3-2, TAG 3-3,...
  SUPPORT: BRONZE, ARGENT, OR
  OS: ALMA-8, WINDOWS
  REGION: AQUITAINE, BRETAGNE, ILE-DE-FRANCE,OCCITANIE

Pour utiliser ce champ, il faut une donnée utilisée le nom de la catégorie dans le mapping des informations collectées et dans la liste des champs collecté ( Exemple : shinken.tags_by_category.SUPPORT ).


Champs communs à l'

ESX

ESXi et aux machines virtuelles

Champs de la sourceDescription
nameNom de la machine
shinken.machine_typeType de machine : VIRTUAL_MACHINE ou HOST
runtime.powerStateÉtat d'alimentation de la machine virtuelle
runtime.bootTimeHorodatage de la dernière mise sous tension
runtime.connectionStateIndique si la machine virtuelle est disponible pour être gérée
summary.config.nameConfiguration du Nom de l'ESX ESXi ou de la machine virtuelle
summary.config.product.nameNom du produit de l'ESX ESXi ou de la machine virtuelle
summary.config.product.vendorVendeur de l'ESX ESXi ou de la machine virtuelle
summary.config.product.versionVersion de l'ESX ESXi ou de la machine virtuelle
summary.quickStats.overallCpuUsageUtilisation agrégée du processeur sur tous les cœurs de l'hôte en MHz
summary.quickStats.overallCpuDemandDemande agrégée du processeur sur tous les cœurs de l'hôte en MHz
summary.quickStats.overallMemoryUsageUtilisation de la mémoire physique sur l'hôte en Mo
shinken.runtime.powerStateÉtat de la machine ( 1 = allumée, 0 = éteinte )
shinken.networkNom des réseaux virtuels
shinken.datastoreListe des Datastore ( disques, métadatas, iso, etc. )

Champs d'import pour les machines virtuelles

Champs de la sourceDescription
config.annotationDescription de la machine virtuelle
config.guestFullNameNom complet de la machine virtuelle
config.guestIdIdentifiant de la machine virtuelle
config.hardware.memoryMBQuantité de mémoire de la machine virtuelle en Mb
config.hardware.numCPUNombre de CPU de la machine virtuelle
config.hardware.numCoresPerSocketNombre de cœurs par CPU pour la machine virtuelle
config.uuidUUID de la machine virtuelle
config.versionVersion de la machine virtuelle
guest.guestFamilySystème d'exploitation de la machine virtuelle
guest.hostNameNom de la machine virtuelle
guest.ipAddressAdresse IP de la machine virtuelle
guest.toolsVersionStatusÉtat de la version actuelle des outils VMware dans le système d'exploitation de la machine virtuelle, s'il est connu ( Déprécié )
guest.toolsVersionStatus2État de la version actuelle des outils VMware dans le système d'exploitation de la machine virtuelle, s'il est connu
guest.toolsRunningStatusIndique l'état actuel des outils VMware
guest.toolsVersionVersion actuelle des outils VMware ( VMware Tools )
config.createDateDate de création de la machine virtuelle
config.files.vmPathNameNom du chemin de fichier de la machine virtuelle
config.files.snapshotDirectoryRépertoire des instantanés de la machine virtuelle
config.files.suspendDirectoryRépertoire d'une machine virtuelle en suspend
config.files.logDirectoryRépertoire des journaux de la machine virtuelle
config.hotPlugMemoryLimitLa quantité maximale de mémoire, en Mo, qui peut être ajoutée à une machine virtuelle en cours d'exécution
config.initialOverhead.initialMemoryReservationSurcharge de mémoire requise pour la mise sous tension de la machine virtuelle (en octet)
config.initialOverhead.initialSwapReservationEspace disque requis pour la mise sous tension de la machine virtuelle (en octet)
config.instanceUuidCombinaison de l'UUID du Vcenter vCenter et de l'UUID de la machine virtuelle
config.modifiedDernière modification de la configuration d'une machine virtuelle
config.templateIndique si une machine virtuelle est ou non un modèle
config.firmwareFirmware de la machine virtuelle
config.hardware.virtualICH7MPresentPrésence de ICH7M virtuel sur une machine virtuelle
guest.guestKernelCrashedÉtat du noyau du système d'exploitation de la machine virtuelle. Si vrai, le noyau du système d'exploitation de la machine virtuelle est tombé en panne
guest.guestStateÉtat actuel de la machine virtuelle
resourceConfig.cpuAllocation.limitLimite de l'utilisation d'une machine virtuelle
resourceConfig.cpuAllocation.reservationQuantité de ressource garantie disponible pour la machine virtuelle
resourceConfig.memoryAllocation.limitLimite de l'utilisation de la mémoire d'une machine virtuelle
resourceConfig.memoryAllocation.reservationQuantité de mémoire disponible d'une machine virtuelle
runtime.cleanPowerOffPour une machine virtuelle hors tension, indique si le dernier arrêt de la machine virtuelle était une mise hors tension normale ou non
runtime.maxCpuUsageLimite maximale actuelle de l'utilisation du processeur
runtime.maxMemoryUsageLimite maximale actuelle de l'utilisation de la mémoire
summary.config.templateDrapeau pour déterminer si cette machine virtuelle est un modèle ou non
summary.config.cpuReservationConfiguration de la réservation du CPU en MHz
summary.config.memoryReservationRéservation de mémoire configurée en Mo
summary.config.numEthernetCardsNombre d'adaptateur de réseau virtuel
summary.config.numVirtualDisksNombre de disque virtuel connecté à la machine virtuelle
summary.config.product.fullVersionVersion complète de la machine virtuelle
summary.quickStats.guestMemoryUsageStatistiques sur l'utilisation de la mémoire des la machines virtuelles
summary.quickStats.hostMemoryUsageStatistiques sur l'utilisation de la mémoire de l'hôte
summary.quickStats.distributedCpuEntitlementStatistiques sur les droits CPU distribuée
summary.quickStats.distributedMemoryEntitlementStatistiques sur les droits mémoire distribuée
summary.quickStats.staticCpuEntitlementStatistiques sur les droits des statiques CPU
summary.quickStats.staticMemoryEntitlementStatistiques sur les droits des statiques mémoire
summary.quickStats.privateMemoryStatistiques sur la mémoire privée
summary.quickStats.sharedMemoryStatistiques sur la mémoire partagée
summary.quickStats.swappedMemoryStatistiques sur la mémoire échangée
summary.quickStats.balloonedMemoryStatistiques sur la mémoire gonflée
summary.quickStats.consumedOverheadMemoryStatistiques sur la consommation de mémoire volatile
summary.quickStats.ftLogBandwidthStatistiques sur la bande passante du Log FT
summary.quickStats.ftSecondaryLatencyStatistiques sur la latence secondaire FT
summary.quickStats.compressedMemoryStatistiques sur la mémoire compressée
summary.quickStats.uptimeSecondsStatistiques sur le temps d'activité en seconde
summary.quickStats.ssdSwappedMemoryStatistiques sur la mémoire échangeable SSD
shinken.config.hardware.device.labelSummaryEnsemble de périphériques virtuels appartenant à la machine virtuelle
shinken.guest.diskListe des disques de la machine virtuelle

Champs d'import pour les

ESXs

ESXis

Champs de la sourceDescription
config.product.fullNameNom complet de l'ESXESXi
config.product.osTypeSystème d'exploitation de l'ESXESXi
config.datastorePrincipalUtilisateur principal de la banque de données
config.product.licenseProductNameNom du produit sous licence
config.product.licenseProductVersionVersion du produit sous licence
config.product.productLineIdType de l'ESXESXi
hardware.biosInfo.biosVersionLa version actuelle du BIOS
hardware.cpuInfo.hzVitesse du processeur par cœur
hardware.cpuInfo.numCpuCoresNombre de cœurs CPU physique sur l'hôte
hardware.cpuInfo.numCpuPackagesNombre de package CPU physique sur l'hôte
hardware.cpuInfo.numCpuThreadsNombre de thread physique du CPU sur l'hôte
hardware.memorySizeQuantité totale de mémoire physique sur l'hôte en octet
hardware.systemInfo.modelID du modèle de système
hardware.systemInfo.uuidID du BIOS
runtime.hostMaxVirtualDiskCapacityLa capacité maximale théorique de disque virtuel prise en charge par cet hôte
runtime.inMaintenanceModeIndique si l'hôte est en mode maintenance ou non
runtime.inQuarantineModeIndique si l'hôte est en mode quarantaine ou non
summary.quickStats.uptimeDurée de fonctionnement du système de l'hôte en seconde
summary.rebootRequiredIndique si l'hôte nécessite ou non un redémarrage en raison d'un changement de configuration
summary.hardware.vendorL'identification du vendeur de matériel
summary.hardware.modelL'identification du modèle de système
summary.hardware.uuidL'identification du BIOS matériel
summary.hardware.memorySizeLa taille de la mémoire physique en octet
summary.hardware.cpuModelLe modèle CPU
summary.hardware.cpuMhzLa vitesse des cœurs de l'unité centrale. Il s'agit d'une valeur moyenne s'il y a plusieurs vitesses
summary.runtime.inMaintenanceModeIndique si l'hôte est en mode de maintenance ou non. Ce drapeau est activé lorsque l'hôte est entré en mode de maintenance. Il n'est pas activé pendant la phase d'entrée en mode de maintenance
summary.runtime.bootTimeLe moment où l'hôte a été démarré
summary.runtime.hostMaxVirtualDiskCapacityLa capacité maximale du disque virtuel pour l'hôte
summary.config.portLe numéro de port
summary.config.product.fullNameLe nom complet du produit, y compris les informations sur la version
summary.config.product.buildNuméro de version pour le serveur sur lequel cet appel est effectué ( ne concerne pas l'API )
summary.config.product.apiVersionLa version de l'API sous forme de chaîne de caractères séparés par des points
summary.config.product.licenseProductNameNom du produit de l'ESXESXi
summary.config.product.licenseProductVersionVersion produit de l'ESXESXi
config.network.dnsConfig.dhcpIndiquer si le DHCP (Dynamic Host Control Protocol) est utilisé ou non pour déterminer automatiquement la configuration du DNS
config.network.dnsConfig.hostNameLa partie nom d'hôte du nom DNS
config.network.dnsConfig.domainNameLa partie nom de domaine du nom DNS
config.network.ipRouteConfig.defaultGatewayL'adresse de la passerelle par défaut
config.network.ipV6EnabledSi IpV6 est activé
config.network.atBootIpV6EnabledSi au démarrage, IpV6 est activé
systemResources.config.cpuAllocation.reservationQuantité de ressources CPU garantie disponible pour la machine virtuelle ou le pool de ressource en MHz
systemResources.config.cpuAllocation.limitL'utilisation du CPU d'une machine virtuelle ou d'un pool de ressource ne dépassera pas cette limite, même si des ressources sont disponibles
systemResources.config.memoryAllocation.reservationQuantité de mémoire de ressource garantie disponible pour la machine virtuelle ou le pool de ressource en MB
systemResources.config.memoryAllocation.limitL'utilisation de la mémoire d'une machine virtuelle/du pool de ressources ne dépassera pas cette limite, même si des ressources sont disponibles
shinken.runtime.networkRuntimeInfo.netStackInstanceRuntimeInfo.instanceStateDécrit les informations relatives à l'exécution des instances de la pile réseau
shinken.config.network.vnic.firstAdresse IP de la première interface réseau
shinken.config.network.vnicAdresse IP de toutes les interfaces réseau