如何配置prometheus kubernetes_sd_configs 指定特定主机端口?
Posted
技术标签:
【中文标题】如何配置prometheus kubernetes_sd_configs 指定特定主机端口?【英文标题】:How to configure prometheus kubernetes_sd_configs to specify a specific host port? 【发布时间】:2020-08-19 12:48:09 【问题描述】:我在 GKE 上的另一个端口 (11100) 上运行节点导出器,并将 prometheus.yml 配置为使用 kubernetes_sd_configs。但是,服务发现似乎正在返回具有 Kubelet 端口 (10250) <node-ip>:10250/metrics
的节点 IP。我似乎找不到指定使用哪个端口的方法。有什么想法吗?
- job_name: gke-nodes
kubernetes_sd_configs:
- role: node
另外,node-exporter 在端口11100
中运行正常。我通过在内部节点 IP <node-ip>:11100/metrics
中执行 curl 来验证它,它就像一个魅力
这是我的节点导出器定义
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: node-exporter-ds
namespace: monitoring
labels:
app: node-exporter
belongsTo: monitoring
spec:
selector:
matchLabels:
app: node-exporter
template:
metadata:
labels:
app: node-exporter
spec:
serviceAccountName: monitoring-sa
volumes:
- name: proc
hostPath:
path: /proc
- name: sys
hostPath:
path: /sys
containers:
- name: node-exporter
image: prom/node-exporter:v0.18.1
args:
- "--web.listen-address=0.0.0.0:11100"
- "--path.procfs=/proc_host"
- "--path.sysfs=/host_sys"
ports:
- containerPort: 11100
hostPort: 11100
volumeMounts:
- name: sys
readOnly: true
mountPath: /host_sys
- name: proc
readOnly: true
mountPath: /proc_host
imagePullPolicy: IfNotPresent
hostNetwork: true
hostPID: true
【问题讨论】:
你是如何设置 prometheus/node 导出器的? 我将在问题中更新它,以便向您展示我的节点导出器定义 能分享一下prometheus/node exporter的错误信息和日志吗? 【参考方案1】:以防万一有人遇到同样的问题,此配置将添加与 Kubelet 端口不同的 k8s 节点 IP:
- job_name: 'gke-nodes'
kubernetes_sd_configs:
- role: node
relabel_configs:
- source_labels: [__address__]
action: replace
regex: ([^:]+):.*
replacement: $1:11100 # port you want to use
target_label: __address__
kubernetes_sd_config 的默认行为是将具有 Kubelet 端口的节点的 IP 添加为目标,这在 documentation 中指定: p>
节点角色为每个集群节点发现一个目标,其地址默认为 Kubelet 的 HTTP 端口
但是,您可以使用 relabel_config
覆盖 __address__
标签并将 Kubelet 端口替换为任何需要的端口。
【讨论】:
以上是关于如何配置prometheus kubernetes_sd_configs 指定特定主机端口?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用配置文件使 Prometheus Alertmanager 静音?
如何配置 Grafana 以捕捉 Prometheus 指标的急剧下降?
如何使用 Istio 的 Prometheus 配置 kubernetes hpa?
如何在 prometheus 配置中重新标记 ECS cadvisor 标签?