Prometheus+Grafana+Alertmanager实现告警推送教程 —– 图文详解

前言

本文主要介绍的是Prometheus采集数据,通过Grafana加上PromQL语句实现数据可视化以及通过Alertmanage实现告警推送功能。温馨提示,本篇文章特长,2w多的文字加上几十张图片,建议收藏观看。

Prometheus 介绍

Prometheus 是一套开源的系统监控报警框架。它启发于 Google 的 borgmon 监控系统,由工作在 SoundCloud 的 google 前员工在 2012 年创建,作为社区开源项目进行开发,并于 2015 年正式发布。2016 年,Prometheus 正式加入 Cloud Native Computing Foundation,成为受欢迎度仅次于 Kubernetes 的项目。

作为新一代的监控框架,Prometheus 具有以下特点:

  • 强大的多维度数据模型: 时间序列数据通过 metric 名和键值对来区分。 所有的 metrics 都可以设置任意的多维标签。
  • 数据模型更随意,不需要刻意设置为以点分隔的字符串。 可以对数据模型进行聚合,切割和切片操作。
  • 支持双精度浮点类型,标签可以设为全unicode。 灵活而强大的查询语句(PromQL):在同一个查询语句,可以对多个 metrics进行乘法、加法、连接、取分数位等操作。
  • 易于管理: Prometheus server是一个单独的二进制文件,可直接在本地工作,不依赖于分布式存储。 高效:平均每个采样点仅占 3.5 bytes,且一个 Prometheus server 可以处理数百万的 metrics。 使用 pull模式采集时间序列数据,这样不仅有利于本机测试而且可以避免有问题的服务器推送坏的 metrics。 可以采用 push gateway 的方式把时间序列数据推送至 Prometheus server 端。 可以通过服务发现或者静态配置去获取监控的 targets。
  • 有多种可视化图形界面。 易于伸缩。 需要指出的是,由于数据采集可能会有丢失,所以 Prometheus 不适用对采集数据要 100%
  • 准确的情形。但如果用于记录时间序列数据,Prometheus 具有很大的查询优势,此外,Prometheus 适用于微服务的体系架构。

示例图:

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

如下所示,查询主机负载变化情况,可以使用关键字node_load1可以查询出Prometheus采集到的主机负载的样本数据,这些样本数据按照时间先后顺序展示,形成了主机负载随时间变化的趋势图表:

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

Grafana UI

上面的示例中我们通过prometheus+grafana通过PromQL进行了简单的服务器负载的监控可视化。我们也可以通过第三方提供可视化JSON文件来帮助我们快速实现服务器、Elasticsearch、MYSQL等等监控。这里我们在grafana提供的第三方dashboards的地址https://grafana.com/grafana/dashboards来下载对应的json文件然后导入到grafana实现服务器的监控。

监控服务器的示例图:

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解
grafana监控springboot应用实现效果图:
Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

3,prometheus 启动

在/opt/prometheus/prometheus-2.19.3.linux-amd64的目录下输入:

启动成功之后,在浏览器上输入 ip+9090可以查看相关信息。

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

Grafana安装

1,文件准备

将下载下来的grafana-7.1.1-1.x86_64.rpm的文件通过apm方式安装
输入:

进行安装
如果出现如下错误:

一个依赖包没有安装,需要先安装这个依赖包,然后再安装grafana

2,grafana 启动

root用户下启动

输入:

启动成功之后,在浏览器上输入 ip+3000可以查看相关信息

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

Pushgateway 安装

1,文件准备

将下载好的pushgateway文件解压

输入
tar -zxvf pushgateway-1.2.0.linux-amd64.tar.gz
然后移动到/opt/prometheus文件夹里面,没有该文件夹则创建

2,启动

root用户下启动

输入:

启动成功之后,在浏览器上输入 ip+9091可以查看相关信息

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

Prometheus使用教程

Prometheus界面地址: ip+9090。
这里我就使用图片加上注释来进行讲解。

1,基本使用

1>,Prometheus主界面说明

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

3>,查看运行信息

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

5>,查看配置信息

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

7>,查看服务发现

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

9>,查看是否触发告警

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

2>,创建仪表盘监控实现

1.添加数据源

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解
2.选择prometheus
Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

4.点击创建

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

6.点击搜索Test,点击就可以查看

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

3>,使用第三方仪表盘监控实现

注:需提前添加好数据源。

1.点击左上角的加号,点击import

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

监控示例:

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

注: smtp_from、smtp_auth_username、to的邮箱可以填写同一个,smtp_auth_password填写鉴权码,需要开启POS3。

如果不知道怎么开启POS3,可以查看我的这篇文章: https://www.cnblogs.com/xuwujing/p/10945698.html

Prometheus服务的Prometheus.yml配置如下:

注:targets如果有多个配置的话,在后面加上其他服务的节点即可。alertmanagers最好写服务器的ip,不然可能会出现告警数据无法发送的情况。

配置了Prometheus.yml之后,我们还需要配置告警的规则,也就是触发条件,达到条件之后就进行触发。我们新建一个first_rules.yml,用于检测服务器挂掉的时候进行发送消息

first_rules.yml告警配置:

注:job等于的服务名称填写Prometheus.yml配置对应的名称,比如这里设置的server对应Prometheus.yml配置的server。

依次启动prometheus、altermanagers、node_server服务,查看告警,然后停止node_export服务,等待一段时间在查看。

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

Prometheus+Grafana+Alertmanager实现告警推送教程 ----- 图文详解

来源:虚无境

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月1日
下一篇 2020年11月1日

相关推荐