Prometheus 使用 node hostname 抓取 metrics 指标

本文介绍如何配置Prometheus抓取Kubernetes节点的监控数据。通过配置job_name、scrape_interval等参数,并利用relabel_configs进行目标地址转换,实现对节点hostname对应9100端口上暴露的metrics的定期抓取。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Prometheus 使用 node hostname 抓取节点指标

配置示例如下:

- job_name: monitoring/node-exporter-hostname/0
  kubernetes_sd_configs:
  - role: node
  scrape_interval: 30s
  scheme: http
  tls_config:
    insecure_skip_verify: true
  bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
  relabel_configs:
  - source_labels: [ __meta_kubernetes_node_name ]
    target_label: __address__
    regex: (.+)
    replacement: $1:9100
    action: replace

抓取地址为:http://[节点 hostname]:9100/metrics
在这里插入图片描述

### 配置 Prometheus 连接 Metrics 端口并抓取监控数据 为了使 Prometheus 正确连接和抓取 metrics 端点的数据,需要完成以下几个方面的配置: #### 1. 定义 Target 和 Job Prometheus 使用 `scrape_configs` 来定义目标(targets)。每个目标对应一个服务实例或主机。通过指定 `job_name` 可以为一组 targets 命名[^2]。 以下是基本的 scrape_config 配置示例: ```yaml scrape_configs: - job_name: 'example_job' static_configs: - targets: ['localhost:9090'] ``` 在此配置中,`job_name` 是该组 targets 的名称,而 `static_configs.targets` 列表指定了要抓取的目标地址及其端口号。如果目标是一个 Kubernetes Pod 或其他动态环境中的服务,则可能需要更复杂的发现机制,比如使用 Service Discovery。 #### 2. 设置正确的 Endpoint URL 对于标准 HTTP API 接口,默认情况下 Prometheus 将尝试访问 `/metrics` 路径来获取指标数据。然而某些自定义应用可能会暴露不同的路径作为其 metric endpoint。因此可以在 YAML 文件里设置具体的 path 参数覆盖默认行为: ```yaml scrape_configs: - job_name: 'custom_metrics_endpoint' static_configs: - targets: ['my-service-hostname:8080'] metrics_path: '/api/v1/metrics' # 自定义metric url路径 ``` #### 3. Kubelet 数据源接入 (针对Kubernetes场景) 在 Kubernetes 中, 如果想让 Prometheus 收集节点级别的性能统计信息(如 CPU/Memory/Disk I/O), 可利用 kubelet 提供的服务接口实现这一点[^3]. 新版 Kubernetes 默认开启的安全模式下,kubelet 的只读端口变更为 10250 , 并且 cadvisor 功能集成到了 kubelet 内部. 下面给出一段完整的 example configuration ,用于从 kubelets 获取容器级别的资源消耗详情 : ```yaml scrape_configs: - job_name: 'kubernetes-nodes-cadvisor' scheme: https tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt authorization: credentials_file: /var/run/secrets/kubernetes.io/serviceaccount/token kubernetes_sd_configs: - role: node relabel_configs: - source_labels: [__address__] regex: '(.*):4194' replacement: '${1}:10250' target_label: __address__ - action: labelmap regex: '__meta_kubernetes_node_label_(.+)' ``` 上述片段实现了如下功能 : * 使用 HTTPS 请求安全认证后的 kubelet api. * 替换了原始 address 字段为实际可用的新 port number . * 添加额外标签映射逻辑以便后续查询操作更加灵活方便 . --- ### 注意事项 - **权限控制**: 当涉及敏感生产环境时,请确保已适当调整防火墙规则允许 prometheus pod 访问各个 worker nodes 上运行的应用程序实例 . 同样也要注意 RBAC 规则授予足够的权利执行必要的动作 . - **重试策略 & Timeout 时间设定** : 根据实际情况合理规划 timeout duration 和 retry attempts 数量以应对网络波动等问题带来的影响.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值