第28关 k8s监控实战之Prometheus(五)

------> 课程视频同步分享在今日头条和B站

大家好,我是博哥爱运维。这节课我们利用prometheus来监控入口流量控制服务nginx ingress controller。

我们前面部署过ingress-nginx,这个是整个K8s上所有服务的流量入口组件很关键,因此把它的metrics指标收集到prometheus来做好相关监控至关重要,因为前面ingress-nginx服务是以daemonset形式部署的,并且映射了自己的端口到宿主机上,那么我可以直接用pod运行NODE上的IP来看下metrics

# kubectl -n kube-system get pod  -o wide|grep nginx-ingress
nginx-ingress-controller-m98vx             1/1     Running     25 (28m ago)   43d   10.0.1.201       10.0.1.201   <none>           <none>


# 开启metrics指标
# kubectl -n kube-system edit ds nginx-ingress-controller
# 搜索 metrics   , 找到  - --enable-metrics=  设置为 true

# curl 10.0.1.201:10254/metrics

# HELP go_gc_duration_seconds A summary of the pause duration of garbage collection cycles.
# TYPE go_gc_duration_seconds summary
go_gc_duration_seconds{quantile="0"} 3.9813e-05
go_gc_duration_seconds{quantile="0.25"} 7.174e-05
go_gc_duration_seconds{quantile="0.5"} 0.000131089
go_gc_duration_seconds{quantile="0.75"} 0.000511873
go_gc_duration_seconds{quantile="1"} 0.20378584
go_gc_duration_seconds_sum 0.472987359
go_gc_duration_seconds_count 211
......

创建 servicemonitor配置让prometheus能发现ingress-nginx的metrics

# vim ingress-nginx-servicemonitor.yaml
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  labels:
    app: ingress-nginx
  name: nginx-ingress-scraping
  namespace: kube-system
spec:
  endpoints:
  - interval: 30s
    path: /metrics
    port: metrics
  jobLabel: app
  namespaceSelector:
    matchNames:
    - kube-system
  selector:
    matchLabels:
      app: ingress-nginx

创建它

# kubectl apply -f ingress-nginx-servicemonitor.yaml 
servicemonitor.monitoring.coreos.com/nginx-ingress-scraping created
# kubectl -n ingress-nginx get servicemonitors.monitoring.coreos.com 
NAME                     AGE
nginx-ingress-scraping   8s

再到prometheus UI上看下,发现已经有了

serviceMonitor/kube-system/nginx-ingress-scraping/0 (1/1 up)

下载grafana模板导入使用

https://grafana.com/grafana/dashboards/14314-kubernetes-nginx-ingress-controller-nextgen-devops-nirvana/

你可能感兴趣的:(kubernetes,容器,云原生,运维开发,prometheus,k8s)