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

Respectez les exigences suivantes avant d'installer le module Tanzu pour Grafana.

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

Le module Grafana installe un conteneur unique. Pour plus d'informations, consultez https://grafana.com/. Le module extrait les conteneurs du registre public VMware spécifié dans le référentiel de modules.
Conteneur Type de ressource Réplicas Description
Grafana Déploiement 2 Visualisation des données

Installer le module Grafana

Installez le module Grafana.

  1. 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"
    
  2. 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

Si le service Envoy Contour de type LoadBalancer est déployé et que vous l'avez spécifié dans le fichier de configuration Grafana, obtenez l'adresse IP externe de l'équilibrage de charge et créez des enregistrements DNS pour le nom de domaine complet Grafana.
  1. Obtenez l'adresse External-IP pour le service Envoy de type LoadBalancer.
    kubectl get service envoy -n tanzu-system-ingress
    Vous devez voir l'adresse External-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'adresse External-IP à l'aide de la commande suivante.
    kubectl get svc envoy -n tanzu-system-ingress -o jsonpath='{.status.loadBalancer.ingress[0]}'
  2. 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 External-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
    
  3. 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.

  4. 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

Si le service Envoy Contour requis de type NodePort est déployé et que vous l'avez spécifié dans le fichier de configuration Grafana, obtenez l'adresse IP de la machine virtuelle d'un nœud worker et créez des enregistrements DNS pour le nom de domaine complet Grafana.
  1. Changez de contexte pour utiliser l'Espace de noms vSphere où le cluster est provisionné.
    kubectl config use-context VSPHERE-NAMESPACE
  2. Répertoriez les nœuds du cluster.
    kubectl get virtualmachines
  3. 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
  4. Localisez l'adresse IP de la machine virtuelle, par exemple Vm Ip: 10.115.22.43.
  5. 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
    
  6. 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

La configuration Grafana est définie dans grafana-data-values.yaml.
Tableau 1. Paramètres de configuration Grafana
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 grafana_net est utilisée pour l'intégration à Grafana (par exemple, pour importer le tableau de bord directement depuis Grafana.com).

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 : echo "xxxxxx" | base64 --decode

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é