外部prometheus监控k8s1.24
时间: 2023-05-09 21:02:41 浏览: 263
Prometheus监控K8S
5星 · 资源好评率100%
Prometheus是一款可以用于监测和告警的开源软件,可以用来监视从Kubernetes(K8s)集群发出的指标。外部Prometheus监控K8s 1.24版本可以通过以下步骤实现:
首先,需要在K8s集群中部署Prometheus Operator。这个操作符会创建一个Prometheus实例,同时会创建ServiceMonitor和PrometheusRule对象,用来自动发现需要监控的资源(Service、Pod、Endpoint等)并配置Prometheus收集这些资源的指标。
然后,在Prometheus的配置文件中指定要监测的K8s集群地址。可以通过kubelet的metrics和API Server的监控端点来收集K8s集群的指标。可以用以下类似的配置:
```
scrape_configs:
- job_name: 'kubernetes-nodes'
kubernetes_sd_configs:
- role: node
relabel_configs:
- action: labelmap
regex: __meta_kubernetes_node_label_(.+)
- target_label: __address__
replacement: kubernetes.default.svc:443
- source_labels: [__meta_kubernetes_node_name]
target_label: __metrics_path__
replacement: /api/v1/nodes/${1}/proxy/metrics
```
这个配置会通过kubelet endpoint获取K8s节点的指标信息,并使用`labelmap`将`__meta_kubernetes_node_label_*`标签映射到标准标签上。同时,将`__address__`和`__metrics_path__`设置为指定的节点地址和metrics端口。
最后,在Prometheus实例中添加要监视的规则和警报,可以在PrometheusRule对象中定义这些规则。可以根据需要制定警报规则和处理逻辑,若超过某些阈值则触发报警。可以用以下类似的配置:
```
groups:
- name: kubernetes.rules
rules:
- alert: PodDown
expr: absent(kube_pod_info{job="kubelet"}) > 0
for: 5m
labels:
severity: critical
annotations:
summary: "Pod {{ $labels.namespace }}/{{ $labels.pod }} down"
```
这个配置可以定义一个警报规则,即如果某个kubelet无法获取Pod的指标信息,则视为该Pod已关闭,若该警报持续5分钟以上,则视为触发了警报。可以将其严重程度标记为`critical`,并在`annotations`中制定触发警报时的摘要信息。
以上是外部Prometheus监控K8s 1.24版本实现的部分步骤,具体实现还需要根据具体的情况进行细节调整。
阅读全文