Grafana vous permet d'interroger, de visualiser, d'alerter et d'explorer les mesures, quel que soit l'endroit où elles sont stockées. Grafana fournit des outils pour former des graphiques et des visualisations à partir des données d'application. Installez le module Tanzu pour Grafana afin de générer et d'afficher des mesures pour les clusters TKG.
Conditions requises pour les modules
- Provisionnez un cluster TKG 2 avec une classe de stockage par défaut. Reportez-vous à la section Provisionnement de clusters TKG 2 sur le Superviseur.
Note : Grafana nécessite une classe de stockage persistant par défaut. Si vous disposez d’un cluster TKG 2 sans classe de stockage par défaut, vous pouvez le corriger. Reportez-vous à la section Configuration de stockage persistant requise par défaut pour les modules Tanzu.
- Connectez-vous au cluster TKG 2. Reportez-vous à la section Gestion des identités et des accès pour les clusters TKG 2 sur le Superviseur.
- Conditions préalables à l'installation du module Tanzu. Reportez-vous à la section Installer les conditions préalables du module Tanzu à l'aide de Kubectl.
Une fois le module Grafana déployé, vous accédez au tableau de bord Grafana via HTTP/S à l'aide de l'adresse IP exposée par l'un des types de service Kubernetes suivants : ClusterIP (par défaut), NodePort ou LoadBalancer. Pour accéder au tableau de bord Grafana depuis l'extension du cluster, déployez l'extension Contour avant de déployer Grafana.
Grafana prend en charge les types de service Kubernetes suivants :
Type de service | Description | Accessibilité |
---|---|---|
ClusterIP |
Expose le service sur une adresse IP interne au cluster. | Le service est uniquement accessible depuis le cluster. |
NodePort |
Expose le service sur l'adresse IP de chaque nœud sur un port statique. | Le service est accessible à l'extérieur du cluster. |
LoadBalancer |
Expose le service en externe à l'aide d'un équilibrage de charge. | Le service est accessible à l'extérieur du cluster. |
ClusterIP
est la valeur par défaut, mais elle est uniquement accessible depuis le cluster. Si vous utilisez la mise en réseau NSX-T pour le Superviseur, créez un service Contour Envoy de type LoadBalancer. Si vous utilisez la mise en réseau vSphere vDS pour le Superviseur, créez un service Contour Envoy de type LoadBalancer ou NodePort, selon vos exigences. Reportez-vous à la section Installer le module Tanzu pour l'entrée Contour à l'aide de Kubectl.
Composant de Grafana
Conteneur | Type de ressource | Réplicas | Description |
---|---|---|---|
Grafana | Déploiement | 2 | Visualisation des données |
Installer le module Grafana
Installez le module Grafana.
- Créez la spécification
grafana.yaml
.apiVersion: v1 kind: ServiceAccount metadata: name: grafana-sa namespace: tkg-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: grafana-role-binding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: cluster-admin subjects: - kind: ServiceAccount name: grafana-sa namespace: tkg-system --- apiVersion: packaging.carvel.dev/v1alpha1 kind: PackageInstall metadata: name: grafana namespace: tkg-system spec: serviceAccountName: grafana-sa packageRef: refName: grafana.tanzu.vmware.com versionSelection: constraints: 1.20.2+vmware.1-tkg.1-rc.2 values: - secretRef: name: grafana-data-values --- apiVersion: v1 kind: Secret metadata: name: grafana-data-values namespace: tkg-system stringData: values.yml: | --- grafana: pspNames: "vmware-system-restricted"
- Installez le module Grafana.
kubectl apply -f grafana.yaml
Accéder au tableau de bord Grafana à l'aide d'un service Envoy Contour de type LoadBalancer
- Obtenez l'adresse
External-IP
pour le service Envoy de type LoadBalancer.kubectl get service envoy -n tanzu-system-ingress
Vous devez voir l'adresseExternal-IP
renvoyée, par exemple :NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE envoy LoadBalancer 10.99.25.220 10.195.141.17 80:30437/TCP,443:30589/TCP 3h27m
Vous pouvez également obtenir l'adresseExternal-IP
à l'aide de la commande suivante.kubectl get svc envoy -n tanzu-system-ingress -o jsonpath='{.status.loadBalancer.ingress[0]}'
- Pour vérifier l'installation de l'extension Grafana, mettez à jour votre fichier
/etc/hosts
local avec le nom de domaine complet Grafana mappé à l'adresseExternal-IP
de l'équilibrage de charge, par exemple :127.0.0.1 localhost 127.0.1.1 ubuntu # TKG Grafana Extension with Envoy Load Balancer 10.195.141.17 grafana.system.tanzu
- Accédez au tableau de bord Grafana via
https://grafana.system.tanzu
.Étant donné que le site utilise des certificats auto-signés, vous pouvez éventuellement recevoir un avertissement de sécurité spécifique du navigateur avant de pouvoir accéder au tableau de bord.
- Pour un accès en production, créez deux enregistrements CNAME sur un serveur DNS qui mappent l'adresse
External-IP
de l'équilibrage de charge du service Envoy au tableau de bord Grafana.
Accéder au tableau de bord Grafana à l'aide d'un service Envoy Contour de type NodePort
- Changez de contexte pour utiliser l'Espace de noms vSphere où le cluster est provisionné.
kubectl config use-context VSPHERE-NAMESPACE
- Répertoriez les nœuds du cluster.
kubectl get virtualmachines
- Choisissez l'un des nœuds worker et décrivez-le à l'aide de la commande suivante.
kubectl describe virtualmachines tkgs-cluster-X-workers-9twdr-59bc54dc97-kt4cm
- Localisez l'adresse IP de la machine virtuelle, par exemple
Vm Ip: 10.115.22.43
. - Pour vérifier l'installation de l'extension Grafana, mettez à jour votre fichier
/etc/hosts
local avec le nom de domaine complet Grafana mappé à l'adresse IP du nœud worker, par exemple :127.0.0.1 localhost 127.0.1.1 ubuntu # TKGS Grafana with Envoy NodePort 10.115.22.43 grafana.system.tanzu
- Accédez au tableau de bord Grafana via
https://grafana.system.tanzu
.Étant donné que le site utilise des certificats auto-signés, vous pouvez éventuellement recevoir un avertissement de sécurité spécifique du navigateur avant de pouvoir accéder au tableau de bord.
Paramètres de configuration Grafana
grafana-data-values.yaml
.
Paramètre | Description | Type | Par défaut |
---|---|---|---|
monitoring.namespace | Espace de noms dans lequel Prometheus sera déployé | string | tanzu-system-monitoring |
monitoring.create_namespace | L'indicateur permet de savoir s'il faut créer l'espace de noms spécifié par monitoring.namespace | booléen | false |
monitoring.grafana.cluster_role.apiGroups | Groupe d'API défini pour le rôle de cluster Grafana | liste | [""] |
monitoring.grafana.cluster_role.resources | Ressources définies pour le rôle de cluster Grafana | liste | ["configmaps", "secrets"] |
monitoring.grafana.cluster_role.verbs | autorisation d'accès définie pour clusterrole | liste | ["get", "watch", "list"] |
monitoring.grafana.config.grafana_ini | Détails du fichier de configuration Grafana | fichier de config | grafana.ini Dans ce fichier, l'URL |
monitoring.grafana.config.datasource.type | Type de source de données Grafana | string | prometheus |
monitoring.grafana.config.datasource.access | Mode d'accès. Proxy ou direct (serveur ou navigateur dans l'interface utilisateur) | string | proxy |
monitoring.grafana.config.datasource.isDefault | Marquer comme source de données Grafana par défaut | booléen | true |
monitoring.grafana.config.provider_yaml | Fichier de config pour définir le fournisseur du tableau de bord grafana | Fichier yaml | provider.yaml |
monitoring.grafana.service.type | Type de service pour exposer Grafana. Valeurs prises en charge : ClusterIP, NodePort, LoadBalancer | string | vSphere : NodePort, aws/azure : LoadBalancer |
monitoring.grafana.pvc.storage_class | Définissez le mode d'accès pour la réclamation de volume persistant. Valeurs prise en charge : ReadWriteOnce, ReadOnlyMany, ReadWriteMany | string | ReadWriteOnce |
monitoring.grafana.pvc.storage | Définir la taille de stockage pour la réclamation de volume persistant | string | 2Gi |
monitoring.grafana.deployment.replicas | Nombre de réplicas grafana | entier | 1 |
monitoring.grafana.image.repository | Emplacement du référentiel avec l'image Grafana. La valeur par défaut est le registre VMware public. Modifiez cette valeur si vous utilisez un référentiel privé (par exemple, un environnement air-gapped). | string | projects.registry.vmware.com/tkg/grafana |
monitoring.grafana.image.name | Nom de l'image Grafana | string | grafana |
monitoring.grafana.image.tag | Balise d'image Grafana. Il peut être nécessaire de mettre à jour cette valeur si vous mettez à niveau la version. | string | v7.3.5_vmware.1 |
monitoring.grafana.image.pullPolicy | Stratégie d'extraction d'image Grafana | string | IfNotPresent |
monitoring.grafana.secret.type | Type secret défini pour le tableau de bord Grafana | string | Opaque |
monitoring.grafana.secret.admin_user | Nom d'utilisateur pour accéder au tableau de bord Grafana | string | YWRtaW4= La valeur est codée en base64, à décoder : |
monitoring.grafana.secret.admin_password | Mot de passe pour accéder au tableau de bord Grafana | string | null |
monitoring.grafana.secret.ldap_toml | Si vous utilisez l'authentification LDAP, chemin d'accès au fichier de configuration LDAP | string | "" |
monitoring.grafana_init_container.image.repository | Référentiel contenant l'image de conteneur d'initialisation Grafana. La valeur par défaut est le registre VMware public. Modifiez cette valeur si vous utilisez un référentiel privé (par exemple, un environnement air-gapped). | string | projects.registry.vmware.com/tkg/grafana |
monitoring.grafana_init_container.image.name | Nom de l'image de conteneur d'initialisation Grafana | string | k8s-sidecar |
monitoring.grafana_init_container.image.tag | Balise d'image de conteneur d'initialisation Grafana. Il peut être nécessaire de mettre à jour cette valeur si vous mettez à niveau la version. | string | 0.1.99 |
monitoring.grafana_init_container.image.pullPolicy | Stratégie d'extraction d'image de conteneur d'initialisation Grafana | string | IfNotPresent |
monitoring.grafana_sc_dashboard.image.repository | Référentiel contenant l'image du tableau de bord Grafana. La valeur par défaut est le registre VMware public. Modifiez cette valeur si vous utilisez un référentiel privé (par exemple, un environnement air-gapped). | string | projects.registry.vmware.com/tkg/grafana |
monitoring.grafana_sc_dashboard.image.name | Nom de l'image du tableau de bord Grafana | string | k8s-sidecar |
monitoring.grafana_sc_dashboard.image.tag | Balise d'image du tableau de bord Grafana. Il peut être nécessaire de mettre à jour cette valeur si vous mettez à niveau la version. | string | 0.1.99 |
monitoring.grafana_sc_dashboard.image.pullPolicy | Stratégie d'extraction d'image du tableau de bord Grafana | string | IfNotPresent |
monitoring.grafana.ingress.enabled | Activer/désactiver l'entrée pour Grafana | booléen | true |
monitoring.grafana.ingress.virtual_host_fqdn | Nom d'hôte pour accéder à Grafana | string | grafana.system.tanzu |
monitoring.grafana.ingress.prefix | Préfixe du chemin d'accès pour Grafana | string | / |
monitoring.grafana.ingress.tlsCertificate.tls.crt | Certificat facultatif pour entrée si vous souhaitez utiliser votre propre certificat TLS. Un cert auto-signé est généré par défaut | string | Certificat généré |
monitoring.grafana.ingress.tlsCertificate.tls.key | Clé privée de certificat facultatif pour entrée si vous souhaitez utiliser votre propre certificat TLS. | string | Clé de certificat généré |