使用kube-prometheus-stack helm 图表,版本 35.2.0。到目前为止,我添加了我的 custom PrometheusRules,PodMonitor并ServiceMonitor通过 helm 自定义值。
helm install my-kubpromstack prometheus-community/kube-prometheus-stack -n monitoring \
-f my-AlertRules.yaml \
-f my-PodMonitor.yaml
Run Code Online (Sandbox Code Playgroud)
PrometheusRules或者如果或发生变化PodMonitor,我使用helm upgrade. 自定义值是基于kube-prometheus-stack/values.yaml定义的。我在单独的 YAML 文件中定义prometheus.additionalPodMonitors和的地方additionalPrometheusRulesMap
helm upgrade my-kubpromstack -n monitoring \
--reuse-values \
-f my-AlertRules.yaml \
-f my-PodMonitor.yaml
Run Code Online (Sandbox Code Playgroud)
问题:如何使 Prometheus 服务器kube-prometheus-stack感知在 helm 值之外创建的规则、podmonitor、servicemonitor?
例如,PodMonitorPrometheus 不会选择下面的定义(即不会出现在 Prometheus UI 的目标中)。
kubectl apply -f - << EOF
apiVersion: monitoring.coreos.com/v1
kind: PodMonitor
metadata: …Run Code Online (Sandbox Code Playgroud) 我正在从 Helm Chart 部署一个监控堆栈kube-prometheus-stack,并尝试配置 Alertmanager,以便它具有我的自定义配置,用于在 Slack 通道中发出警报。
Pod 中的配置是从 加载的/etc/alertmanager/config/alertmanager.yaml。从 Pod 描述来看,该文件是从自动生成的 Secret 中加载的:
...
volumeMounts:
- mountPath: /etc/alertmanager/config
name: config-volume
...
volumes:
- name: config-volume
secret:
defaultMode: 420
secretName: alertmanager-prometheus-community-kube-alertmanager-generated
Run Code Online (Sandbox Code Playgroud)
如果我检查秘密,它包含在默认值中找到的默认配置alertmanager.config,我打算覆盖它。
如果我将以下配置传递给alertmanager以全新安装图表,它不会创建alertmanager pod:
alertmanager:
config:
global:
resolve_timeout: 5m
route:
group_by: ['job', 'alertname', 'priority']
group_wait: 10s
group_interval: 1m
routes:
- match:
alertname: Watchdog
receiver: 'null'
- receiver: 'slack-notifications'
continue: true
receivers:
- name: 'slack-notifications'
slack-configs:
- slack_api_url: <url here>
title: '{{ .Status }} ({{ …Run Code Online (Sandbox Code Playgroud) kubernetes kubernetes-helm prometheus-alertmanager kube-prometheus-stack
基本上,我已经使用提供的 Helm Chart 存储库prometheus-community从kube-prometheus-stack安装了 Prometheus-Grafana
# helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
# helm install kube-prometheus-stack prometheus-community/kube-prometheus-stack
Run Code Online (Sandbox Code Playgroud)
他们工作得很好。
但我现在面临的问题是将Thanos与现有的kube-prometheus-stack集成。
我从Bitnami Helm Chart 仓库安装了 Thanos
# helm repo add bitnami https://charts.bitnami.com/bitnami
# helm install thanos bitnami/thanos
Run Code Online (Sandbox Code Playgroud)
我可以加载 Thanos 查询前端 GUI,但那里没有显示任何指标。
我现在正在努力让它正常工作。是因为来自完全不同的 Helm Chart 的 Thanos 和来自另一个 Helm Chart 的 Prometheus-operator-grafana 堆栈吗?
我在 AWS 上的 Kubernetes 集群是使用 Kops 创建的。而且,我使用 Gitlab pipeline 和 helm 将应用程序部署到集群。
我正在尝试使用 helm prometheus https://github.com/prometheus-community/helm-charts监控我的应用程序。我已经成功安装了这个舵图。
prometheus-kube-prometheus-operator-5d8dcd5988-bw222 1/1 Running 0 11h
prometheus-kube-state-metrics-5d45f64d67-97vxt 1/1 Running 0 11h
prometheus-prometheus-kube-prometheus-prometheus-0 2/2 Running 0 11h
prometheus-prometheus-node-exporter-gl4cz 1/1 Running 0 11h
prometheus-prometheus-node-exporter-mxrsm 1/1 Running 0 11h
prometheus-prometheus-node-exporter-twvdb 1/1 Running 0 11h
Run Code Online (Sandbox Code Playgroud)
通过这些 yml 配置在同一命名空间中创建应用服务和部署:
apiVersion: apps/v1
kind: Deployment
metadata:
name: appservice
namespace: monitoring
labels:
app: appservice
annotations:
prometheus.io/scrape: 'true'
prometheus.io/path: '/actuator/prometheus'
spec:
replicas: 1
selector:
matchLabels:
app: appservice
template:
metadata:
labels:
app: appservice
...
Run Code Online (Sandbox Code Playgroud)
apiVersion: v1
kind: Service
metadata:
name: appservice
namespace: monitoring
annotations:
prometheus.io/scrape: 'true' …Run Code Online (Sandbox Code Playgroud) kubernetes prometheus kubernetes-helm prometheus-operator kube-prometheus-stack
我正在尝试弄清楚如何使用 prometheus-stack 将 pod 标签从 kubelet 指标获取到指标标签。在我们的环境中,我们需要对 pod 名称进行哈希处理(由于长度限制),以便我们的应用程序名称、env 和单元名称保存在 pod 标签中。
我们使用 prometheus-stack(helm 安装)从 kubelet ( /metrics, /metrics/cadvisor) 收集指标,由于指标标签中缺少 pod 标签,因此很难知道哪个指标属于哪个应用程序。
Prometheus-stack 使用sd_kubernetes_config端点规则来收集 kubelet 指标,其中__meta不能使用 pod 标签的标签。还有另一种方法可以在度量标签中获取该标签吗?
我还尝试使用 来收集 pod_labels 指标kubeStateMetrics,我可以在其中获取包含 pod 标签的指标,但我无法弄清楚如何以 cadvisor 中的指标将显示其值和来自 的指标将用于显示kubeStateMetrics其标签的方式显示这两个指标(在普罗米修斯图中)。
感谢您的任何建议。