O Grafana permite consultar, visualizar, alertar e explorar métricas, independentemente de onde estejam armazenadas. O Grafana fornece ferramentas para formar gráficos e visualizações a partir de dados de aplicativos. Implante a extensão TKG para Grafana para gerar e visualizar métricas para clusters Tanzu Kubernetes.
Requisitos da extensão Grafana
Este tópico descreve como implantar e gerenciar a extensão TKG v1.3.1 para Grafana.
- Provisione um cluster. Consulte o Fluxo de trabalho para clusters de Tanzu Kubernetes provisionamento.
Observação: Você deve implantar um cluster que usa o serviceDomain padrão (
cluster.local
). - Conecte-se ao cluster. Consulte o Conectar-se a um Tanzu Kubernetes cluster como um vCenter Single Sign-On usuário.
- Baixe o pacote TKG Extensions v1.3.1 para o host do cliente no qual você executa os comandos kubectl.
- Pré-requisitos de instalação das extensões TKG no cluster de destino.
Implantar a extensão Grafana para visualização e análise
Container | Tipo de Recurso | Réplicas | Descrição |
---|---|---|---|
Grafana | Implantação | 2 | Visualização de dados |
- Verifique se você concluiu cada um dos pré-requisitos de extensão. Consulte o Requisitos da extensão Grafana.
- Altere o diretório para a extensão Grafana.
cd /tkg-extensions-v1.3.1+vmware.1/extensions/monitoring/grafana
- Crie o namespace
tanzu-system-monitoring
e a conta de serviço Grafana e os objetos de função.kubectl apply -f namespace-role.yaml
- Crie um arquivo de valores de dados Grafana.
O arquivo de valores de dados de exemplo fornece a configuração mínima necessária.
cp grafana-data-values.yaml.example grafana-data-values.yaml
- Configure a extensão Grafana atualizando o
grafana-data-values.yaml
.Personalize a configuração conforme necessário. Consulte o Configurar a extensão Grafana.
O
admin_password
deve ser codificado em base64, mas não bloqueará a implantação da extensão se não estiver. No exemplo abaixo, a senha "admin" é codificada em base64. Codifique sua própria senha Grafana aqui: https://www.base64encode.org/.Se o cluster não estiver provisionado com uma classe de armazenamento padrão, você poderá especificá-la no arquivo de valores de dados. Além disso, certifique-se de que o namespace tenha armazenamento suficiente para as declarações de volume persistentes.monitoring: grafana: image: repository: "projects.registry.vmware.com/tkg/grafana" pvc: storage_class: vwt-storage-policy storage: "8Gi" secret: admin_password: "YWRtaW4=" grafana_init_container: image: repository: "projects.registry.vmware.com/tkg/grafana" grafana_sc_dashboard: image: repository: "projects.registry.vmware.com/tkg/grafana"
- Crie o segredo Grafana com o arquivo
grafana-data-values
.kubectl create secret generic grafana-data-values --from-file=values.yaml=grafana-data-values.yaml -n tanzu-system-monitoring
O segredo
grafana-data-values
é criado no namespacetanzu-system-monitoring
. Verifique usandokubectl get secrets -n tanzu-system-monitoring
. - Implante a extensão Grafana.
kubectl apply -f grafana-extension.yaml
Em caso de sucesso, o aplicativo Grafana é criado:
app.kappctrl.k14s.io/grafana created
. - Verifique o status do aplicativo Grafana.
kubectl get app grafana -n tanzu-system-monitoring
O status deve mudar deReconciling
paraReconcile succeeded
. Se o status forReconcile failed
, consulte Solução de problemas. - Visualize o status detalhado no aplicativo Grafana.
kubectl get app grafana -n tanzu-system-monitoring -o yaml
- Verifique a implantação do Grafana.
kubectl get deployments -n tanzu-system-monitoring
Solução de problemas de implantação do Grafana
Se a implantação ou a reconciliação falhar, execute kubectl get pods -A
para exibir o status do pod. Os pods contour
e envoy
devem ser Running
. Se um status de pod for ImagePullBackOff
ou ImageCrashLoopBackOff
, a imagem do contêiner não poderá ser extraída. Verifique a URL do registro nos valores de dados e nos arquivos YAML de extensão e certifique-se de que eles sejam precisos.
name-XXXX
é o nome do pod exclusivo quando você executa
kubectl get pods -A
:
kubectl logs pod/grafana-XXXX -c grafana -n tanzu-system-monitoring
Atualizar a extensão Grafana
Atualize a extensão Grafana que é implantada em um cluster do Tanzu Kubernetes.
- Obtenha os valores de dados Grafana atuais do segredo
grafana-data-values
.kubectl get secret grafana-data-values -n tanzu-system-monitoring -o 'go-template={{ index .data "values.yaml" }}' | base64 -d > grafana-data-values.yaml
- Atualize os valores de dados Grafana em
grafana-data-values.yaml
. Consulte o Configurar a extensão Grafana. - Atualize o segredo dos valores de dados Grafana.
kubectl create secret generic grafana-data-values --from-file=values.yaml=grafana-data-values.yaml -n tanzu-system-monitoring -o yaml --dry-run | kubectl replace -f-
A extensão Grafana é reconciliada com os valores de dados atualizados.Observação: Por padrão, o kapp-controller sincronizará os aplicativos a cada 5 minutos. A atualização deve entrar em vigor em 5 minutos ou menos. Se você quiser que a atualização entre em vigor imediatamente, alteresyncPeriod
emgrafana-extension.yaml
para um valor menor e aplique a extensão Grafana usandokubectl apply -f grafana-extension.yaml
. - Verifique o status da extensão.
kubectl get app grafana -n tanzu-system-monitoring
O status deve mudar para
Reconcile Succeeded
quando o Grafana for atualizado. - Visualize o status detalhado e solucione problemas, se necessário.
kubectl get app grafana -n tanzu-system-monitoring -o yaml
Excluir a extensão Grafana
tanzu-system-monitoring
. Se você tiver implantado ambas as extensões no mesmo cluster, exclua cada extensão antes de excluir o namespace.
- Altere o diretório para a extensão Grafana.
cd /tkg-extensions-v1.3.1+vmware.1/extensions/monitoring/grafana
- Exclua o aplicativo Grafana.
kubectl delete app grafana -n tanzu-system-monitoring
Resultado esperado:
app.kappctrl.k14s.io "grafana" deleted
. - Verifique se o aplicativo Grafana foi excluído.
kubectl get app grafana -n tanzu-system-monintoring
Resultado esperado:
apps.kappctrl.k14s.io "grafana" not found
. - Exclua o namespace
tanzu-system-monitoring
e a conta de serviço Grafana e os objetos de função.Aviso: Não execute essa etapa se o Prometheus estiver implantado.kubectl delete -f namespace-role.yaml
- Se você quiser reimplantar o Grafana, remova o segredo
grafana-data-values
.kubectl delete secret grafana-data-values -n tanzu-system-monitoring
Resultado esperado:
secret "grafana-data-values" deleted
.
Atualizar a extensão Grafana
- Exporte o mapa de configuração Grafana e salve-o como backup.
kubectl get configmap grafana -n tanzu-system-monitoring -o 'go-template={{ index .data "grafana.yaml" }}' > grafana-configmap.yaml
- Exclua a extensão Grafana existente. Consulte o Excluir a extensão Grafana.
- Implante a extensão Grafana. Consulte o Implantar a extensão Grafana para visualização e análise.
Configurar a extensão Grafana
/tkg-extensions-v1.3.1+vmware.1/extensions/monitoring/grafana/grafana-data-values.yaml
.
Parâmetro | Descrição | Tipo | Padrão |
---|---|---|---|
Monitoring.namespace | Namespace onde o Prometheus será implantado | cadeia de caracteres | tanzu-system-Monitoring |
Monitoring.create_namespace | O sinalizador indica se é necessário criar o namespace especificado por Monitoring.namespace | boolean | falso |
Monitoring.grafana.cluster_role.apiGroups | grupo de APIs definido para grafana clusterrole | lista | [""] |
Monitoring.grafana.cluster_role.resources | recursos definidos para grafana clusterrole | lista | ["configmaps", "segredos"] |
Monitoring.grafana.cluster_role.verbs | permissão de acesso definida para clusterrole | lista | ["get", "watch", "list"] |
Monitoring.grafana.config.grafana_ini | Detalhes do arquivo de configuração Grafana | arquivo de configuração | grafana.ini Nesse arquivo, a URL |
Monitoring.grafana.config.datasource.type | Tipo de fonte de dados Grafana | cadeia de caracteres | Prometheus |
Monitoring.grafana.config.datasource.access | modo de acesso. proxy ou direto (servidor ou navegador na interface do usuário) | cadeia de caracteres | proxy |
Monitoring.grafana.config.datasource.isDefault | marcar como fonte de dados Grafana padrão | boolean | verdadeiro |
Monitoring.grafana.config.provider_yaml | Arquivo de configuração para definir o provedor do painel Grafana | arquivo yaml | provider.yaml |
Monitoring.grafana.service.type | Tipo de serviço para expor o Grafana. Valores com suporte: ClusterIP, NodePort, LoadBalancer | cadeia de caracteres | vSphere: NodePort, aws / azure: LoadBalancer |
Monitoring.grafana.pvc.storage_class | Defina o modo de acesso para a reivindicação de volume persistente. Valores com suporte: ReadWriteOnce, ReadOnlyMany, ReadWriteMany | cadeia de caracteres | ReadWriteOnce |
Monitoring.grafana.pvc.storage | Defina o tamanho do armazenamento para a declaração de volume persistente | cadeia de caracteres | 2Gi |
Monitoring.grafana.deployment.replicas | Número de réplicas de grafana | número inteiro | 1 |
Monitoring.grafana.image.repository | Localização do repositório com a imagem Grafana. O padrão é o registro público VMware. Altere esse valor se você estiver usando um repositório privado (por exemplo, ambiente isolado). | cadeia de caracteres | projects.registry.vmware.com/tkg/grafana |
Monitoring.grafana.image.name | Nome da imagem Grafana | cadeia de caracteres | grafana |
Monitoring.grafana.image.tag | Etiqueta de imagem Grafana. Esse valor pode precisar ser atualizado se você estiver atualizando a versão. | cadeia de caracteres | v7.3.5_vmware.1 |
Monitoring.grafana.image.pullPolicy | Política de extração de imagem Grafana | cadeia de caracteres | IfNotPresent |
Monitoring.grafana.secret.type | Tipo de segredo definido para o painel Grafana | cadeia de caracteres | Opaco |
Monitoring.grafana.secret.admin_user | nome de usuário para acessar o painel Grafana | cadeia de caracteres | YWRtaW4 = O valor é codificado em base64; para decodificar: |
Monitoring.grafana.secret.admin_password | Senha para acessar o painel Grafana | cadeia de caracteres | nulo |
Monitoring.grafana.secret.ldap_toml | Se estiver usando autenticação LDAP, caminho do arquivo de configuração LDAP | cadeia de caracteres | "" |
Monitoring.grafana_init_container.image.repository | Repositório contendo a imagem de contêiner de inicialização de grafana. O padrão é o registro público VMware. Altere esse valor se você estiver usando um repositório privado (por exemplo, ambiente isolado). | cadeia de caracteres | projects.registry.vmware.com/tkg/grafana |
Monitoring.grafana_init_container.image.name | Nome da imagem de contêiner init de grafana | cadeia de caracteres | k8s-sidecar |
Monitoring.grafana_init_container.image.tag | Tag de imagem de contêiner init Grafana. Esse valor pode precisar ser atualizado se você estiver atualizando a versão. | cadeia de caracteres | 0.1.99 |
Monitoring.grafana_init_container.image.pullPolicy | Política de extração de imagem de contêiner init Grafana | cadeia de caracteres | IfNotPresent |
Monitoring.grafana_sc_dashboard.image.repository | Repositório contendo a imagem do painel Grafana. O padrão é o registro público VMware. Altere esse valor se você estiver usando um repositório privado (por exemplo, ambiente isolado). | cadeia de caracteres | projects.registry.vmware.com/tkg/grafana |
Monitoring.grafana_sc_dashboard.image.name | Nome da imagem do painel Grafana | cadeia de caracteres | k8s-sidecar |
Monitoring.grafana_sc_dashboard.image.tag | Tag de imagem do painel Grafana. Esse valor pode precisar ser atualizado se você estiver atualizando a versão. | cadeia de caracteres | 0.1.99 |
Monitoring.grafana_sc_dashboard.image.pullPolicy | Grafana dashboard image pull policy | cadeia de caracteres | IfNotPresent |
Monitoring.grafana.ingress.enabled | Ativar / desativar entrada para Grafana | boolean | verdadeiro |
Monitoring.grafana.ingress.virtual_host_fqdn | Nome do host para acessar o Grafana | cadeia de caracteres | grafana.system.tanzu |
Monitoring.grafana.ingress.prefix | Prefixo de caminho para grafana | cadeia 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 | cadeia 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. | cadeia de caracteres | Chave de certificado gerada |