Configurer Cloud Monitoring avec un agent autonome

Cloud Monitoring vous aide à obtenir une visibilité sur les performances, la disponibilité et l'état de vos applications et de votre infrastructure. Vous pouvez utiliser Cloud Monitoring et d'autres solutions de Google Cloud Observability pour surveiller, dépanner et exploiter les services VMware Engine à grande échelle.

Vous définissez la configuration des transferts de métriques séparément pour chaque cloud privé à l'aide d'un agent autonome. Chaque cloud privé nécessite un agent distinct, hébergé dans une VM Compute Engine ou VMware.

Une fois le transfert de métriques activé, vous pouvez les consulter dans l'explorateur de métriques Cloud Monitoring. Les types de ressources et les métriques de VMware Engine commencent par external.googleapis.com/vmware/vcenter. Le nom de domaine complet vCenter est inclus dans l'espace de noms.

Avant de commencer

Pour suivre la procédure décrite dans ce document, vous devez d'abord effectuer les opérations suivantes :

  1. Activez l'API Cloud Monitoring.
  2. Identifiez le compte utilisateur de solution à utiliser avec l'agent autonome et définissez un mot de passe sécurisé pour le compte.
  3. Créez une VM Compute Engine ou VMware à utiliser en tant qu'hôte pour l'agent autonome. Les VM Compute Engine doivent se trouver dans un réseau cloud privé virtuel (VPC) qui est appairé au réseau VPC de cloud privé contenant les ressources que vous souhaitez surveiller.

    Pour obtenir un exemple de création d'une VM Compute Engine, consultez la page Démarrage rapide à l'aide d'une VM Linux de Compute Engine. Pour obtenir un exemple de création d'une VM VMware, consultez la page Créer une VM VMware.

Si vous utilisez une VM Compute Engine pour héberger l'agent autonome, Google gère la rotation des clés pour le compte de service que vous connectez. Toutefois, la création d'une VM VMware peut s'avérer rentable si vous disposez d'une capacité inutilisée dans votre cloud privé et que la gestion des rotations de clés ne vous dérange pas.

Quel que soit l'endroit où vous créez la VM hôte de votre agent, celle-ci doit répondre aux exigences suivantes :

Exigences

La VM hôte de votre agent doit disposer de la configuration système suivante :

  • Systèmes d'exploitation Linux compatibles :
    • CentOS 6, 7 ou 8
    • Red Hat Enterprise Linux 6, 7 ou 8
    • SLES 12 ou 15
    • Ubuntu 14, 16, 18 ou 19
  • Au moins 4 Go de mémoire RAM
  • Espace disponible pour l'installation : 300 Mo
  • Répertoire d'installation défini sur /opt/bpagent
  • Utilitaire CLI curl installé

La VM hôte de votre agent doit également avoir accès aux adresses suivantes pour collecter et transférer des métriques et des journaux :

  • Port 443 (TCP) pour la connexion HTTPS à votre serveur vCenter (par défaut)
  • monitoring.googleapis.com:443 (external access)
  • logging.googleapis.com:443 (external access)

Activer le transfert des métriques

Le processus de configuration de la VM hôte de votre agent et d'activation du transfert de métriques comprend les étapes suivantes :

  1. Installer l'agent sur la VM
  2. Spécifier un compte de service
  3. Configurer l'agent de manière à accéder à votre cloud privé pour les métriques
  4. Configurer l'agent de manière à accéder au compte de service pour la création de rapports
  5. Collecter les métriques et les journaux
  6. Configurer un cloud privé pour le transfert syslog

Installer l'agent autonome

Pour installer l'agent sur votre VM hôte, procédez comme suit :

  1. Connectez-vous à la VM hôte de votre agent.
  2. Exécutez le script d'installation à distance :

    sudo sh -c "$(curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/installer/install.sh)"
    

Pour les systèmes sur lesquels la VM hôte de l'agent ne dispose pas d'un accès réseau externe, vous pouvez télécharger l'agent et le script d'installation à l'aide des commandes suivantes :

  • Pour obtenir l'agent autonome, exécutez la commande suivante :

    curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/artifacts/bpagent-headless-vmware.tar.gz > agent.tar.gz
    
  • Pour obtenir le script d'installation, exécutez la commande suivante :

    curl -S https://storage.googleapis.com/gcve-observability-agent/latest/vmware-linux-amd64/installer/install.sh > install.sh
    
  • Pour installer l'agent, exécutez la commande suivante sur la VM hôte de votre agent :

    sudo sh install.sh agent.tar.gz
    

Spécifier un compte de service

Le transfert de données de l'agent vers Cloud Monitoring nécessite un compte de service associé à votre projet Google Cloud. Ce compte de service doit disposer du rôle Administrateur de Monitoring pour les métriques et du rôle Rédacteur de journaux pour les journaux.

Si vous ne possédez pas de compte de service pour les applications de surveillance et de journalisation, créez-en un :

  1. Dans la console Google Cloud, accédez à IAM et administration > Comptes de service.

    Accéder à la page "Comptes de service"

  2. Cliquez sur Créer un compte de service.

  3. Saisissez un nom, un ID et une description pour le compte de service. Nous vous recommandons de noter que le compte est utilisé pour l'intégration de l'agent.

  4. Cliquez sur Créer et continuer.

  5. Pour Rôle, sélectionnez Administrateur de Monitoring.

  6. Pour Rôle, sélectionnez Rédacteur de journaux.

  7. Cliquez sur Continuer.

  8. Cliquez sur OK.

Si vous avez créé une VM VMware en tant que VM hôte de l'agent, récupérez la clé privée du compte de service afin de pouvoir l'utiliser pour configurer l'agent :

  1. Dans la console Google Cloud, accédez à IAM et administration > Comptes de service.

    Accéder à la page "Comptes de service"

  2. Recherchez votre compte de service dans la liste des comptes de service.

  3. Dans la colonne Actions, cliquez sur le menu des actions de compte de service , puis sélectionnez Gérer les clés.

  4. Cliquez sur le menu déroulant Ajouter une clé et sélectionnez Créer une clé.

  5. Sélectionnez le type de clé JSON, puis cliquez sur Créer.

  6. Ouvrez le fichier JSON généré et copiez tout le contenu du fichier. Les collectes de métriques et de journaux utilisent le même fichier de clé JSON.

  7. Sur la VM hôte de votre agent, copiez le fichier de clé JSON dans le répertoire /opt/bpagent/config/destinations/google_cloud.

Configurer l'agent de manière à accéder à votre cloud privé pour les métriques

L'agent autonome doit accéder à votre cloud privé pour collecter des métriques. Sur la VM hôte de votre agent, configurez l'accès en copiant et en configurant le fichier vmware_vcenter.yaml :

  1. Copiez vmware_vcenter.yaml dans le répertoire config/metrics/sources :

    cp /opt/bpagent/config/metrics/examples/vmware_vcenter.yaml /opt/bpagent/config/metrics/sources
    
  2. Modifiez le fichier vmware_vcenter.yaml pour qu'il corresponde aux informations de votre environnement VMware Engine :

    collection_interval: 1m0s
    connection_info:
    connection_timeout: "30"
    enable_performance_counters: "true"
    host: VCSA_FQDN
    password: SOLUTION_USER_PASSWORD
    performance_counter_end_time: ""
    performance_counter_query_timeout: "15"
    performance_counter_start_time: ""
    port: "443"
    sdk_path: ""
    ssl_config: "No Verify"
    username: SOLUTION_USER_ACCOUNT

    Remplacez les éléments suivants :

    • VCSA_FQDN : nom de domaine complet de vCenter Server Appliance dans votre cloud privé
    • SOLUTION_USER_PASSWORD : mot de passe correspondant au compte utilisateur de solution utilisé
    • SOLUTION_USER_ACCOUNT : compte utilisateur de solution utilisé par l'agent pour signaler des informations

Configurer l'agent de manière à accéder au compte de service pour la création de rapports

L'agent autonome doit avoir accès à Google Cloud Observability pour envoyer des métriques et des journaux. Configurez l'agent de manière à accéder au projet utilisé pour la création de rapports via le compte de service disposant des autorisations de surveillance et de journalisation.

Sur la VM hôte de l'agent, copiez et configurez le fichier log_agent.yaml :

  1. Copiez le fichier log_agent.example.yaml dans log_agent.yaml avant de le modifier :

    cp /opt/bpagent/config/log_agent.example.yaml /opt/bpagent/config/log_agent.yaml
    
  2. En bas de log_agent.yaml, saisissez le nom de votre projet et le chemin d'accès complet au fichier de clé JSON. Pour les VM hôtes d'agent créées dans Compute Engine, supprimez ou passez en commentaire la ligne credentials_file.

    ...
    - id: my_project_destination
      project_id: PROJECT_ID
      type: google_cloud_output
      credentials_file: /opt/bpagent/config/destinations/google_cloud/JSON_KEY_FILE

    Remplacez les éléments suivants :

    • PROJECT_ID : ID du projet dans lequel vous souhaitez générer les journaux
    • JSON_KEY_FILE : nom du fichier de clé privée de votre compte de service. Supprimez ou passez en commentaire cette ligne pour les VM hôtes d'agent créées dans Compute Engine.

    Si vous devez transférer le syslog à partir d'ESXi, dans l'agent de journalisation autonome, procédez comme suit pour remplacer le port par défaut 5142 par 514:

    1. Accédez à /opt/bpagent/config.
    2. Remplacez le numéro de port par 514 comme suit:
    - id: vmware-vcenter-logs
        # A syslog address of the form `:`
        listen_address: 0.0.0.0:514
        # Enable TLS for the TCP listener
        enable_tls: false
    

Collecter les métriques et les journaux

Pour collecter des métriques ou des journaux, l'agent autonome doit s'exécuter sur votre VM hôte. Connectez-vous à la VM hôte de l'agent et utilisez les commandes suivantes pour démarrer ou arrêter l'agent :

  • Pour démarrer l'agent sur votre VM hôte, exécutez la commande suivante :

    systemctl start bpagent
    
  • Pour arrêter l'agent sur votre VM hôte, exécutez la commande suivante :

    systemctl stop bpagent
    

Configurer un cloud privé pour le transfert syslog

VMware Engine s'intègre à Cloud Logging en transférant les messages syslog de vCenter et NSX-T à l'agent autonome. L'agent autonome est configuré pour analyser les journaux vCenter et NSX-T afin que Cloud Logging puisse les lire.

Pour transférer des messages syslog à partir de VMware Engine, procédez comme suit :

  • Pour le transfert syslog vCenter, suivez les étapes décrites dans la section Transférer des messages syslog vCenter. Dans le champ Serveur, saisissez l'adresse IP ou le nom d'hôte de la VM hôte de votre agent. L'agent autonome utilise le protocole de communication TCP et écoute sur le port 5142. L'agent autonome doit s'exécuter pour que la configuration syslog se connecte correctement.
  • Pour le transfert syslog NSX-T, suivez les étapes décrites dans la section Transférer des messages syslog NSX-T. Dans le champ Nom de domaine complet ou adresse IP, saisissez l'adresse IP ou le nom d'hôte de la VM hôte de votre agent. L'agent autonome utilise le protocole de communication TCP et écoute sur le port 5142.

Si vous prévoyez de transférer des messages syslog à partir d'hôtes ESXi, modifiez le port par défaut sur lequel l'agent de journalisation écoute de 5142 à 514. Dans ce cas, utilisez le même port (514) pour transférer le syslog à partir de vCenter et de NSX-T.

Désinstaller l'agent

Pour supprimer l'agent d'une VM, connectez-vous à la VM de l'agent et exécutez les commandes suivantes dans la ligne de commande :

  1. Arrêtez et désactivez l'agent autonome :

    systemctl stop bpagent
    
    systemctl disable bpagent
    
  2. Exécutez les commandes suivantes pour supprimer le service de l'agent autonome :

    rm /etc/systemd/system/bpagent.service
    
    rm -rf /opt/bpagent
    
  3. Mettez à jour la configuration système en fonction des modifications apportées à votre service et effacez les unités défaillantes :

    systemctl daemon-reload
    
    systemctl reset-failed
    

Tableaux de bord Cloud Monitoring

Après avoir activé le transfert de métriques, vous pouvez installer des tableaux de bord prédéfinis pour VMware Engine. Les tableaux de bord suivants vous fournissent des informations agrégées sur toutes les sources que vous spécifiez :

  • Tableau de bord "Présentation" : affiche une vue générale qui répertorie les principales ressources telles que les centres de données, les clusters et les VM.
  • Tableau de bord "Contention" : affiche l'utilisation des ressources pour le stockage, le processeur, la mémoire et la mise en réseau pour vous aider à localiser les meilleures VM et hôtes par demande de ressources.
  • Tableau de bord "Performances des machines virtuelles" : affiche des indicateurs de performances des instances de machines virtuelles (VM) qui peuvent être filtrés par nom d'instance et utilisés pour comparer les performances de plusieurs VM.

Pour accéder à un tableau de bord VMware Engine, procédez comme suit :

  1. Dans la console Google Cloud, accédez à Surveillance > Tableaux de bord.

    Accéder à la page "Tableaux de bord"

  2. Dans l'onglet Exemple de bibliothèque, sélectionnez la catégorie VMware.

  3. Sélectionnez le tableau de bord qui vous intéresse, puis cliquez sur Importer.

Les définitions de ces tableaux de bord sont stockées sur GitHub. Pour connaître les étapes d'installation ou d'affichage des définitions en tant que tableaux de bord personnalisés, consultez la section Installer des exemples de tableaux de bord.

Alertes Cloud Monitoring

Les métriques de votre intégration peuvent déclencher des alertes et des notifications en fonction de seuils et d'incidents personnalisés. Par exemple, vous pouvez demander à Cloud Monitoring de vous envoyer une notification par SMS lorsqu'un utilisateur crée une VM dans votre cloud privé.

Pour plus d'informations, consultez la page Présentation des alertes.

Liste les métriques collectées

Une fois le transfert de métriques activé, vous pouvez les consulter dans l'explorateur de métriques Cloud Monitoring. Les types de ressources et de métriques VMware Engine commencent par le préfixe external.googleapis.com/vmware/vcenter. dans l'explorateur de métriques.

Voici la liste complète des métriques collectées pour VMware Engine, sans le préfixe :

Type de ressource et de métrique Description
cluster.cpu.available Processeur disponible dans un cluster, en mégahertz
cluster.memory.available Mémoire disponible dans un cluster, en octets
cluster.cpu.threads Nombre de threads de processeur dans un cluster
cluster.cpu.effective Processeur effectif dans un cluster depuis tous les hôtes en cours d'exécution. Les hôtes qui ne répondent pas ou sont en mode maintenance ne sont pas pris en compte.
cluster.effective_hosts Nombre d'hôtes effectifs dans un cluster. Les hôtes qui ne répondent pas ou sont en mode maintenance ne sont pas pris en compte.
cluster.memory.effective Mémoire effective dans un cluster depuis tous les hôtes en cours d'exécution. Les hôtes qui ne répondent pas ou sont en mode maintenance ne sont pas pris en compte.
cluster.hosts Nombre d'hôtes dans un cluster
cluster.vsan.latency Latence vSAN d'un cluster, en microsecondes
cluster.vsan.throughput Débit en lecture/écriture vSAN d'un cluster, en octets
cluster.vsan.iops IOPS vSAN d'un cluster
cluster.vsan.congestions Valeur de congestion vSAN d'un cluster
cluster.vsan.oio E/S en attente vSAN (oio) dans un cluster
datacenter.cpu.average_host_utilization Utilisation moyenne de l'hôte d'un centre de données, en pourcentage
datacenter.clusters Nombre de clusters dans un centre de données
datacenter.datastores Nombre de datastores dans un centre de données
datacenter.hosts Nombre d'hôtes dans un centre de données
datacenter.host_systems Nombre de systèmes hôtes dans un centre de données
datacenter.hosts/powered_on Nombre d'hôtes activés dans un centre de données
datacenter.hosts/powered_off Nombre d'hôtes activés dans un centre de données
datacenter.disk/space Espace disque total dans un centre de données, en téraoctets
datastore.capacity_bytes Capacité d'un datastore, en octets
datastore.capacity_utilization Utilisation de la capacité d'un datastore, en pourcentage
host_system.network.transmitted_packets Nombre de paquets réseau transmis par le système hôte
host_system.network.received_packets Nombre de paquets réseau reçus par le système hôte
host_system.dropped_packets Nombre de paquets réseau supprimés par le système hôte
host_system.network.adapters Nombre de cartes réseau du système hôte
host_system.memory.utilization Utilisation de la mémoire du système hôte, en pourcentage
host_system.memory.utilization_ratio Taux d'utilisation de la mémoire du système hôte
host_system.memory.used Mémoire utilisée par le système hôte, en mégaoctets
host_system.disk.read Lecture du disque du système hôte, en kilo-octets par seconde
host_system.disk_latency Latence du disque du système hôte, en millisecondes
host_system.cpu.usage Utilisation du processeur du système hôte, en pourcentage
host_system.cpu.utilization_ratio Taux d'utilisation du processeur du système hôte
host_system.cpu.capacity Capacité de processeur réservée du système hôte, en mégahertz
host_system.cpu.reserved_capacity Capacité de processeur réservée du système hôte, en mégahertz
host_system.cpu.average_speed Vitesse moyenne du processeur du système hôte, en mégahertz
host_system.cpu.used Processeur utilisé par le système hôte, en mégahertz
host_system.vsan.throughput Débit en lecture/écriture vSAN du système hôte, en octets
host_system.vsan.iops IOPS vSAN du système hôte
host_system.vsan.latency Latence vSAN du système hôte, en microsecondes
host_system.vsan.client_cache_hits Succès de cache (hit) du client vSAN du système hôte
host_system.vsan.client_cache_hit_rate Taux de succès de cache (hit) du client vSAN du système hôte, en pourcentage
host_system.vsan.congestions Valeur de congestion vSAN du système hôte
resource_pool.memory.swapped_bytes Mémoire étendue vCenter, en mégaoctets
resource_pool.memory.shared_bytes Mémoire partagée vCenter, en mégaoctets
resource_pool.memory.private_bytes Mémoire privée vCenter, en mégaoctets
resource_pool.memory.shares Nombre de partages de mémoire vCenter
resource_pool.memory.overhead_usage_bytes Utilisation de la mémoire vCenter entraînant des coûts supplémentaires, en mégaoctets
resource_pool.memory.host_usage_bytes Utilisation de la mémoire hôte vCenter, en mégaoctets
resource_pool.memory.active_guest_usage_bytes Utilisation active de la mémoire invitée vCenter, en mégaoctets
resource_pool.memory.balloon_size Taille de la mémoire de gonflage vCenter, en mégaoctets
resource_pool.cpu.usage Processeur utilisé par vCenter, en mégahertz
resource_pool.cpu.shares Nombre de partages de processeurs dans le pool de ressources, en mégaoctets
vm.memory.ballooned Taille de la mémoire de gonflage de la VM, en mégaoctets
vm.network.throughput_bytes Débit réseau de la VM, en kilo-octets par seconde
vm.memory.used_percent Mémoire utilisée par la VM, en pourcentage de la mémoire disponible
vm.memory.usage_bytes Mémoire utilisée par la VM, en mégaoctets
vm.disk.throughput_bytes Débit en lecture/écriture du disque de la VM, en kilo-octets par seconde
vm.disk.used_percent Utilisation du disque de la VM, en pourcentage de l'espace de stockage disponible
vm.disk.usage_bytes Utilisation du disque de la VM, en octets
vm.disk.free_bytes Espace disque disponible de la VM, en octets
vm.cpu.used_percent Utilisation du processeur de la VM, en pourcentage du processeur disponible
vm.cpu.usage Utilisation du processeur de la VM, en mégahertz
vm.cpu.ready_percent CPU de la VM prête mais ne pouvant pas être exécutée, en pourcentage
vm.vsan.throughput Débit en écriture vSAN de la VM, en octets
vm.vsan.iops IOPS vSAN de la VM
vm.vsan.latency Latence vSAN de la VM, en microsecondes
vm.vsan.readCount Nombre de lectures vSAN de la VM
vm.vsan.writeCount Nombre d'écritures vSAN de la VM
vsphere.cpu.available Processeur disponible sur l'ensemble des clusters gérés par vSphere, en gigahertz
vsphere.memory.available Mémoire disponible sur les clusters gérés par vSphere, en gigaoctets
vsphere.clusters.total Nombre de clusters gérés par vSphere
vsphere.clusters Nombre de clusters gérés par vSphere avec le code couleur d'état du cluster (par exemple, vert, gris, rouge ou jaune)
vsphere.cpu.cpus Nombre total de cœurs de processeur du système hôte gérés par vSphere
vsphere.datacenters Nombre de centres de données gérés par vSphere
vsphere.datastores.total Nombre de datastores dans vSphere
vsphere.datastores Nombre de datastores gérés par vSphere avec le code couleur d'état du datastore (par exemple, vert, gris, rouge ou jaune)
vsphere.disk.space Espace disque total associé dans vSphere, en téraoctets
vsphere.host_systems Nombre de systèmes hôtes dans vSphere
vsphere.hosts Nombre de systèmes hôtes gérés par vSphere avec le code couleur de l'état du système hôte (par exemple, vert, gris, rouge ou jaune)
vsphere.network.adapters Nombre de cartes réseau dans vSphere
vsphere.hosts.powered_off Nombre d'hôtes activés dans vSphere
vsphere.hosts.powered_on Nombre d'hôtes activés dans vSphere
vsphere.virtual_machines.total Nombre de VM sur tous les clusters vSphere
vsphere.virtual_machines Nombre de VM gérées par vSphere avec le code couleur d'état de la VM (par exemple, vert, gris, rouge ou jaune)