k8s环境prometheus operator监控集群外资源

文章目录

    • [k8s环境prometheus operator添加node-exporter](#k8s环境prometheus operator添加node-exporter)
    • [外部需要被监控服务器安装 node-exporter](#外部需要被监控服务器安装 node-exporter)
        • [docker 方式运行](#docker 方式运行)
        • [systemd 方式运行](#systemd 方式运行)
      • [方式二:通过 Kube-prometheus 自定义参数](#方式二:通过 Kube-prometheus 自定义参数)
          • [添加 prometheus-additional.yaml](#添加 prometheus-additional.yaml)
          • [通过 prometheus-additional.yaml 文件生成 Secret](#通过 prometheus-additional.yaml 文件生成 Secret)
          • [编辑 prometheus-prometheus.yaml 添加额外的抓取参数](#编辑 prometheus-prometheus.yaml 添加额外的抓取参数)
          • [应用 prometheus-prometheus.yaml](#应用 prometheus-prometheus.yaml)

参考网站

复制代码
https://prometheus.io/docs/guides/node-exporter/#tarball-installation
k8s环境添加其他节点

参考文档

文档一

复制代码
[关于修改prometheus-operator 方式下的prometheus的配置文件_kubesphere修改prometheus配置-CSDN博客](https://blog.csdn.net/rockstics/article/details/129518262)

文档二

复制代码
[在Prometheus Operator中使用自定义配置 | prometheus-book (gitbook.io)](https://yunlzheng.gitbook.io/prometheus-book/part-iii-prometheus-shi-zhan/operator/use-custom-configuration-in-operator)
基于prometheus operator

引入外部exporter参考文档 rabbitmq

复制代码
[基于prometheus operator引入外部exporter_prometheus operator 添加exporter-CSDN博客](https://blog.csdn.net/weixin_45413603/article/details/107618020)

引入外部exporter参考文档 windows exporte

复制代码
[k8s中使用prometheus operator监控外部服务器部署的windows exporter_servicemonitor监控外部服务-CSDN博客](https://blog.csdn.net/weixin_52437323/article/details/129132978?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-129132978-blog-107618020.235%5Ev43%5Epc_blog_bottom_relevance_base6&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-129132978-blog-107618020.235%5Ev43%5Epc_blog_bottom_relevance_base6&utm_relevant_index=6)

监控 K8s 集群外服务的两种方式

复制代码
[Kube-prometheus 监控 K8s 集群外服务的两种方式_liubin0505star的技术博客_51CTO博客](https://blog.51cto.com/liubin0505star/5767918)

k8s环境prometheus operator添加node-exporter

方式一:通过 ServiceMonitor 方式

创建 Service 和 ServiceMonitor 文件名为 external-node.yaml

/root/test/prometheus/node-exporter/123node

复制代码
---
apiVersion: v1
kind: Service
metadata:
  name: external-node-exporter
  namespace: monitoring
  labels:
    app: external-node-exporter
    app.kubernetes.io/name: node-exporter
spec:
  type: ClusterIP
  ports:
  - name: metrics
    port: 9100
    protocol: TCP
    targetPort: 9100
---
apiVersion: v1
kind: Endpoints
metadata:
    name: external-node-exporter
    namespace: monitoring
    labels:
      app: external-node-exporter
      app.kubernetes.io/name: node-exporter
subsets:
- addresses:
  - ip: 192.168.10.10  # 这里是外部的资源列表
  ports:
  - name: metrics
    port: 9100
---
apiVersion: monitoring.coreos.com/v1
kind: ServiceMonitor
metadata:
  name: external-node-exporter
  namespace: monitoring
  labels:
    app: external-node-exporter
    release: prometheus
spec:
  selector:
    matchLabels:            # Service选择器
      app: external-node-exporter
  namespaceSelector:        # Namespace选择器
    matchNames:
    - monitoring
  endpoints:
  - port: metrics           # 采集节点端口(svc定义)
    interval: 10s           # 采集频率根据实际需求配置,prometheus默认15s
    path: /metrics          # 默认地址/metrics
可以写多个监控node节点
复制代码
- addresses:
  - ip: 192.168.10.10  # 这里是外部的资源列表
  - ip: 192.168.10.10  # 这里是外部的资源列表
  - ip: 192.168.10.10  # 这里是外部的资源列表
  - ip: 192.168.10.10  # 这里是外部的资源列表      
  ports:
  - name: metrics
    port: 9100
运行 external-node.yaml
复制代码
kubectl apply -f external-node.yaml
查看资源有没有被创建
复制代码
kubectl get ServiceMonitor,Service,Endpoints  -n monitoring  | grep endpoints
热更新
复制代码
root@k8s-master01:~# curl -X POST http://10.244.16.233:9090/-/reload
root@k8s-master01:~# curl -X POST http://10.244.201.226:9090/-/reload

部署完之后 等待一小会 prometheus 支持配置热更 要么重启prome 要么等待他热更完毕 可以在ui的

外部需要被监控服务器安装 node-exporter

docker 方式运行
复制代码
# docker run -d --name=node_exporter \ --restart=always \ -v /:/host:ro,rslave \ -p 9100:9100 \ prom/node-exporter:v1.4.0 \ --path.rootfs=/host
systemd 方式运行

node-exporter 会暴露系统监控相关的 /metrics 接口来供 Prometheus 来抓取

加入node_exporter开机自启

复制代码
vim /etc/systemd/system/node_exporter.service

[Unit]
Description=Node Exporter For Prometheus
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
ExecStart=/usr/local/bin/node_exporter/node_exporter   "--web.listen-address=:9100"
Restart=always  服务自拉起
RestartSec=1

[Install]
WantedBy=multi-user.target

查看服务

复制代码
systemctl daemon-reload
systemctl start node_exporter  开启服务
systemctl stop node_exporter   关闭服务
systemctl restart node_exporter    重启服务
systemctl status node_exporter    查看服务状态
systemctl enable node_exporter    将服务设置为开机自启动
systemctl disable node_exporter    禁止服务开机自启动
systemctl is-enabled node_exporter    查看服务是否开机启动
systemctl list-unit-files|grep enabled    查看开机启动的服务列表
systemctl --failed    查看启动失败的服务列表

方式二:通过 Kube-prometheus 自定义参数

添加 prometheus-additional.yaml
复制代码
- job_name: 'node-exporter-others'
  static_configs:
    - targets:
      - 192.168.10.10:9100
  metrics_path: /metrics
通过 prometheus-additional.yaml 文件生成 Secret
复制代码
# kubectl create secret generic additional-scrape-configs --from-file=prometheus-additional.yaml -n monitoring
编辑 prometheus-prometheus.yaml 添加额外的抓取参数

prometheus-prometheus.yaml 在 manifests 目录下

复制代码
additionalScrapeConfigs:
    name: additional-scrape-configs
    key: prometheus-additional.yaml
应用 prometheus-prometheus.yaml
复制代码
# kubectl apply -f prometheus-prometheus.yaml
相关推荐
YDS82941 分钟前
DeepSeek RAG&MCP + Agent智能体项目 —— 集成ELK日志管理系统和Prometheus监控系统
java·elk·ai·springboot·agent·prometheus·deepseek
ggaofeng9 小时前
glusterfs如何在k8s中使用
云原生·容器·kubernetes·glusterfs
暮云星影9 小时前
个人总结 搭建Docker监控
docker·容器·grafana·prometheus
IT策士10 小时前
第49篇 k8s之服务网格入门:Istio 简介
容器·kubernetes·istio
张忠琳13 小时前
【client-go v0.36.1】LeaderElection 深度分析(上篇)— 模块定位、结构、LeaderElector 核心逻辑
云原生·kubernetes·client-go·leaderelection
牛奶咖啡1314 小时前
k8s容器编排技术实践——K8s中服务发现ingress、ingress controller 应用实践
kubernetes·服务发现·ingress·ingress-nginx·部署ingress-nginx·部署ingress的三种方法·ingress的服务发现原理
l1t14 小时前
DeepSeek总结的使用 Docker 对 PostgreSQL 进行 Beta 测试
docker·postgresql·容器
张忠琳15 小时前
【client-go v0.36.1】tools/cache 深度分析(中篇)— 辅助组件逐行解析
云原生·kubernetes·cache·informer·client-go
暮云星影19 小时前
个人总结 docker 常用命令
docker·容器
张忠琳20 小时前
【client-go v0.36.1】WorkQueue 深度分析(下篇)— 限流队列、限流器、指标、并行化
云原生·kubernetes·informer·workqueue·client-go