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
- Provisione um cluster TKG 2 com uma classe de armazenamento padrão. Consulte Provisionando clusters do TKG 2 em Supervisor.
Observação: O Grafana requer uma classe de armazenamento persistente padrão. Se você tiver um cluster TKG 2 sem uma classe de armazenamento padrão, poderá corrigi-lo. Consulte Requisitos de armazenamento persistente para pacotes Tanzu.
- Conecte-se ao cluster do TKG 2. Consulte Gerenciando identidade e acesso para clusters TKG 2 em Supervisor.
- Instale os pré-requisitos do pacote Tanzu. Consulte Instalar os pré-requisitos do pacote Tanzu usando o Kubectl
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
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.
- 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"
- Instale o pacote do Grafana.
kubectl apply -f grafana.yaml
Acessar o painel do Grafana usando um serviço Contour Envoy do tipo LoadBalancer
- 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çoExternal-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çoExternal-IP
usando o seguinte comando.kubectl get svc envoy -n tanzu-system-ingress -o jsonpath='{.status.loadBalancer.ingress[0]}'
- 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çoExternal-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
- 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.
- 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
- Alterne o contexto para o vSphere Namespace em que o cluster é provisionado.
kubectl config use-context VSPHERE-NAMESPACE
- Liste os nós no cluster.
kubectl get virtualmachines
- Escolha um dos nós do trabalhador e descreva-o usando o seguinte comando.
kubectl describe virtualmachines tkgs-cluster-X-workers-9twdr-59bc54dc97-kt4cm
- Localize o endereço IP da máquina virtual, por exemplo,
Vm Ip: 10.115.22.43
. - 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
- 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
grafana-data-values.yaml
.
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 |
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: |
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 |