Prometheus監控k8s(6)-prometheus監控ingress-nginx


Prometheus監控ingress-nginx

Prometheus的數據指標是通過一個公開的 HTTP(S) 數據接口獲取到的,我們不需要單獨安裝監控的 agent,只需要暴露一個 metrics 接口,Prometheus 就會定期去拉取數據;對於一些普通的 HTTP 服務,我們完全可以直接重用這個服務,添加一個/metrics接口暴露給 Prometheus;而且獲取到的指標數據格式是非常易懂的,不需要太高的學習成本。

 

現在很多服務從一開始就內置了一個/metrics接口,比如 Kubernetes 的各個組件、istio 服務網格都直接提供了數據指標接口。有一些服務即使沒有原生集成該接口,也完全可以使用一些 exporter 來獲取到指標數據,比如 mysqld_exporter、node_exporter,這些 exporter 就有點類似於傳統監控服務中的 agent,作為一直服務存在,用來收集目標服務的指標數據然后直接暴露給 Prometheus。

 

在nginx ingress controller的官方文檔中對監控有相應描述
https://kubernetes.github.io/ingress-nginx/user-guide/monitoring/

 

配置監控

按照我之前的部署方式,官方默認實現了對pod的自動發現(自動發現參考后文),對ingress-nginx已經自動監控

 

 

 

 

 

 

如果沒有自動監控

修改prometheus的配置,增加對ingress nginx的監控配置,可按照官方yaml
進行修改:

#vim prometheus-configmap.yaml
- job_name: 'ingress-nginx-endpoints'
  kubernetes_sd_configs:
  - role: pod
    namespaces:
      names:
      - ingress-nginx
  relabel_configs:
  - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
    action: keep
    regex: true
  - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scheme]
    action: replace
    target_label: __scheme__
    regex: (https?)
  - source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
    action: replace
    target_label: __metrics_path__
    regex: (.+)
  - source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
    action: replace
    target_label: __address__
    regex: ([^:]+)(?::\d+)?;(\d+)
    replacement: $1:$2
  - source_labels: [__meta_kubernetes_service_name]
    regex: prometheus-server
    action: drop
#重新apply一下configmap
kubectl apply -f prometheus-configmap.yaml

 

配置grafana圖形

https://grafana.com/grafana/dashboards/9614

 我的沒有訪問數據為空是正常的

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM