我正在 Kubernetes 环境中研究 prometheus,我想在其中监控我们的 pod,这些 pod 正准备将指标直接发送到 prometheus。我可以通过 helm install stable/prometheus 命令安装 prometheus,但 prometheus.yml 抓取文件位于 pod 内,并且在 pod 重新启动时也不会持久。
由于我们仍在试验中,抓取文件将经过一些迭代,然后我们才能确定这个文件对我们有用。我坚持使用 helm 的原因是它还安装了其他软件包,如 grafana、nodeexpoerter 等,这些软件包很有帮助
如何指示 helm 使用 AWS 上存在的特定数据目录。假设 /var/prometheus。如果这不可能,那么至少一个自定义的 prometheus.yml,在服务器端更新时可以反映在 prometheus pod 中。
到目前为止,至少,我想补充
kubernetes_sd_configs:
- role: pod
relabel_configs:
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_scrape]
action: keep
regex: true
- source_labels: [__meta_kubernetes_pod_annotation_prometheus_io_path]
action: replace
target_label: __metrics_path__
regex: (.+)
- source_labels: [__address__, __meta_kubernetes_pod_annotation_prometheus_io_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
- action: labelmap
regex: __meta_kubernetes_pod_label_(.+)
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- action: labeldrop
regex: '(kubernetes_pod|app_kubernetes_io_instance|app_kubernetes_io_name|instance)'
This in the scraping file. What am I missing? Thank you. :-)