Prometheus 简介
Prometheus 是一个开源的系统监测和警报工具,最初是在 SoundCloud 建立的。自2012年以来,许多公司和组织已经采用了 Prometheus,该项目拥有一个非常活跃的开发者和用户社区。现在,它是一个独立的开源项目,并独立于任何公司进行维护。为了强调这一点,并澄清项目的管治结构,Prometheus 在2016年加入了 Cloud Native Computing Foundation,成为继 Kubernetes 之后的第二个托管项目。
Prometheus 将其度量指标作为时间序列数据进行收集和存储,即度量信息存储在其记录时间戳旁边的可选键值对标签中。
准备
- Kubernetes
- Helm
- Kubeapps(Optional)
安装
导入bitnami repo
helm repo add bitnami https://charts.bitnami.com/bitnami
helm repo update
准备chart values
完整的原始值可以通过helm命令查看
helm show values bitnami/kube-prometheus
需要提供一个额外的配置,以下配置启动 pod 注解自动发现
apiVersion: v1
kind: Secret
metadata:
name: prometheus.yaml
type: Opaque
stringData:
promYaml: |
- job_name: "kubernetes-pods"
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_scheme]
action: replace
target_label: __scheme__
regex: (https?)
- 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
target_label: __address__
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
- source_labels: [__meta_kubernetes_namespace]
action: replace
target_label: kubernetes_namespace
- source_labels: [__meta_kubernetes_pod_name]
action: replace
target_label: kubernetes_pod
需要修改的地方
prometheus:
externalUrl: 'https://prom.example.com'
ruleSelector: { matchLabels: { prometheus: 'example' } }
disableCompaction: true # 这里用到 thanos 的话需要关闭 prometheus 自己的压缩
persistence:
enabled: true
size: 20Gi # 如果是阿里云的话,最小要求 20Gi,可以根据需求自己调整
additionalScrapeConfigs:
enabled: true
name: 'prometheus.yaml'
key: 'promYaml'
alertmanager:
configSelector: { matchLabels: { alertmanagerConfig: 'example' } }
使用
添加 data source
打开 Grafana,找到 Data sources,添加 datasource,选择 prometheus。
添加仪表盘
- 访问 grafana.com/grafana/das…
- 比如要添加 Node Exporter Full,搜索 Node,打开 Node Exporter Full 详情,在右边 Copy ID to clipboard
- 返回 grafana,选择 Dashboards -> import,输入刚刚拷贝的 ID,此处是1860。
结果
打开 Dashboard 页面,点击仪表盘,就可以看到节点的一些指标了