Skip to content

Kube-prometheus-stack

sobre

Aqui instalamos o Prometheus, AlertManager e Grafana de uma vez só como pacote kube-prometheus-stack.

Aqui estamos ativando a persistência de dados para as ferramentas.

o que preciso ajustar?

Ajuste o nome do storageclass nas configurações.

Ajuste o tamanho do volumes.

Ajuste a senha inicial do grafana dashboard.

Instalando

helm repo add prometheus-community https://prometheus-community.github.io/helm-chartș

criando arquivo com configurações

Aqui estamos habilitando persistência

vim kube-prometheus-stack.yaml

insira o conteúdo

prometheus:
  prometheusSpec:
    storageSpec:
     volumeClaimTemplate:
       spec:
         storageClassName: "standard-rwo"
         accessModes:
           - "ReadWriteOnce"
         resources:
           requests:
             storage: 50Gi

alertmanager:
  alertmanagerSpec:
      storage:
        volumeClaimTemplate:
          spec:
            storageClassName: standard-rwo
            accessModes: ["ReadWriteOnce"]
            resources:
                requests:
                  storage: 10Gi

grafana:
 adminUser: admin
 adminPassword: sua-senha-aqui
 defaultDashboardsTimezone: America/Sao_Paulo
 persistence:
     enabled: true
     type: sts
     storageClassName: "standard-rwo"
     accessModes:
       - ReadWriteOnce
     size: 20Gi

instalando o kube-prometheus-stack

O comando abaixo vai instalar o prometheus, grafana e alertmanager.

helm upgrade --install kube-prometheus-stack prometheus-community/kube-prometheus-stack --create-namespace --namespace monitoring -f kube-prometheus-stack.yaml

verificando pods criados

vamos verificar se está tudo certo

kubectl --namespace monitoring get pods -l "release=kube-prometheus-stack"

saída esperada

NAME                                                        READY   STATUS    RESTARTS   AGE
kube-prometheus-stack-kube-state-metrics-684f8c7558-5prff   1/1     Running   0          2m
kube-prometheus-stack-operator-7f8869cbf9-sccsb             1/1     Running   0          2m
kube-prometheus-stack-prometheus-node-exporter-b5574        1/1     Running   0          2m
kube-prometheus-stack-prometheus-node-exporter-zvqp9        1/1     Running   0          2m

Se estiver como acima, tudo certo!

verificando pvc's

vamos ver se os volumes foram criados

k get pvc -n monitoring

saída esperada

NAME                                                                                                   STATUS   VOLUME                                     CAPACITY   ACCESS MODES   STORAGECLASS   VOLUMEATTRIBUTESCLASS   AGE
alertmanager-kube-prometheus-stack-alertmanager-db-alertmanager-kube-prometheus-stack-alertmanager-0   Bound    pvc-cc58fe75-3978-4cc7-9fce-2921c608d15c   10Gi       RWO            standard-rwo   <unset>                 2m14s
prometheus-kube-prometheus-stack-prometheus-db-prometheus-kube-prometheus-stack-prometheus-0           Bound    pvc-d9d6fef7-64d9-48b9-b481-a5fbbc52f0de   50Gi       RWO            standard-rwo   <unset>                 11m
storage-kube-prometheus-stack-grafana-0                                                                Bound    pvc-4309e8f9-2f19-4522-8fc2-adc3cdc93eca   20Gi       RWO            standard-rwo   <unset>                 11m

parece que tá tudo certinho

pegando a senha do grafana

kubectl --namespace monitoring get secrets kube-prometheus-stack-grafana -o jsonpath="{.data.admin-password}" | base64 -d ; echo

fazendo port forward pro grafana

buscando pod

 export POD_NAME=$(kubectl --namespace monitoring get pod -l "app.kubernetes.io/name=grafana,app.kubernetes.io/instance=kube-prometheus-stack" -oname)
abrindo port forward

kubectl --namespace monitoring port-forward $POD_NAME 3000