从零搭建Prometheus企业级监控报警系统 (3)

默认登录账户和密码都是admin,进入后界面如下

从零搭建Prometheus企业级监控报警系统


我们添加一个数据源

从零搭建Prometheus企业级监控报警系统


把Prometheus的地址填上

从零搭建Prometheus企业级监控报警系统


导入prometheus的模板

从零搭建Prometheus企业级监控报警系统


打开左上角选择已经导入的模板会看到已经有各种图

从零搭建Prometheus企业级监控报警系统

我们来添加一个自己的图表

从零搭建Prometheus企业级监控报警系统


从零搭建Prometheus企业级监控报警系统


从零搭建Prometheus企业级监控报警系统


指定自己想看的图标和关键字,右上角保存

从零搭建Prometheus企业级监控报警系统


看到如下数据

从零搭建Prometheus企业级监控报警系统

到这里我们就已经实现了数据的自动收集和展示,下面来说下prometheus如何自动报警

五.安装AlterManager

Pormetheus的警告由独立的两部分组成。
Prometheus服务中的警告规则发送警告到Alertmanager。
然后这个Alertmanager管理这些警告。包括silencing, inhibition, aggregation,以及通过一些方法发送通知,例如:email,PagerDuty和HipChat。
建立警告和通知的主要步骤:

创建和配置Alertmanager

启动Prometheus服务时,通过-alertmanager.url标志配置Alermanager地址,以便Prometheus服务能和Alertmanager建立连接。

创建和配置Alertmanager

mkdir -p /home/chenqionghe/promethues/alertmanager cd !$

创建配置文件alertmanager.yml

global: resolve_timeout: 5m route: group_by: ['cqh'] group_wait: 10s #组报警等待时间 group_interval: 10s #组报警间隔时间 repeat_interval: 1m #重复报警间隔时间 receiver: 'web.hook' receivers: - name: 'web.hook' webhook_configs: - url: 'http://10.211.55.2:8888/open/test' inhibit_rules: - source_match: severity: 'critical' target_match: severity: 'warning' equal: ['alertname', 'dev', 'instance']

这里配置成了web.hook的方式,当server通知alertmanager会自动调用webhook :8888/open/test

下面运行altermanager

docker rm -f alertmanager docker run -d -p 9093:9093 \ --name alertmanager \ -v /home/chenqionghe/promethues/alertmanager/alertmanager.yml:/etc/alertmanager/alertmanager.yml \ prom/alertmanager

访问:9093

从零搭建Prometheus企业级监控报警系统

接下来修改Server端配置报警规则和altermanager地址
修改规则/home/chenqionghe/promethues/server/rules.yml

groups: - name: cqh rules: - alert: cqh测试 expr: dead_lift > 150 for: 1m labels: status: warning annotations: summary: "{{$labels.instance}}:硬拉超标!lightweight baby!!!" description: "{{$labels.instance}}:硬拉超标!lightweight baby!!!"

这条规则的意思是,硬拉超过150公斤,持续一分钟,就报警通知
然后再修改prometheus添加altermanager配置

global: scrape_interval: 15s # 默认抓取间隔, 15秒向目标抓取一次数据。 external_labels: monitor: 'codelab-monitor' rule_files: - /etc/prometheus/rules.yml # 这里表示抓取对象的配置 scrape_configs: #这个配置是表示在这个配置内的时间序例,每一条都会自动添加上这个{job_name:"prometheus"}的标签 - job_name: 'prometheus' - job_name: 'prometheus' scrape_interval: 5s # 重写了全局抓取间隔时间,由15秒重写成5秒 static_configs: - targets: ['localhost:9090'] - targets: ['10.211.55.25:8080', '10.211.55.25:8081','10.211.55.25:8082'] labels: group: 'client-golang' - targets: ['10.211.55.25:9100'] labels: group: 'client-node-exporter' - targets: ['10.211.55.25:9091'] labels: group: 'pushgateway' alerting: alertmanagers: - static_configs: - targets: ["10.211.55.25:9093"]

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywppj.html