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 composants de Google Cloud Observability dépanner et exploiter des 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 :
- Activez l'API Cloud Monitoring.
- Identifiez le compte utilisateur de solution à utiliser avec l'agent autonome et définissez un mot de passe sécurisé pour le compte.
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 :
- Installer l'agent sur la VM
- Spécifier un compte de service
- Configurer l'agent de manière à accéder à votre cloud privé pour les métriques
- Configurer l'agent de manière à accéder au compte de service pour la création de rapports
- Collecter les métriques et les journaux
- 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 :
- Connectez-vous à la VM hôte de votre agent.
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 :
Dans la console Google Cloud, accédez à la page IAM et Admin > Comptes de service.
Cliquez sur Créer un compte de service.
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.
Cliquez sur Créer et continuer.
Pour Rôle, sélectionnez Administrateur de Monitoring.
Pour Rôle, sélectionnez Rédacteur de journaux.
Cliquez sur Continuer.
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 :
Dans la console Google Cloud, accédez à IAM et administration > Comptes de service.
Recherchez votre compte de service dans la liste des comptes de service.
Dans la colonne Actions, cliquez sur le menu des actions de compte de service
, puis sélectionnez Gérer les clés.Cliquez sur le menu déroulant Ajouter une clé et sélectionnez Créer une clé.
Sélectionnez le type de clé JSON, puis cliquez sur Créer.
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.
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
:
Copiez
vmware_vcenter.yaml
dans le répertoireconfig/metrics/sources
:cp /opt/bpagent/config/metrics/examples/vmware_vcenter.yaml /opt/bpagent/config/metrics/sources
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 a besoin d'accéder à 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
:
Copiez le fichier
log_agent.example.yaml
danslog_agent.yaml
avant de le modifier :cp /opt/bpagent/config/log_agent.example.yaml /opt/bpagent/config/log_agent.yaml
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 lignecredentials_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 journauxJSON_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
par514
:- Accédez à
/opt/bpagent/config
. - 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 envisagez de transférer le journal 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 journal 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 :
Arrêtez et désactivez l'agent autonome :
systemctl stop bpagent
systemctl disable bpagent
Exécutez les commandes suivantes pour supprimer le service de l'agent autonome :
rm /etc/systemd/system/bpagent.service
rm -rf /opt/bpagent
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 :
Dans la console Google Cloud, accédez à Monitoring > Tableaux de bord.
Dans l'onglet Exemple de bibliothèque, sélectionnez la catégorie VMware.
Sélectionnez le tableau de bord qui vous intéresse, puis cliquez sur file_downloadImporter.
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) |