Exportar Metricas do Istio
Essa documentação fornece uma visão de como configurar a exportação de métricas de um cluster com Istio via Prometheus.
Pré requisitos
- Verifique o melhor método para instalar o Istio no seu ambiente e siga uma das duas formas de instalação: ambient mode ou sidecar mode. Se quiser saber mais sobre os métodos de instalação leia "sidecar ou ambient mode?" e também "qual método devo usar?".
- Ter instalado o prometheus no cluster. A melhor maneira é usar os arquivos de implantação fornecidos pelo Istio como é mostrado neste link. Instalar o Kilai é opcional.
- Se instalado pelo "sidecar mode" adicionar os sidecars nos pods colocando as labels nos namespaces desejados: "istio-injection=enabled". Siga essas instruções.
Lembre-se de instalar o CLI do Istio e também o Gateway API CRDs como mostrado neste link.
Rode o comando "rollout" nos pods para a injeçãos dos sidecars.
Por segurança adicionar mTLS authentication ou outro tipo de autenticação como explicado nesse link.
Adicionando anotações ao Istio Ingress Gateway e Pilot
Crie ou edite um recurso IstioOperator para incluir as anotações necessárias. As anotações devem ser adicionadas tanto ao ingressGateway quanto ao pilot para que o Prometheus possa coletar métricas corretamente como mostrado abaixo:
apiVersion: install.istio.io/v1alpha1
kind: IstioOperator
metadata:
namespace: istio-system
name: istio-operator
spec:
profile: default
components:
pilot:
k8s:
podAnnotations:
prometheus.io/port: "15014"
prometheus.io/scrape: "true"
prometheus.io/path: "/metrics"
ingressGateways:
- name: istio-ingressgateway
enabled: true
k8s:
podAnnotations:
prometheus.io/port: "15090"
prometheus.io/scrape: "true"
prometheus.io/path: "/stats/prometheus"
values:
gateways:
istio-egressgateway:
enabled: falseO proxy sidecar do Istio (geralmente Envoy) expõe métricas na porta 15090 e no caminho '/stats/prometheus'.
Aplique o recurso:
istioctl manifest apply -f istio-operator.yamlAtualizar a configuração do Prometheus:
Edite o ConfigMap do Prometheus para adicionar a URL de remote_write. Isso indicará ao Prometheus onde enviar as métricas:
kubectl edit cm prometheus -n istio-systemAdicionar na mesma indentaç ão de "global" o remote_write:
global:
scrape_interval: 15s
remote_write:
- url: http://<AIOPS-VMETRICS-IP>:8428/api/v1/writeSubstitua <AIOPS-VMETRICS-IP> pelo endereço IP ou hostname para receber as métricas.
Reiniciar o Servidor Prometheus
Após feita as alterações, é necessário reiniciar o deployment do Prometheus para que as novas configurações sejam aplicadas:
kubectl rollout restart deployment/prometheus -n istio-system