prometheus linux下载_Prometheus服务监控进阶

一、背景介绍
        上回分享的《五分钟打造高逼格的监控系统》,我们成功搭建并初步介绍了Prometheus+NodeExporter+Grafana框架体系,本回开始给大家分享Prometheus服务监控2个核心的功能: 

1、监控结果查询语言(PromQL)基础; 2、Prometheus服务告警系统; 
对应下图右侧的:PromQL和Alertmanager模块。
PromQL语言是我们使用Prometheus的基础,Alertmanager告警系统是我们最常用的功能。

f916281c131d7d67b345d659264eaaa0.png

二、监控结果查询语言:PromQL 
        PromQL (Prometheus Query Language) 是 Prometheus 自己开发的数据查询 DSL 语言,语言表现力非常丰富,内置函数很多,在日常数据可视化以及告警配置中都会使用到它。 1、介绍2个常用PromQL的地方:

  • Prometheus可视化查询页:

访问:http://你的Prometheus服务IP:9090/graph

我们可以看到如下页面,在第一个红框输入PromQL查询语句,点击"Execute"运行即可查看结果。我们也可以从"- insert metric at cursor -"直接选择常用的查询语句:

119911e9810078cae4151b860287c116.png

  • Grafana数据查询面板

b8415a5877b5df5872b099ffcfb8de89.png

如进入上次部署的看板结果页面,点击右上角按钮再添加一项可视化面板,选择"Add Query"进入查询页面:

089e66d794278e7f10e9af7c2479afcf.png

2、介绍一些常用的PromQL语句:

# 1.查询http请求总数:

http_requests_total

# 2.条件查询:查询请求状态码为200的总数:

http_requests_total{code="200"}

# 3.区间查询:查询5分钟内的请求总量:

http_request_total{}[5m]

# 4. 系统函数使用:

# 查询系统所有http请求的总量

sum(http_request_total)

# 按照mode计算主机CPU的平均使用时间

avg(node_cpu) by (mode)

3、关于PromQL语言 
        PromQL语言具体语法与其他常用语言类似,这里不展开介绍,这里推荐2个学习的文档,可以一边学习一边实践: 
英文版本:

https://prometheus.io/docs/prometheus/latest/querying/basics/

当然也给大家奉上中文版本:

https://love2.io/@1046102779/doc/prometheus/prometheus/querying/basics.md

三、Prometheus服务告警系统 
        作为一个监控系统,最重要的功能,还是应该能及时发现系统问题,并及时通知给系统负责人,这就是 Alerting(告警)。Prometheus 的告警功能被分成两部分: 

  • 一个是告警规则的配置和检测(Prometheus),并将告警发送给 Alertmanager;

  • 另一个是Alertmanager,它负责管理这些告警,去除重复数据,分组,并路由到对应的接收方式,发出报警。 

常见的接收方式有:邮件、企业微信、钉钉、Slack、WebHook等。

d5b2ac0c056999cac7c670b7c6c09244.png

本文以邮件接收方式讲解告警系统的使用,其他告警接收方式配置可以依此举一反三,使用告警服务主要的步骤如下: 

1、下载并配置 Alertmanager:

  • 下载

# 下载

# 最新版下载地址:https://prometheus.io/download/,请找到alertmanager模块

wget https://github.com/prometheus/alertmanager/releases/download/v0.18.0/alertmanager-0.18.0.linux-amd64.tar.gz

# 解压

tar -xvzf alertmanager-0.18.0.linux-amd64.tar.gz

# 解压后可以看到alertmanager系统默认的配置文件:alertmanager.yml

  • 修改alertmanager.yml配置文件:

global:

# 发送邮箱相关配置

smtp_smarthost: 'smtp.qq.com:587'

smtp_from: 'xxx@qq.com'

smtp_auth_username: 'xxx@qq.com'

smtp_auth_password: 'your_email_password'

route:

# 重复告警间隔时间

repeat_interval: 10s

# 处理告警的名字,见下面

receiver: 'test-alert'

receivers:

- name: 'test-alert'

email_configs:

# 邮件接收方

- to: 'xxx(receiver)qq.com'

2、在 Prometheus 服务中配置告警规则并监听Alertmanager:

  • 在Prometheus目录下新建告警配置规则文件:alert.rules.yml,在文件中编写告警规则:

ALERT memory_high

IF prometheus_local_storage_memory_series >= 0

FOR 15s

ANNOTATIONS {

summary = "Prometheus using more memory than it should {{ $labels.instance }}",

description = "{{ $labels.instance }} has lots of memory man (current value: {{ $value }}s)",

}

  • 在Prometheus规则里添加该告警规则:

# 在prometheus.yml文件rule_files节点添加加载刚才编写的规则:

rule_files:

- 'prometheus.rules.yml'

- 'alert.rules.yml'

  • 在Prometheus规则里添加与Alertmanager系统关联(监控):

alerting:

alertmanagers:

- static_configs:

targets: ['localhost:9093']

3、启动(或重新加载)Alertmanager和Prometheus服务:

# 启动Alertmanager

./alertmanager --config.file=alertmanager.yml &

# 启动Prometheus

./prometheus --config.file=prometheus.yml &

4、当系统触发了告警配置的规则时,我们会收到邮件通知。

四、写在最后 
1、告警系统部署部分小编已经编写了自动化部署脚本,有需要的话可以关注【搜狗测试】公众号留言或添加下面官方微信号获取; 
2、后续我们会在【搜狗测试】公众号持续分享Prometheus另外2大核心功能:Exporter实战和Pushgateway组件,敬请关注。

86bfd6d3940e74d3275cce8a2c53452d.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值