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
相关推荐
珂玥c1 小时前
k8s集群网络插件caclico切换为flannel
云原生·容器·kubernetes
Zhu7582 小时前
【问题处理】minIO(AIStor)在k8s部署后,API访问失败的问题,TLS
云原生·容器·kubernetes
临街的小孩2 小时前
Docker 容器内运行 ROS Noetic 图形界面(rqt_image_view)极简教程总结
运维·docker·容器
Altruiste4 小时前
minikube 搭clickhouse 集群
clickhouse·kubernetes
古城小栈5 小时前
通过 Kind 快速构建 k8s 集群
云原生·kubernetes·kind
smileNicky6 小时前
Docker 部署 SpringBoot 项目超详细教程
spring boot·docker·容器
珂玥c7 小时前
kubeadm方式部署 k8s 1.21
云原生·容器·kubernetes
小义_8 小时前
【Kubernetes】(十九)监控与升级
云原生·容器·kubernetes
炸炸鱼.9 小时前
Kubernetes Pod 深度理解:从入门到实战
云原生·容器·kubernetes·pod
云游牧者10 小时前
K8S网络策略全解-NetworkPolicy与GlobalNetworkPolicy实战
网络·容器·kubernetes·cni