Neste documento, descrevemos como configurar a implantação do Google Kubernetes Engine para que você possa usar o Google Cloud Managed Service para Prometheus para coletar métricas do Istio. Esta página mostra como fazer o seguinte:
- Configure o Istio para gerar relatórios de métricas.
- Configurar um recurso PodMonitoring para o serviço gerenciado para Prometheus a fim de coletar as métricas exportadas.
- Instalar um painel no Cloud Monitoring para ver as métricas.
- Configure regras de alertas para monitorar as métricas.
Estas instruções se aplicam somente ao usar a coleção gerenciada com o serviço gerenciado para Prometheus. Se você estiver usando a coleção autoimplantada, consulte o repositório de origem do Istio para ver informações da instalação.
Estas instruções são um exemplo e devem funcionar na maioria dos ambientes do Kubernetes. Se você estiver com problemas para instalar um aplicativo ou exportador devido a políticas restritivas de segurança ou da organização, recomendamos consultar a documentação de código aberto para receber suporte.
Para mais informações sobre o Istio, consulte o Istio.
Pré-requisitos
Para coletar métricas do Istio usando o Serviço gerenciado para o Prometheus e a coleta gerenciada, sua implantação precisa atender aos seguintes requisitos:
- Seu cluster precisa executar a versão 1.21.4-gke.300 ou posterior do Google Kubernetes Engine.
- É necessário executar o Managed Service para Prometheus com a coleta gerenciada ativada. Para mais informações, consulte Começar a usar a coleta gerenciada.
O Istio expõe métricas no formato do Prometheus automaticamente. Não é necessário instalá-lo separadamente. Execute as verificações a seguir para confirmar se o proxy do Istio foi injetado como um arquivo secundário e se o Istiod, o plano de controle do Istio e o proxy do Istio estão emitindo métricas nos endpoints esperados.
Para determinar se o proxy do Istio foi injetado como um arquivo secundário, execute o comando a seguir, que enumera os contêineres em execução nos pods do aplicativo:
kubectl get pod -l app=APPLICATION_NAME -n NAMESPACE_NAME -o jsonpath='{.items[0].spec.containers[*].name}'
Se você perceber que os pods contêm o contêiner de arquivo secundário
istio
, o exportador foi injetado. Se o arquivo secundário não for injetado, siga as instruções em Istio: como instalar o arquivo secundário.Para verificar se as métricas estão sendo emitidas pelo proxy do Istio, execute o comando a seguir, que inspeciona o endpoint
/stats/prometheus
deistio
no pod especificado:kubectl exec POD_NAME -n NAMESPACE_NAME -c istio-proxy -- curl -sS 'localhost:15090/stats/prometheus'
Se houver métricas brutas do
istio_*
e doenvoy_*
do Prometheus, as métricas estão sendo emitidas corretamente.Para verificar se as métricas estão sendo emitidas de maneira semelhante no Istiod, execute o comando a seguir, que inspeciona o endpoint
/metrics
do Istiod em um dos pods na implantaçãoistiod
:kubectl exec -n istio-system deployment/istiod -- curl -sS 'localhost:15014/metrics'
Definir um recurso do PodMonitoring
Para descobrir o destino, o operador do Managed Service para Prometheus, é necessário um recurso PodMonitoring que corresponde ao exportador do Istio no mesmo namespace.
É possível usar a seguinte configuração do PodMonitoring:
O Istio requer dois recursos diferentes do PodMonitoring: um que monitora o Istiod e outro que monitora os arquivos secundários de proxy do Istio e os gateways de entrada e saída. Para monitorar as métricas de proxy do Istio em todos os namespaces no cluster de uma só vez, aplique o PodMonitoringistio-proxy
a todos os namespaces ou configure um
recurso
ClusterPodMonitoring em vez de um recurso PodMonitoring por namespace.
Se você planeja usar os painéis do Grafana fornecidos pelo Istio, além dos recursos do PodMonitoring descritos neste documento, verifique se também configurou a raspagem de dados do cAdvisor e do Kubelet.
Para aplicar as alterações de configuração de um arquivo local, execute o seguinte comando:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Também é possível usar o Terraform para gerenciar as configurações.
Definir regras e alertas
Use a configuração Rules
a seguir para definir alertas nas suas métricas do Istio:
Para aplicar as alterações de configuração de um arquivo local, execute o seguinte comando:
kubectl apply -n NAMESPACE_NAME -f FILE_NAME
Também é possível usar o Terraform para gerenciar as configurações.
Para mais informações sobre como aplicar regras ao cluster, consulte Avaliação e alerta de regras gerenciadas.
Essa configuração deRules
foi adaptada das regras do Istio fornecidas pelos alertas incríveis do Prometheus.
Você pode ajustar os limites de alertas conforme seu aplicativo.
Verificar a configuração
Use o Metrics Explorer para verificar se o exportador foi configurado corretamente. Pode levar um ou dois minutos para que o Cloud Monitoring ingira as métricas.
Para verificar se as métricas foram transferidas, faça o seguinte:
-
No Console do Google Cloud, acesse a página do leaderboard Metrics Explorer:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Na barra de ferramentas do painel do criador de consultas, selecione o botão code MQL ou code PromQL.
- Verifique se PromQL está selecionado na opção de ativar/desativar Idioma. A alternância de idiomas está na mesma barra de ferramentas que permite formatar sua consulta.
- Digite e execute a seguinte consulta:
sum(istio_build{cluster="CLUSTER_NAME"}) by (component)
Ver painéis
A integração do Cloud Monitoring inclui o painel Visão geral do Istio Envoy Prometheus. Os painéis são instalados automaticamente ao configurar a integração. Também é possível visualizar visualizações estáticas de painéis sem instalar a integração.
Para ver um painel instalado, faça o seguinte:
-
No console do Google Cloud, acesse a página Painéis:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Selecione a guia Lista de painéis.
- Escolha a categoria Integrações.
- Clique no nome do painel, por exemplo, Visão geral do Istio Envoy Prometheus.
Para acessar uma visualização estática do painel, faça o seguinte:
-
No console do Google Cloud, acesse a página Integrações:
Se você usar a barra de pesquisa para encontrar essa página, selecione o resultado com o subtítulo Monitoring.
- Clique no filtro de plataforma de implantação do Kubernetes Engine.
- Localize a integração do Istio e clique em Visualizar detalhes.
- Selecione a guia Painéis.
Solução de problemas
Para resolver problemas de transferências de métricas, consulte Problemas com a coleta de exportadores em Resolver problemas no processamento.