标签: kube-prometheus-stack

在 kube-prometheus-stack helm 值之外添加 PodMonitor 或 ServiceMonitor

使用kube-prometheus-stack helm 图表,版本 35.2.0。到目前为止,我添加了我的 custom PrometheusRulesPodMonitorServiceMonitor通过 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)

prometheus-operator kube-prometheus-stack servicemonitor

12
推荐指数
1
解决办法
1万
查看次数

如何覆盖 kube-prometheus-stack helm 图表中的 Alertmanager 配置

我正在从 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

8
推荐指数
2
解决办法
1万
查看次数

Thanos-Query/Query-Frontend 不显示任何指标

基本上,我已经使用提供的 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 将应用程序部署到集群。

bitnami kubernetes thanos helm3 kube-prometheus-stack

6
推荐指数
1
解决办法
3025
查看次数

Helm Prometheus 操作员不会向目标添加新的 ServiceMonitor 端点

我正在尝试使用 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

5
推荐指数
1
解决办法
3068
查看次数

带有 pod 标签的 Prometheus kubelet 指标

我正在尝试弄清楚如何使用 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其标签的方式显示这两个指标(在普罗米修斯图中)。

感谢您的任何建议。

metrics kubernetes prometheus kubelet kube-prometheus-stack

5
推荐指数
1
解决办法
3263
查看次数