O Grafana permite consultar, visualizar, alertar e explorar métricas, não importa onde elas estejam armazenadas. O Grafana fornece ferramentas para formar gráficos e visualizações a partir dos dados do aplicativo. Instale o Tanzu Package for Grafana para gerar e visualizar métricas para clusters TKG.

Requisitos do pacote

Obedeça aos seguintes requisitos para instalar o Tanzu Package for Grafana.

Depois que o pacote do Grafana for instalado, você acessará o Painel do Grafana via HTTP/S usando o endereço IP exposto por um dos seguintes tipos de serviço do Kubernetes: ClusterIP (padrão), NodePort ou LoadBalancer. Para acessar o Painel do Grafana de fora do cluster, implante a extensão Contour antes de implantar o Grafana.

O Grafana é compatível com os seguintes tipos de serviço do Kubernetes:

Tipo de serviço Descrição Acessibilidade
ClusterIP Expõe o serviço em um IP interno do cluster. O serviço só pode ser acessado de dentro do cluster.
NodePort Expõe o serviço no IP de cada nó em uma porta estática. O serviço pode ser acessado de fora do cluster.
LoadBalancer Expõe o Serviço externamente usando um balanceador de carga. O serviço pode ser acessado de fora do cluster.

ClusterIP é o padrão, mas só pode ser acessado de dentro do cluster. Se você estiver usando a rede NSX-T para Supervisor, crie um serviço do Contour Envoy do tipo LoadBalancer. Se você estiver usando a rede do vSphere vDS para Supervisor, crie um serviço do Contour Envoy do tipo LoadBalancer ou NodePort, dependendo dos seus requisitos. Consulte Instalar o pacote Tanzu para o Contour Ingress usando o Kubectl.

Componentes do Grafana

O pacote do Grafana instala um único contêiner. Para obter mais informações, consulte https://grafana.com/. O pacote extrai os contêineres do registro público VMware especificado no Repositório de Pacotes.
Contêiner Tipo de recurso Réplicas Descrição
Grafana Implantação 2 Visualização de dados

Instalar o pacote Grafana

Instale o pacote do Grafana.

  1. Crie a especificação 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. Instale o pacote do Grafana.
    kubectl apply -f grafana.yaml

Acessar o painel do Grafana usando um serviço Contour Envoy do tipo LoadBalancer

Se o serviço de pré-requisito do Contour Envoy do tipo LoadBalancer for implantado e você tiver especificado isso no arquivo de configuração do Grafana, obtenha o endereço IP externo do balanceador de carga e crie registros DNS para o FQDN do Grafana.
  1. Obtenha o endereço External-IP para o serviço Envoy do tipo LoadBalancer.
    kubectl get service envoy -n tanzu-system-ingress
    Você deve ver o endereço External-IP retornado, por exemplo:
    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
    Como alternativa, você pode obter o endereço External-IP usando o seguinte comando.
    kubectl get svc envoy -n tanzu-system-ingress -o jsonpath='{.status.loadBalancer.ingress[0]}'
  2. Para verificar a instalação da extensão do Grafana, atualize o arquivo /etc/hosts local com o FQDN do Grafana mapeado para o endereço External-IP do balanceador de carga, por exemplo:
    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. Acesse o Painel do Grafana navegando até https://grafana.system.tanzu.

    Como o site usa certificados autoassinados, talvez seja necessário navegar por um aviso de segurança específico do navegador antes de poder acessar o painel.

  4. Para acesso de produção, crie dois registros CNAME em um servidor DNS que mapeie o endereço External-IP do Balanceador de Carga do serviço Envoy para o Painel do Grafana.

Acessar o painel do Grafana usando um serviço Contour Envoy do tipo NodePort

Se o serviço de pré-requisito do Contour Envoy do tipo NodePort for implantado e você tiver especificado isso no arquivo de configuração do Grafana, obtenha o endereço IP da máquina virtual de um nó do trabalhador e crie registros DNS para o FQDN do Grafana.
  1. Alterne o contexto para o vSphere Namespace em que o cluster é provisionado.
    kubectl config use-context VSPHERE-NAMESPACE
  2. Liste os nós no cluster.
    kubectl get virtualmachines
  3. Escolha um dos nós do trabalhador e descreva-o usando o seguinte comando.
    kubectl describe virtualmachines tkgs-cluster-X-workers-9twdr-59bc54dc97-kt4cm
  4. Localize o endereço IP da máquina virtual, por exemplo, Vm Ip: 10.115.22.43.
  5. Para verificar a instalação da extensão do Grafana, atualize o arquivo /etc/hosts local com o FQDN do Grafana mapeado para um endereço IP do nó do trabalhador, por exemplo:
    127.0.0.1 localhost
    127.0.1.1 ubuntu
    # TKGS Grafana with Envoy NodePort
    10.115.22.43 grafana.system.tanzu
    
  6. Acesse o Painel do Grafana navegando até https://grafana.system.tanzu.

    Como o site usa certificados autoassinados, talvez seja necessário navegar por um aviso de segurança específico do navegador antes de poder acessar o painel.

Parâmetros de configuração do Grafana

A configuração do Grafana é definida em grafana-data-values.yaml.
Tabela 1. Parâmetros de configuração do Grafana
Parâmetro Descrição Tipo Padrão
Monitoring.namespace Namespace em que o Prometheus será implantado seqüência de caracteres tanzu-system-monitoring
Monitoring.create_namespace O sinalizador indica se o namespace especificado por monitoring.namespace deve ser criado booliano falso
Monitoring.grafana.cluster_role.apiGroups grupo api definido para o grafana clusterrole listar [""]
Monitoring.grafana.cluster_role.resources recursos definidos para o grafana clusterrole listar ["configmaps", "secrets"]
Monitoring.grafana.cluster_role.verbs permissão de acesso definida para clusterrole listar ["get", "watch", "list"]
Monitoring.grafana.config.grafana_ini Detalhes do arquivo de configuração do Grafana arquivo de configuração grafana.ini

Nesse arquivo, a URL grafana_net é usada para integração com o Grafana, por exemplo, para importar o painel diretamente do Grafana.com.

Monitoring.grafana.config.datasource.type Tipo de fonte de dados do Grafana seqüência de caracteres prometheus
Monitoring.grafana.config.datasource.access modo de acesso. proxy ou direto (servidor ou navegador na interface do usuário) seqüência de caracteres procurador
Monitoring.grafana.config.datasource.isDefault marcar como fonte de dados Grafana padrão booliano verdadeiro
Monitoring.grafana.config.provider_yaml Arquivo de configuração para definir o provedor de painel do grafana arquivo yaml provedor.yaml
Monitoring.grafana.service.type Tipo de serviço para expor o Grafana. Valores com suporte: ClusterIP, NodePort, LoadBalancer seqüência de caracteres vSphere: NodePort, aws/azure: LoadBalancer
Monitoring.grafana.pvc.storage_class Defina o modo de acesso para a declaração de volume persistente. Valores com suporte: ReadWriteOnce, ReadOnlyMany, ReadWriteMany seqüência de caracteres ReadWriteOnce
Monitoring.grafana.pvc.storage Definir o tamanho do armazenamento para a declaração de volume persistente seqüência de caracteres 2Gi
Monitoring.grafana.deployment.replicas Número de réplicas do grafana inteiro 1
Monitoring.grafana.image.repository Localização do repositório com a imagem do Grafana. O padrão é o registro público VMware. Altere esse valor se você estiver usando um repositório privado (por exemplo, ambiente air-gapped). seqüência de caracteres projects.registry.vmware.com/tkg/grafana
Monitoring.grafana.image.name Nome da imagem do Grafana seqüência de caracteres grafana
Monitoring.grafana.image.tag Marca de imagem do Grafana. Esse valor pode precisar ser atualizado se você estiver atualizando a versão. seqüência de caracteres v7.3.5_vmware.1
Monitoring.grafana.image.pullPolicy Política de extração de imagem do Grafana seqüência de caracteres IfNotPresent
Monitoring.grafana.secret.type Tipo de segredo definido para o painel do Grafana seqüência de caracteres Opaco
Monitoring.grafana.secret.admin_user nome de usuário para acessar o painel do Grafana seqüência de caracteres YWRtaW4=

O valor é codificado em base64; para decodificar: echo "xxxxxx" | base64 --decode

Monitoring.grafana.secret.admin_password senha para acessar o painel do Grafana seqüência de caracteres null
Monitoring.grafana.secret.ldap_toml Se estiver usando a autenticação do ldap, o caminho do arquivo de configuração do ldap seqüência de caracteres ""
Monitoring.grafana_init_container.image.repository Repositório que contém a imagem do contêiner init do grafana. O padrão é o registro público VMware. Altere esse valor se você estiver usando um repositório privado (por exemplo, ambiente air-gapped). seqüência de caracteres projects.registry.vmware.com/tkg/grafana
Monitoring.grafana_init_container.image.name Nome da imagem do contêiner de inicialização do grafana seqüência de caracteres k8s-sidecar
Monitoring.grafana_init_container.image.tag Tag de imagem do contêiner de inicialização do Grafana. Esse valor pode precisar ser atualizado se você estiver atualizando a versão. seqüência de caracteres 0.1.99
Monitoring.grafana_init_container.image.pullPolicy política de pull da imagem do contêiner init do grafana seqüência de caracteres IfNotPresent
Monitoring.grafana_sc_dashboard.image.repository Repositório que contém a imagem do painel do Grafana. O padrão é o registro público VMware. Altere esse valor se você estiver usando um repositório privado (por exemplo, ambiente air-gapped). seqüência de caracteres projects.registry.vmware.com/tkg/grafana
Monitoring.grafana_sc_dashboard.image.name Nome da imagem do painel do grafana seqüência de caracteres k8s-sidecar
Monitoring.grafana_sc_dashboard.image.tag Tag de imagem do painel do Grafana. Esse valor pode precisar ser atualizado se você estiver atualizando a versão. seqüência de caracteres 0.1.99
Monitoring.grafana_sc_dashboard.image.pullPolicy política de pull de imagem do painel do grafana seqüência de caracteres IfNotPresent
Monitoring.grafana.ingress.enabled Ativar/desativar o ingresso para grafana booliano verdadeiro
Monitoring.grafana.ingress.virtual_host_fqdn Nome do host para acessar o grafana seqüência de caracteres grafana.system.tanzu
Monitoring.grafana.ingress.prefix Prefixo de caminho para grafana seqüência de caracteres /
Monitoring.grafana.ingress.tlsCertificate.tls.crt Certificado opcional para entrada se você quiser usar seu próprio certificado TLS. Um certificado autoassinado é gerado por padrão seqüência de caracteres Certificado gerado
Monitoring.grafana.ingress.tlsCertificate.tls.key Chave privada de certificado opcional para entrada se você quiser usar seu próprio certificado TLS. seqüência de caracteres Chave de certificado gerada