Search code examples
dockerkubernetesprometheuskubernetes-helm

How to access Prometheus after install it by helm on Kubernetes?


In Kubernetes cluster installed Prometheus using:

helm install stable/prometheus

It succese:

kubectl get pods
NAME                                                           READY     STATUS    RESTARTS   AGE
winsome-otter-prometheus-alertmanager-3488774855-mk4ph         2/2       Running   0          5m
winsome-otter-prometheus-kube-state-metrics-2907311046-ggnwx   1/1       Running   0          5m
winsome-otter-prometheus-node-exporter-dp9b3                   1/1       Running   0          5m
winsome-otter-prometheus-pushgateway-3103937292-fvw8m          1/1       Running   0          5m
winsome-otter-prometheus-server-2211167584-hjlp6               2/2       Running   0          5m

kubectl get service
NAME                                          TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)    AGE
kubernetes                                    ClusterIP   10.0.0.1     <none>        443/TCP    4d
winsome-otter-prometheus-alertmanager         ClusterIP   10.0.0.215   <none>        80/TCP     8m
winsome-otter-prometheus-kube-state-metrics   ClusterIP   None         <none>        80/TCP     8m
winsome-otter-prometheus-node-exporter        ClusterIP   None         <none>        9100/TCP   8m
winsome-otter-prometheus-pushgateway          ClusterIP   10.0.0.168   <none>        9091/TCP   8m
winsome-otter-prometheus-server               ClusterIP   10.0.0.62    <none>        80/TCP     8m

How can access it from browser? Use which port? How can know?


Solution

  • You need to forward port 9090 from your localhost to prometheus pod first:

    export POD_NAME=$(kubectl get pods --namespace default -l "app=prometheus,component=server" -o jsonpath="{.items[0].metadata.name}")
    kubectl --namespace default port-forward $POD_NAME 9090
    

    Now you can access Prometheus via browser on http://localhost:9090

    You can do the same for alertmanager as well:

    export POD_NAME=$(kubectl get pods --namespace default -l "app=prometheus,component=alertmanager" -o jsonpath="{.items[0].metadata.name}")
    kubectl --namespace default port-forward $POD_NAME 9093
    

    Now Alertmanager is available via browser on http://localhost:9093