基于 RocketMQ Prometheus Exporter 打造定制化 DevOps 平台

news/2024/5/18 21:27:22 标签: rocketmq, prometheus, devops

tar -xzf prometheus-2.7.0-rc.1.linux-amd64.tar.gzcd prometheus-2.7.0-rc.1.linux-amd64/./prometheus --config.file=prometheus.yml --web.listen-address=:5555

Prometheus 默认监听端口号为 9090,为了不与系统上的其它进程监听端口冲突,我们在启动参数里面重新设置了监听端口号为 5555。然后通过浏览器访问 http://<服务器 IP 地址>:5555,就可以验证 Prometheus 是否已成功安装,显示界面如下:

7.png

由于 RocketMQ-Exporter 进程已启动,这个时候可以通过 Prometheus 来抓取 RocketMQ-Exporter 的数据,这个时候只需要更改 Prometheus 启动的配置文件即可。

整体配置文件如下:

my global config

global:

scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute.

evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute.

scrape_timeout is set to the global default (10s).

Load rules once and periodically evaluate them according to the global ‘evaluation_interval’.

rule_files:

- “first_rules.yml”

- “second_rules.yml”

scrape_configs:

static_configs:

  • targets: [‘localhost:5555’]

  • job_name: ‘exporter’

static_configs:

  • targets: [‘localhost:5557’]

更改配置文件后,重启服务即可。重启后就可以在 Prometheus 界面查询 RocketMQ-Exporter 上报的指标,例如查询 rocketmq_broker_tps 指标,其结果如下:

8.png

5. 告警规则添加


在 Prometheus 可以展示 RocketMQ-Exporter 的指标后,就可以在 Prometheus 中配置 RocketMQ 的告警指标了。在 Prometheus 的配置文件中添加如下的告警配置项,*.rules 表示可以匹配多个后缀为 rules 的文件。

rule_files:

- “first_rules.yml”

- “second_rules.yml”

当前设置的告警配置文件为 warn.rules,其文件具体内容如下所示。其中的阈值只起一个示例的作用,具体的阈值还需用户根据实际使用情况来自行设定。

prometheus_rulesalerts_for_rocketmq_121">Sample prometheus rules/alerts for rocketmq.

Galera Alerts

groups:

  • name: GaleraAlerts

rules:

  • alert: RocketMQClusterProduceHigh

expr: sum(rocketmq_producer_tps) by (cluster) >= 10

for: 3m

labels:

severity: warning

annotations:

description: ‘{{$labels.cluster}} Sending tps too high.’

summary: cluster send tps too high

  • alert: RocketMQClusterProduceLow

expr: sum(rocketmq_producer_tps) by (cluster) < 1

for: 3m

labels:

severity: warning

annotations:

description: ‘{{$labels.cluster}} Sending tps too low.’

summary: cluster send tps too low

  • alert: RocketMQClusterConsumeHigh

expr: sum(rocketmq_consumer_tps) by (cluster) >= 10

for: 3m

labels:

severity: warning

annotations:

description: ‘{{$labels.cluster}} consuming tps too high.’

summary: cluster consume tps too high

  • alert: RocketMQClusterConsumeLow

expr: sum(rocketmq_consumer_tps) by (cluster) < 1

for: 3m

labels:

severity: warning

annotations:

description: ‘{{$labels.cluster}} consuming tps too low.’

summary: cluster consume tps too low

  • alert: ConsumerFallingBehind

expr: (sum(rocketmq_producer_offset) by (topic) - on(topic) group_right sum(rocketmq_consumer_offset) by (group,topic)) - ignoring(group) group_left sum (avg_over_time(rocketmq_producer_tps[5m])) by (topic)560 > 0

for: 3m

labels:

severity: warning

annotations:

description: 'consumer {{KaTeX parse error: Expected 'EOF', got '}' at position 13: labels.group}̲} on {{labels.topic}} lag behind

and is falling behind (behind value {{$value}}).’

summary: consumer lag behind

  • alert: GroupGetLatencyByStoretime

expr: rocketmq_group_get_latency_by_storetime > 1000

for: 3m

labels:

severity: warning

annotations:

description: 'consumer {{KaTeX parse error: Expected 'EOF', got '}' at position 13: labels.group}̲} on {{labels.broker}}, {{$labels.topic}} consume time lag behind message store time

and (behind value is {{$value}}).’

summary: message consumes time lag behind message store time too much

最终,可以在 Prometheus 的看一下告警展示效果,红色表示当前处于告警状态的项,绿色表示正常状态。

9.png

6. Grafana dashboard for RocketMQ


Prometheus 自身的指标展示平台没有当前流行的展示平台 Grafana 好, 为了更好的展示 RocketMQ 的指标,可以使用 Grafana 来展示 Prometheus 获取的指标。

首先到官网去下载:https://grafana.com/grafana/download,这里仍以二进制文件安装为例进行介绍。

wget https://dl.grafana.com/oss/release/grafana-6.2.5.linux-amd64.tar.gz

tar -zxvf grafana-6.2.5.linux-amd64.tar.gz

cd grafana-5.4.3/

同样为了不与其它进程的使用端口冲突,可以修改 conf 目录下的 defaults.ini 文件的监听端口,当前将 grafana 的监听端口改为 55555,然后使用如下的命令启动即可:

./bin/grafana-server web

然后通过浏览器访问 http://<服务器 IP 地址>:55555,就可以验证 grafana 是否已成功安装。系统默认用户名和密码为 admin/admin,第一次登陆系统会要求修改密码,修改密码后登陆,界面显示如下:

10.png

点击 Add data source 按钮,会要求选择数据源。

11.png

选择数据源为 Prometheus,设置数据源的地址为前面步骤启动的 Prometheus 的地址。

12.png

回到主界面会要求创建新的 Dashboard。

13.png

点击创建 dashboard,创建 dashboard 可以自己手动创建,也可以以配置文件导入的方式创建,当前已将 RocketMQ 的 dashboard 配置文件上传到 Grafana 的官网,这里以配置文件导入的方式进行创建。

14.png

小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长,但自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年最新Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
img
img
img

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
img

最后

在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例

MyBatis答案解析
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

大家看完有什么不懂的可以在下方留言讨论也可以关注。

觉得文章对你有帮助的话记得关注我点个赞支持一下!

如果你觉得这些内容对你有帮助,可以添加下面V无偿领取!(备注Java)
[外链图片转存中…(img-bSVFI3Pl-1710415641744)]

最后

在面试前我整理归纳了一些面试学习资料,文中结合我的朋友同学面试美团滴滴这类大厂的资料及案例
[外链图片转存中…(img-d2zGEdNq-1710415641745)]

[外链图片转存中…(img-hJYZrF0n-1710415641745)]
由于篇幅限制,文档的详解资料太全面,细节内容太多,所以只把部分知识点截图出来粗略的介绍,每个小节点里面都有更细化的内容!

大家看完有什么不懂的可以在下方留言讨论也可以关注。

觉得文章对你有帮助的话记得关注我点个赞支持一下!

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录


http://www.niftyadmin.cn/n/5429143.html

相关文章

upload-labs 0.1 靶机详解

下载地址https://github.com/c0ny1/upload-labs/releases Pass-01 他让我们上传一张图片&#xff0c;我们先尝试上传一个php文件 发现他只允许上传图片格式的文件&#xff0c;我们来看看源码 我们可以看到它使用js来限制我们可以上传的内容 但是我们的浏览器是可以关闭js功能的…

机器学习-0X-神经网络

总结 本系列是机器学习课程的系列课程&#xff0c;主要介绍机器学习中神经网络算法。 本门课程的目标 完成一个特定行业的算法应用全过程&#xff1a; 懂业务会选择合适的算法数据处理算法训练算法调优算法融合 算法评估持续调优工程化接口实现 参考 机器学习定义 关于机…

css入门基础(一)伪类选择器之鼠标悬停

注释很详细&#xff0c;直接上代码 新增内容&#xff1a; 1.伪类范例 2.背景图片样式 源码&#xff1a; index.html <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content&qu…

wifi的5G和3GPP的5G

wifi 5G 跑的是802.11的协议。 wifi的5G指的就是频率&#xff0c;例如wifi2.4G&#xff0c;其频段处于2.400GHz~2.4835GHz之间&#xff0c;wifi5G的频率范围为5.15GHz到5.875GHz&#xff0c;其中包括多个频道。 这里有个误区&#xff0c;并不是运行在5GHz频段的WI-FI就是5G …

mac输入su命令报错如何重置密码

diannao1xiejiandeMacBook-Air ~ % su Password: su: Sorry输入 sudo passwd 命令重置密码即可。

记一些有关Element Plus的样式修改

先记一个放着&#xff0c;后续慢慢补充。。。 一个 Vue 3 UI 框架 | Element Plus Radio 单选框 1、去除radio的圆圈 .box-radio {/deep/ .el-radio__input {display: none;} }

最新的yolov9,目标检测使用教程

1.克隆仓库&#xff0c;仓库地址&#xff1a; https://github.com/WongKinYiu/yolov9/tree/main 百度盘地址&#xff1a;https://pan.baidu.com/s/15v7XJIMDFG3XHJXfFs6ZDA 密码&#xff1a;1234 除了这两个模型&#xff0c;另外三个模型有问题...&#xff0c;下载ce模型即可 …

【Qt】常用控件或属性(1)

需要云服务器等云产品来学习Linux可以移步/-->腾讯云<--/官网&#xff0c;轻量型云服务器低至112元/年&#xff0c;新用户首次下单享超低折扣。 目录 一、QWidget属性一览 二、控件button、属性enabled(可用状态) 三、属性geometry(修改位置和尺寸) 1、QRect类型的结…