k8s之Prometheus-node-down解决

# prometheus-server配置如下
[root@k8s-master-1 prometheus-server]# cat prometheus-config.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: prometheus-config
  namespace: kube-prometheus
data:
  prometheus.yml: |
    global:
      scrape_interval: 15s 
      scrape_timeout: 10s
      evaluation_interval: 1m
    scrape_configs:
    - job_name: 'kubernetes-node'
      kubernetes_sd_configs:
      - role: node
    - job_name: 'prometheus-server'
      static_configs:
      - targets: ['localhost:9090']
      relabel_configs:
      - source_labels: [instance]  
        regex: '(.*)'
        replacement: 'prometheus-server:9090'
        target_label: instance
        action: replace

在这里插入图片描述
在这里插入图片描述

  • 通过上述可以发现,当我们在node_exporter部署好了以后,默认会去http://IP:10250/metrics拉取数据,但是我们一般都是设置node_exporter与宿主机共享网络,所以应该是要去http://IP:9100/metrics拉取数据,故而要重新relabels一下标签
# prometheus配置
[root@k8s-master-1 prometheus-server]# cat prometheus-config.yaml 
apiVersion: v1
kind: ConfigMap
metadata:
  name: prometheus-config
  namespace: kube-prometheus
data:
  prometheus.yml: |
    global:
      scrape_interval: 15s 
      scrape_timeout: 10s
      evaluation_interval: 1m
    scrape_configs:
    - job_name: 'kubernetes-node'
      kubernetes_sd_configs:
      - role: node
      relabel_configs:
      - source_labels: [__address__]          # 将__address__=192.168.0.10:10250 -> 192.168.0.10:9100,node_exporter默认是9100,且我已事先与宿主机共享网络空间了
        regex: '(.*):10250'
        replacement: '${1}:9100'
        target_label: __address__
        action: replace
      - action: labelmap                 
        regex: __meta__kubernetes_node_label_(.*)  # 保留__meta__kubernetes_node_label_标签后面的值作为新标签
    - job_name: 'prometheus-server'
      static_configs:
      - targets: ['localhost:9090']
      relabel_configs:
      - source_labels: [instance]             # 将instance=localhost:9090 -> instance=prometheus-server:9090
        regex: '(.*)'
        replacement: 'prometheus-server:9090'
        target_label: instance
        action: replace

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 可以发现将__address__修改成IP:9100后,即可正常获取metrics
Prometheus 是一个开源的监控系统,常用于 Kubernetes 环境中收集和存储服务的度量数据。以下是使用 Prometheus 监控 Kubernetes 的一个简要教程: 1. **安装Prometheus**: -Kubernetes集群上安装Prometheus,可以使用 Helm 图谱仓库部署 `prometheus-community/helm-charts` 中的 Prometheus chart。 ```bash helm repo add prometheus-community https://prometheus-community.github.io/helm-charts helm install my-prometheus prometheus-community/prometheus-kubernetes-stack ``` 2. **配置 Scrape Targets**: - 配置 Prometheus 以从 Kubernetes Service Monitor (ServiceMonitor) 获取目标资源列表,比如 Pod、Deployment 或 StatefulSet。 ```yaml apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: name: my-app-svc-monitor spec: selector: matchLabels: app: my-app endpoints: - port: http path: /metrics ``` 3. **设置 Alertmanager**: Prometheus 结合 Alertmanager 来发送警报通知。Alertmanager 通常会作为 Prometheus 的一部分部署,并通过 Service Discovery 自动发现 Prometheus 实例。 4. **查看指标**: - 使用 Prometheus UI 访问 `http://<your-cluster-ip>:9090/graph` 查看实时监控数据。 5. **配置告警规则**: - 编辑 Prometheus 的配置文件 `prometheus.yml` 或者单独创建 AlertRule CRD 来定义何时触发告警。 ```yaml groups: - name: 'my-app-alert-rules' rules: - alert: MyAppDown expr: up{app="my-app"} < 0.5 for: 5m labels: severity: page annotations: summary: "My App is down" description: "The service {{ $labels.app }} has been unavailable for more than 5 minutes." ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

旺仔_牛奶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值