告警功能配置说明

可用版本 >= 0.2.1

架构说明

img.png

使用说明

  1. 在 ClickHouse 中产生对应数据表的 Materialized View,作用是将数据按照配置的规则以秒为单位录入 metrics.samples 表中
  2. 产生的 Prometheus 告警规则写入配置的文件或者 configmap 中
  3. Prometheus 读取 metrics.samples 的数据,并根据告警规则产生告警,推送到 Prometheus AlertManager
  4. Prometheus AlertManager 通过 webhook 推送到 clickvisual,再由 clickvisual 分发到钉钉

集群部署

可参考https://github.com/clickvisual/clickvisual/tree/master/data/k8s/prometheus告警功能配置说明 - 图2 (opens new window) 中的配置。

ClickHouse 配置

新增graphite_rollup 配置,配置路径可以参考,根据 clickhouse 的版本不通略有区别,具体以官方指导配置为准。

img.png

  1. <?xml version="1.0" ?>
  2. <yandex>
  3. <graphite_rollup>
  4. <path_column_name>tags</path_column_name>
  5. <time_column_name>ts</time_column_name>
  6. <value_column_name>val</value_column_name>
  7. <version_column_name>updated</version_column_name>
  8. <default>
  9. <function>avg</function>
  10. <retention>
  11. <age>0</age>
  12. <precision>10</precision>
  13. </retention>
  14. <retention>
  15. <age>86400</age>
  16. <precision>30</precision>
  17. </retention>
  18. <retention>
  19. <age>172800</age>
  20. <precision>300</precision>
  21. </retention>
  22. </default>
  23. </graphite_rollup>
  24. </yandex>

需要创建 metrics.samples 表,依赖 graphite_rollup 配置

  1. CREATE DATABASE IF NOT EXISTS metrics;
  2. CREATE TABLE IF NOT EXISTS metrics.samples
  3. (
  4. date Date DEFAULT toDate(0),
  5. name String,
  6. tags Array(String),
  7. val Float64,
  8. ts DateTime,
  9. updated DateTime DEFAULT now()
  10. )ENGINE = GraphiteMergeTree(date, (name, tags, ts), 8192, 'graphite_rollup');

prom2click 配置

prom2click 仓库地址:https://github.com/mindis/prom2click告警功能配置说明 - 图4 (opens new window)

修改服务启动参数,-ch.dsn 参数,保证该服务可以访问到 clickhouse。

Prometheus 配置

启动文件里面增加如下配置:

  • prom2click 为对应服务访问地址
  • alertmanager 为对应服务访问地址
  1. alerting:
  2. # 告警配置文件
  3. alertmanagers:
  4. # 修改:使用静态绑定
  5. - static_configs:
  6. # 修改:targets、指定地址与端口
  7. - targets: ["alertmanager:9093"]
  8. remote_read:
  9. - url: "http://prom2click:9201/read"
  10. read_recent: true
  11. remote_write:
  12. - url: "http://prom2click:9201/write"
  13. queue_config:
  14. capacity: 10000
  15. max_shards: 1
  16. max_samples_per_send: 500

Prometheus AlertManager 配置

告警方式为 webhook,回调到 clickvisual 服务,修改 url 地址,保证可以正常访问 clickvisual 服务。

  1. route:
  2. group_by: ['alertname', 'cluster', 'service']
  3. group_wait: 30s
  4. group_interval: 5m
  5. repeat_interval: 10m
  6. receiver: webhook
  7. receivers:
  8. - name: 'webhook'
  9. webhook_configs:
  10. - url: 'http://clickvisual:9001/api/v1/prometheus/alerts'

clickvisual 配置

访问:系统设置 -> 实例管理

新增和编辑实例数据可以再更多设置中,可以看到如下配置,这个部分配置的作用是将告警规则下发到 Prometheus。

如果 Prometheus 采用本地配置文件方式启动,例如下面这个例子,则将文件路径配置为 /etc/prometheus/rules

  1. rule_files:
  2. - /etc/prometheus/rules/*.yaml

img.png

如果通过 k8s 方式部署,这个 configmap 即 rules 存储的位置。 img.png

报警消息推送效果

img.png