使用大卫的k8s监控面板(k8s+prometheus+grafana)

问题

书接上回,对EKS(AWS云k8s)启用AMP(AWS云Prometheus)监控+AMG(AWS云 grafana),上次我们只是配通了EKS+AMP+AMG的监控路径。这次使用一位大卫老师的grafana的面板,具体地址如下:
https://grafana.com/grafana/dashboards/15757-kubernetes-views-global/

安装kube-state-metrics

为了想Prometheus暴露一些有用的性能指标,需要在k8s集群中,安装kube-state-metrics。

bash 复制代码
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install kube-state-metrics prometheus-community/kube-state-metrics -n kube-system

测试验证:

bash 复制代码
kubectl port-forward svc/kube-state-metrics -n kube-system 8080:8080

使用PromQL测试:

bash 复制代码
count(kube_pod_status_ready{condition="false"}) by (namespace, pod)

prometheus配置

yaml 复制代码
scrape_configs:
- job_name: kube-state-metrics
  honor_timestamps: true
  scrape_interval: 1m
  scrape_timeout: 1m
  metrics_path: /metrics
  scheme: http
  static_configs:
  - targets:
    - kube-state-metrics.kube-system.svc.cluster.local:8080

安装 prometheus-node-exporter

bash 复制代码
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
helm repo update
helm install prometheus-node-exporter prometheus-community/prometheus-node-exporter -n kube-system

测试:

bash 复制代码
export POD_NAME=$(kubectl get pods --namespace kube-system -l "app.kubernetes.io/name=prometheus-node-exporter,app.kubernetes.io/instance=prometheus-node-exporter" -o jsonpath="{.items[0].metadata.name}")
kubectl port-forward --namespace kube-system $POD_NAME 9100

prometheus配置

yaml 复制代码
scrape_configs:
- job_name: 'node-exporter'
  kubernetes_sd_configs:
  - role: node
  relabel_configs:
  - action: replace
    source_labels: [__address__]
    regex: '(.*):10250'
    replacement: '${1}:9100'
    target_label: __address__

整体prometheus配置

yaml 复制代码
global:
  scrape_interval: 30s
  # external_labels:
    # clusterArn: <REPLACE_ME>
scrape_configs:
  # pod metrics
  - job_name: pod_exporter
    kubernetes_sd_configs:
      - role: pod
  # container metrics
  - job_name: cadvisor
    scheme: https
    authorization:
      credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    kubernetes_sd_configs:
      - role: node
    relabel_configs:
      - action: labelmap
        regex: __meta_kubernetes_node_label_(.+)
      - replacement: kubernetes.default.svc:443
        target_label: __address__
      - source_labels: [__meta_kubernetes_node_name]
        regex: (.+)
        target_label: __metrics_path__
        replacement: /api/v1/nodes/$1/proxy/metrics/cadvisor
  # apiserver metrics
  - bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
    job_name: kubernetes-apiservers
    kubernetes_sd_configs:
    - role: endpoints
    relabel_configs:
    - action: keep
      regex: default;kubernetes;https
      source_labels:
      - __meta_kubernetes_namespace
      - __meta_kubernetes_service_name
      - __meta_kubernetes_endpoint_port_name
    scheme: https
  # kube proxy metrics
  - job_name: kube-proxy
    honor_labels: true
    kubernetes_sd_configs:
    - role: pod
    relabel_configs:
    - action: keep
      source_labels:
      - __meta_kubernetes_namespace
      - __meta_kubernetes_pod_name
      separator: '/'
      regex: 'kube-system/kube-proxy.+'
    - source_labels:
      - __address__
      action: replace
      target_label: __address__
      regex: (.+?)(\\:\\d+)?
      replacement: $1:10249
  # kube-state-metrics
  - job_name: kube-state-metrics
    honor_timestamps: true
    scrape_interval: 1m
    scrape_timeout: 1m
    metrics_path: /metrics
    scheme: http
    static_configs:
    - targets:
      - kube-state-metrics.kube-system.svc.cluster.local:8080
  # node-exporter
  - job_name: 'node-exporter'
    kubernetes_sd_configs:
    - role: node
    relabel_configs:
    - action: replace
      source_labels: [__address__]
      regex: '(.*):10250'
      replacement: '${1}:9100'
      target_label: __address__

这里需要重新创建一个抓取程序。

效果

参考

相关推荐
苦逼IT运维1 小时前
Jenkins 监控方案:Prometheus + Grafana 实践
jenkins·grafana·prometheus
落日漫游7 小时前
K8s资源管理:高效管控CPU与内存
java·开发语言·kubernetes
ggaofeng10 小时前
k8s网络原理
网络·容器·kubernetes
我真的是大笨蛋1 天前
K8S-基础架构
笔记·云原生·容器·kubernetes
木二_1 天前
附050.Kubernetes Karmada Helm部署联邦及使用
容器·kubernetes·karmada·kubernetes联邦·集群联邦
wdxylb1 天前
Kubernetes实战系列(4)
云原生·容器·kubernetes
我真的是大笨蛋1 天前
K8S-Pod(上)
java·云原生·容器·kubernetes
哈里谢顿1 天前
Kubernetes 服务高可用详解
kubernetes
A-刘晨阳1 天前
从全球视角到K8s落地的Apache IoTDB实战
kubernetes·apache·iotdb
迦蓝叶2 天前
JAiRouter 配置文件重构纪实 ——基于单一职责原则的模块化拆分与内聚性提升
java·网关·ai·重构·openai·prometheus·单一职责原则