n9e categraf k8s监控配置 -kube-state-metrics

1、k8s集群中创建命名空间/角色/绑定关系/容器-kube-state-metrics

下载镜像 kube-state-metrics-v2.5.0.tar

bash 复制代码
docker load -i kube-state-metrics-v2.5.0.tar
docker images |grep kube-state-metrics
kubectl create namespace z-monitor
vi   kube-state-metrics.yaml
bash 复制代码
#Create by:ember.zhang
#为什么不问问神奇的海螺呢丶
apiVersion: v1
kind: ServiceAccount
metadata:
  name: kube-state-metrics
  namespace: z-monitor  # 命名空间 
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: kube-state-metrics
rules:
  - apiGroups: [""]
    resources:
      - configmaps
      - secrets
      - nodes
      - pods
      - services
      - resourcequotas
      - replicationcontrollers
      - limitranges
      - persistentvolumeclaims
      - persistentvolumes
      - namespaces
      - endpoints
    verbs: ["list", "watch"]
  - apiGroups: ["apps"]
    resources:
      - statefulsets
      - daemonsets
      - deployments
      - replicasets
    verbs: ["list", "watch"]
  - apiGroups: ["batch"]
    resources:
      - cronjobs
      - jobs
    verbs: ["list", "watch"]
  - apiGroups: ["autoscaling"]
    resources:
      - horizontalpodautoscalers
    verbs: ["list", "watch"]
  - apiGroups: ["policy"]
    resources:
      - poddisruptionbudgets
    verbs: ["list", "watch"]
  - apiGroups: ["certificates.k8s.io"]
    resources:
      - certificatesigningrequests
    verbs: ["list", "watch"]
  - apiGroups: ["storage.k8s.io"]
    resources:
      - storageclasses
      - volumeattachments
    verbs: ["list", "watch"]
  - apiGroups: ["apiextensions.k8s.io"]
    resources:
      - customresourcedefinitions
    verbs: ["list", "watch"]
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kube-state-metrics
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: kube-state-metrics
subjects:
  - kind: ServiceAccount
    name: kube-state-metrics
    namespace: z-monitor  # 命名空间
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kube-state-metrics
  namespace: z-monitor  # 命名空间
  labels:
    app: kube-state-metrics
spec:
  replicas: 1  # 副本数
  selector:
    matchLabels:
      app: kube-state-metrics
  template:
    metadata:
      labels:
        app: kube-state-metrics
    spec:
      serviceAccountName: kube-state-metrics
      containers:
        - name: kube-state-metrics
          image: registry.k8s.io/kube-state-metrics/kube-state-metrics:v2.5.0  # 镜像版本
          imagePullPolicy: IfNotPresent  # 强制使用本地镜像
          ports:
            - name: http-metrics
              containerPort: 8080
            - name: telemetry
              containerPort: 8081
          resources:
            # 资源限制
            limits:
              cpu: 200m
              memory: 256Mi
            requests:
              cpu: 100m
              memory: 128Mi
          readinessProbe:
            httpGet:
              path: /healthz
              port: 8080
            initialDelaySeconds: 5
            timeoutSeconds: 5
          livenessProbe:
            httpGet:
              path: /healthz
              port: 8080
            initialDelaySeconds: 15
            timeoutSeconds: 5
---
apiVersion: v1
kind: Service
metadata:
  name: kube-state-metrics
  namespace: z-monitor  # 命名空间
  labels:
    app: kube-state-metrics
spec:
  type: NodePort  
  ports:
    - name: http-metrics
      port: 8080
      targetPort: 8080
      nodePort: 30880
      protocol: TCP
    - name: telemetry
      port: 8081
      targetPort: 8081
      nodePort: 30881
      protocol: TCP
  selector:
    app: kube-state-metrics
bash 复制代码
kubectl apply -f z-kube-state-metrics.yaml

2、categraf/conf/input.prometheus/ 增加配置文件

bash 复制代码
vi cim-prod.toml
bash 复制代码
interval = 15

[[instances]]
urls = [
    "http://10.12.8.xx:30880/metrics"
]

url_label_key = "instance"
url_label_value = "{{.Host}}"


interval_times = 1

labels = { cluster = "k8s-cim-prod" }


ignore_metrics = [ "go_*", "process_*", "http_*" ]

ignore_label_keys = []


timeout = "10s"

重启 categraf

bash 复制代码
service  categraf restart
相关推荐
马优晨16 分钟前
Freemarker 完整讲解(后端 Java 模板引擎)
java·开发语言·freemarker·freemarker 完整讲解·freemarker模板引擎
张忠琳2 小时前
【NVIDIA】 NVIDIA Container Toolkit v1.19.1 — OCI 模块超深度分析之三
云原生·容器·架构·kubernetes·nvidia
维天说3 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
Zane19944 小时前
并发 vs 并行:别再傻傻分不清了,一文讲透 Java 并发编程的第一课
java·后端
Elastic 中国社区官方博客4 小时前
将你的 Grafana Kubernetes 仪表板迁移到 Elastic Observability:相同的 PromQL,30 倍更快的查询
大数据·人工智能·elasticsearch·搜索引擎·容器·kubernetes·grafana
噢,我明白了4 小时前
java中Excel的导入和导出(EasyExcel)
java·开发语言·excel
吠品4 小时前
Zabbix Web界面误报Server未运行的排查与解决
java·服务器·数据库
啊湘4 小时前
天气查询API接口 按月Token鉴权 实时天气 物联网可用 文档齐全
java·后端·struts
Java内核笔记5 小时前
告别十亿美元的错误 : Spring Boot 4 空安全 (JSpecify) 实战
java·spring boot·后端
糖果店的幽灵5 小时前
langgraph的 MessagesState 解读
java·开发语言·人工智能·windows·langgraph