跳转至

监控指标

本页说明如何在 Calico 中开启 calico_prometheus_metrics 接入 Prometheus 监控指标。

开启组件 metrics

通过 kubespray 部署时可根据 calico_felix_prometheusmetricsenabled 参数决定是否打开,默认为 false. 或者通过下面的方式手动开启:

  1. 开启 calico_felix_prometheusmetricsenabled

    calicoctl patch felixconfiguration default  --patch '{"spec":{"prometheusMetricsEnabled": true}}'
    

    或者

    kubectl patch felixconfiguration default --type merge --patch '{"spec":{"prometheusMetricsEnabled": true}}'
    
  2. 开启 calico_kube_controller_metrics

    calicoctl patch kubecontrollersconfiguration default  --patch '{"spec":{"prometheusMetricsPort": 9095}}'
    

    或者

    kubectl patch kubecontrollersconfiguration default --type=merge  --patch '{"spec":{"prometheusMetricsPort": 9095}}'
    

创建各自组件的 metrics service

calico_felix_svc

apiVersion: v1
kind: Service
metadata:
  name: calico-node-metrics
  namespace: kube-system
  labels:
    app: calico-node
    role: metrics
spec:
  clusterIP: None
  selector:
    k8s-app: calico-node
  ports:
  - port: 9091
    name: metrics
    targetPort: 9091

calico_

apiVersion: v1
kind: Service
metadata:
  name: calico-kube-controllers-metrics
  namespace: kube-system
  labels:
    app: calico-kube-controllers
    role: metrics
spec:
  clusterIP: None
  selector:
    k8s-app: calico-kube-controllers
  ports:
  - port: 9095
    name: metrics
    targetPort: 9095

创建 ServiceMonitor 对象

calico_felix_svc

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: calico-node
  namespace: kube-system
  labels:
    app: calico-node
spec:
  endpoints:
  - interval: 30s
    port: metrics
  selector:
    matchLabels:
      app: calico-node
      role: metrics

calico-kube-controllers-metrics

apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: calico-kube-controller
  namespace: kube-system
  labels:
    app: calico-kube-controller
spec:
  endpoints:
  - interval: 30s
    port: metrics
  selector:
    matchLabels:
      app: calico-kube-controllers
      role: metrics

重要指标列表

序号 指标 说明 价值指数 其他说明 关联问题
1 felix_ipset_errors 执行 ipset-restore 失败次数 ** 可考虑采集 次数 +1 不一定造成问题
2 felix_iptables_restore_calls 执行 iptables-restore 次数 ***** 采集 NA
3 felix_iptables_restore_errors 执行 iptables-restore 失败次数 ***** 采集 restore 失败可能造成 Pod 访问失败,出现 restore 失败的原因可能xtables_lock 竞争失败,检查主机上 iptables 数量是否过多
4 felix_iptables_save_calls 执行 iptables-save 的次数 **** 可考虑采集 NA
5 felix_iptables_save_errors 执行 iptables-save 失败的次数 ***** 采集
6 felix_log_errors 日志报告 error 的次数 ***** 建议采集
7 ipam_allocations_per_node 每个节点上 IP 分配的数量 **** 建议采集
8 ipam_blocks_per_node 每个节点上分配的 Block 数量 ***** 采集

评论