Prometheus and Grafana installation

本教程将向您展示如何安装 PrometheusGrafana 通过nginx ingress controller收取指标.

!!! important 这个例子对Prometheus和Grafana使用emptyDir volume。 这意味着,一旦吊舱终止,您将丢失所有数据。.

Before You Begin

nginx Ingress控制器应该已经根据部署说明进行了部署 here.

请注意,本教程中使用的Kustomize 基于存储在 deploy 目录,仓库为 kubernetes/ingress-nginx.

Deploy and configure Prometheus Server

必须配置Prometheus服务器,以便它可以发现服务的端点。 如果Prometheus服务器已经在集群中运行,并且以可以找到 ingress controller容器的方式进行了配置,则不需要额外的配置。

如果没有现有的Prometheus服务器正在运行,本教程的其余部分将指导您完成部署正确配置的Prometheus服务器所需的步骤。

运行以下命令可在Kubernetes中部署Prometheus:

kubectl apply --kustomize github.com/kubernetes/ingress-nginx/deploy/prometheus/
serviceaccount/prometheus-server created
role.rbac.authorization.k8s.io/prometheus-server created
rolebinding.rbac.authorization.k8s.io/prometheus-server created
configmap/prometheus-configuration-bc6bcg7b65 created
service/prometheus-server created
deployment.apps/prometheus-server created

Prometheus Dashboard

在网络浏览器中打开Prometheus仪表板:

kubectl get svc -n ingress-nginx
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                                      AGE
default-http-backend   ClusterIP   10.103.59.201   <none>        80/TCP                                       3d
ingress-nginx NodePort    10.97.44.72     <none>        80:30100/TCP,443:30154/TCP,10254:32049/TCP   5h
prometheus-server      NodePort    10.98.233.86    <none>        9090:32630/TCP                               1m

获取正在运行的集群中节点的IP地址:

kubectl get nodes -o wide

在某些情况下,该节点只有内部IP地址,我们需要执行:

kubectl get nodes --selector=kubernetes.io/role!=master -o jsonpath={.items[*].status.addresses[?\(@.type==\"InternalIP\"\)].address}
10.192.0.2 10.192.0.3 10.192.0.4

打开浏览器并访问以下URL: http://{node IP address}:{prometheus-svc-nodeport} 加载 Prometheus Dashboard.

根据上面的示例,此网址为 http://10.192.0.3:32630

Grafana

kubectl apply --kustomize github.com/kubernetes/ingress-nginx/deploy/grafana/
kubectl get svc -n ingress-nginx
NAME                   TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                                      AGE
default-http-backend   ClusterIP   10.103.59.201   <none>        80/TCP                                       3d
ingress-nginx NodePort    10.97.44.72     <none>        80:30100/TCP,443:30154/TCP,10254:32049/TCP   5h
prometheus-server      NodePort    10.98.233.86    <none>        9090:32630/TCP                               10m
grafana                NodePort    10.98.233.87    <none>        3000:31086/TCP                               10m

打开浏览器并访问以下URL: http://{node IP address}:{grafana-svc-nodeport} 加载Grafana Dashboard. 根据上面的示例,此网址为 http://10.192.0.3:31086

用户名密码为 admin

登录后,您可以从以下位置导入Grafana仪表板 https://github.com/kubernetes/ingress-nginx/tree/master/deploy/grafana/dashboards

Last updated