starrocks基于prometheus实现监控告警

news/2024/5/20 12:31:03/文章来源:https://blog.csdn.net/zhang123456456/article/details/130385997

监控报警

本文介绍如何为 StarRocks 设置监控报警。

StarRocks 提供两种监控报警的方案。企业版用户可以使用内置的 StarRocksManager,其自带的 Agent 从各个 Host 采集监控信息,上报至 Center Service,然后做可视化展示。StarRocksManager 提供邮件和 Webhook 的方式发送报警通知。你也可以使用开源 Prometheus+Grafana 方案,StarRocks 提供了兼容 Prometheus 的信息采集接口,可以通过直接连接 BE 或 FE 的 HTTP 端口来获取集群的监控信息。

Prometheus 是一个拥有多维度数据模型的、灵活的查询语句的时序数据库。它可以通过 Pull 或 Push 采集被监控系统的监控项,存入自身的时序数据库中。并且通过丰富的多维数据查询语言,满足用户的不同需求。

Grafana 是一个开源的 Metric 分析及可视化系统。支持多种数据源,详情可参考官网文档。通过对应的查询语句,从数据源中获取展现数据。通过灵活可配置的 Dashboard,快速的将这些数据以图表的形式展示给用户。

监控架构

Prometheus 通过 Pull 方式访问 FE 或 BE 的 Metric 接口,然后将监控数据存入时序数据库。用户可以通过 Grafana 配置 Prometheus 为数据源,自定义绘制 Dashboard。Alertmanage 匹配采集到的数据对比starrocks_rules阈值触发告警推送。 

部署 Prometheus + Grafana + Alertmanage

 从 Prometheus 官网下载最新版本的 Prometheus。(安装部署略)

从 Grafana 官网 下载最新版本的 Grafana(安装部署略)

从  下载最新版本的 alertmanager(安装部署略)

配置 Prometheus

在 prometheus.yml 中添加 StarRocks 监控相关的配置

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).
# Alertmanager configuration
alerting:alertmanagers:- static_configs:- targets: ['localhost:9093']# - alertmanager:9093
rule_files:- "./rules/starrocks_rules.yml"      
scrape_configs:# The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.- job_name: 'StarRocks_Cluster01' # 每一个集群称之为一个job,可以自定义名字作为StarRocks集群名metrics_path: '/metrics'    # 指定获取监控项目的Restful Apistatic_configs:- targets: ['fe_host1:http_port','fe_host3:http_port','fe_host3:http_port']labels:group: fe # 这里配置了 fe 的 group,该 group 中包含了 3 个 Frontends- targets: ['be_host1:webserver_port', 'be_host2:webserver_port', 'be_host3:webserver_port']labels:group: be # 这里配置了 be 的 group,该 group 中包含了 3 个 Backends- job_name: 'StarRocks_Cluster02' # 可以在Prometheus中监控多个StarRocks集群metrics_path: '/metrics'static_configs:- targets: ['fe_host1:http_port','fe_host3:http_port','fe_host3:http_port']labels:group: fe- targets: ['be_host1:webserver_port', 'be_host2:webserver_port', 'be_host3:webserver_port']labels:group: be

配置 StarRocks Dashboard 模版

说明:StarRocks 1.19.0 和 2.4.0 版本的监控 Metric Name 有调整,需要下载下面对应版本 DashBoard 模版。

  • StarRocks-1.19.0 之前版本 Dashboard 模版
  • StarRocks-1.19.0 开始到 StarRocks-2.4.0 之前版本 DashBoard 模版
  • StarRocks-2.4.0 及其之后版本 DashBoard 模版

确认数据源可用后,点击左边导航栏的 + 号以添加 Dashboard。这里我们使用上文下载的 StarRocks 的 Dashboard 模板。依次点击左边的导航栏 + 号,Import,和 Upload Json File,导入 JSON 文件。

导入后,可以命名 Dashboard,默认是 StarRocks Overview。同时,需要选择数据源,这里选择之前创建的 starrocks_monitor。

点击 Import 完成导入。至此,您可以看到 StarRocks 的 Dashboard 展示。

理解 Dashboard

本小节简要介绍 StarRocks Dashboard。

注意:Dashboard 的内容可能会随版本升级,不断更新,请参考上文 Dashboard 模版。

顶栏

页面左上角为 Dashboard 名称,右上角显示当前监控时间范围。您可以下拉选择不同的时间范围,还可以指定定时刷新页面间隔。

cluster_name: 即 Prometheus 配置文件中的各个 job_name,代表一个 StarRocks 集群。如果选择不同的 Cluster,下方的图表将展示对应集群的监控信息。

fe_master: 对应集群的 Leader FE 节点。

fe_instance: 对应集群的所有 FE 节点。选择不同的 FE,下方的图表将展示对应 FE 的监控信息。

be_instance: 对应集群的所有 BE 节点。选择不同的 BE,下方的图表将展示对应 BE 的监控信息。

interval: 部分图表展示了速率相关的监控项,这里可选择以特定间隔进行采样计算速率。

当前 Dashboard 有如下 Row(持续更新中):

Overview: 所有 StarRocks 集群的汇总展示。

Cluster Overview: 选定集群的汇总展示。

Query Statistic: 选定集群的查询相关监控。

Jobs: 导入任务相关监控。

Transaction: 事务相关监控。

FE JVM: 选定 FE 的 JVM 监控。

BE: 选定集群 BE 的汇总展示。

BE Task: 选定集群 BE 的任务信息展示。

部分图标展示

详细监控指标含义见:监控报警 @ Monitor_and_Alert @ StarRocks Docs

配置 StarRocks 的 Alertmanager

#alertmanager的告警邮件配置 cat /opt/alertmanager/alertmanager.yml
global:resolve_timeout: 5msmtp_smarthost: 'mail-xxx.xxx.com.cn:25'smtp_from: 'prometheusxxx@dflxxx.com.cn'smtp_auth_username: 'prometheusxx@xx.com.cn'smtp_auth_password: 'xxxx'smtp_require_tls: false
route:group_by: ['alertname','status']group_wait: 30sgroup_interval: 30srepeat_interval: 30mreceiver: 'dba_group'routes:- receiver: 'dba_group'continue: truematch_re:alertname: ".*"
receivers:- name: 'dba_group'email_configs:- send_resolved: trueto: 'chongzh@szlanyou.com'
# starrocks 告警规则配置
# design by chongzh  2023/4/26
cat /opt/prometheus/rules/starrocks_rules.yml                                                                    
groups:
- name: for_commonrules:- alert: StarRocks-fe-downexpr: up{group="fe"} != 1for: 0mlabels:level: 3annotations:cur_value: '{{ $value | printf "%.2f" }}'description: 'StarRocks-fe,have some problem.'- alert: StarRocks-de-downexpr: up{group="be"} != 1for: 0mlabels:level: 3annotations:cur_value: '{{ $value | printf "%.2f" }}'description: 'StarRocks-de,have some problem.'- alert: StarRocks-FE-JVM-Heap-Statexpr: sum(jvm_heap_size_bytes{group="fe",type="used"} * 100) by (instance,job)/sum(jvm_heap_size_bytes{group="fe", type="max"}) by (instance,job) >= 90for: 0mlabels:level: 3annotations:cur_value: '{{ $value | printf "%.2f" }}'description: 'StarRocks Cluster FE JVM Heap Stat 使用率超90% '- alert: StarRocks-Cluster-Disk-Stateexpr: starrocks_be_disks_state != 1for: 0mlabels:level: 3annotations:cur_value: '{{ $value | printf "%.2f" }}'description: 'StarRocks-BE-Disk-State,have some problem.'- alert: StarRocks-Cluster-BDBJE Writeexpr: starrocks_fe_editlog_write_latency_ms{quantile="0.99"} > 5000for: 1mlabels:level: 2annotations:cur_value: '{{ $value | printf "%.2f" }}'description: 'starrocks_fe_editlog_write too slow (ms) '            - alert: StarRocks-be_max_disk_io_util_percentexpr: starrocks_be_max_disk_io_util_percent > 80for: 1mlabels:level: 2annotations:cur_value: '{{ $value | printf "%.2f" }}'description: 'starrocks_be_max_disk_io_util_percent 超80% '        - alert: starrocks_fe_query_latency_msexpr: sum(starrocks_fe_query_latency_ms{quantile="0.99"}) by (instance) > 5000for: 1mlabels:level: 2annotations:cur_value: '{{ $value | printf "%.2f" }}'description: 'starrocks_fe_query_latency_ms 超5秒 '- alert: StarRocks-Cluster-BE-CPU-Idleexpr: (sum(rate(starrocks_be_cpu{mode="idle"}[5m])) by (job))/(sum(rate(starrocks_be_cpu[5m])) by (job))*100 < 20for: 0mlabels:level: 3annotations:cur_value: '{{ $value | printf "%.2f" }}'description: 'StarRocks Cluster BE CPU Idle 小于 20% '

告警测试

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_670530.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虹科新品 | 用于医疗应用的压力和气体流量传感器

ES Systems在创新MEMS方面拥有丰富的经验&#xff0c;设计了高质量和高性能的气体流量和压力传感器&#xff0c;由于其技术规格&#xff0c;出色的可靠性和有竞争力的价格&#xff0c;这些传感器在竞争产品中具有独特的品质。 Part.01 应用背景 众所周知&#xff0c;在医疗领域…

在函数中使用变量

shell脚本编程系列 向函数传递参数 函数可以使用标准的位置变量来表示在命令行中传给函数的任何参数。其中函数名保存在$0变量中&#xff0c;函数参数则依次保存在$1、$2等变量当中&#xff0c;也可以使用特殊变量$#来确定参数的个数 在脚本中调用函数时&#xff0c;必须将参…

【SWAT水文模型】SWAT水文模型建立及应用第四期: 气象数据的准备(待更新)

SWAT水文模型建立及应用&#xff1a; 气象数据的准备 1 简介2 气象数据的准备&#xff08;传统气象站&#xff09;2.1 天气发生器各参数的计算2.2 降水及气温输入数据的准备 3 气象数据的准备&#xff08;中国区域高精度同化气象站CMADS&#xff09;参考 本博客主要介绍气象数据…

本周一至周三总结

周一 学习如何进行竞品分析 对软件杯项目进行了竞品分析&#xff0c;测试了十余个强相关网站&#xff0c;为团队写好了竞品分析报告 分别对主要目标&#xff0c;竞品优劣点&#xff0c;竞品选择原因&#xff0c;产品创新点等进行了分析和阐述 周二 下午晚上刷了五道题 题解…

Android 项目必备(四十五)-->2023 年如何构建 Android 应用程序

Android 是什么 Android 是一种基于 Linux 内核并由 Google 开发的开源操作系统。它用于各种设备包括智能手机、平板电脑、电视和智能手表。 目前&#xff0c;Android 是世界上移动设备使用最多的操作系统; 根据 statcounter 的一份最近 12 个月的样本报告;Android 的市场份额…

Xcode14 设置Display Name不生效问题

一、前言 早在Xcode13苹果就对Info.plist做了一次大改革&#xff0c;新建的OC项目默认Info.plist文件是“空的”&#xff0c;Swift项目甚至干脆连Info.plist文件都没有了&#xff0c;苹果这样做是为了建立一个新的Info.plist管理方式&#xff0c;把Info.plist物理文件中的配置…

根据虚拟地址,如何求出页号和偏移量?

方法掌握 虚拟地址划分成虚拟页号和虚拟页偏移量。 物理地址同样可划分为物理页号和物理页偏移量 如何划分&#xff0c;关键点在于页面的大小。 假设给你一个十进制表示的地址20000&#xff0c;一个页面的大小为4KB&#xff0c;那么如何找出地址20000的具体位置呢&#xff1f…

合并两个有序链表

文章目录 1.题目描述2.解题思路方法1&#xff1a;方法2&#xff1a; 1.题目描述 题目链接&#xff1a;力扣21&#xff0c;合并两个有序链表 将两个升序链表合并为一个新的 升序 链表并返回。新链表是通过拼接给定的两个链表的所有节点组成的。 2.解题思路 方法1&#xff1a;…

脚本函数基础

shell脚本编程系列 函数是一个脚本代码块&#xff0c;可以为其命名并在脚本中的任何位置重用它。每当需要在脚本中使用该代码块时&#xff0c;直接写函数名即可。称作调用函数。 创建函数 方式1&#xff1a; function name {commands }name定义了该函数的唯一名称&#xff0…

1分钟学会Midjourney十种绘图风格关键词

Midjourney最新V5版的卡通模型中最流行的就是皮克斯&#xff0c;今天介绍十种绘图风格。我们统一用如下描述词来绘制&#xff0c;每次只是风格不一样&#xff0c;对比看看。 首先我们先画一个皮克斯风格(Pixar)&#xff0c;打开ai绘图软件&#xff0c;点击左上角的图像绘制&a…

camunda流程引擎send task节点用途

Camunda的Send Task用于向外部系统或服务发送消息。消息可以是同步或异步的&#xff0c;可以发送到队列、主题或其他类型的消息中间件。Send Task通常用于将消息发送到外部系统&#xff0c;而无需等待响应或结果。相反&#xff0c;它只是向外部系统发出信号&#xff0c;通知其执…

android不可不知调试技巧

目录 1、条件断点 2、评估表达式&#xff08;Evaluate Expression&#xff09; 3、日志断点 4、方法断点 5、异常断点 6、Field WatchPoint 1、条件断点 假设我们列表循环的某个元素时候才暂停&#xff0c;就用这种方式。具体方式在循环列表打断点&#xff0c;对着断点右…

焕新时刻,移动云品牌升级燃动十一城

4月25日&#xff0c;在2023移动云大会上&#xff0c;移动云品牌形象全方位焕新&#xff0c;启用新品牌LOGO和品牌标语&#xff0c;在政府领导、院士专家、行业大咖等3000多位参会嘉宾见证下&#xff0c;吹响品牌进阶新号角。 24日晚&#xff0c;移动云品牌焕新亮灯仪式率先在苏…

【计网】WebSocket协议

目录 一、背景 二、WebSocket握手过程 三、SpringBoot中使用WebSocket协议 1、服务器 2、客户端 一、背景 一般的web开发以请求响应为主即客户端发送一个请求&#xff0c;服务器返回一个响应&#xff0c;这就使得类似聊天等需求基于HTTP协议进行实现时比较消费资源&#xf…

CF - Playing in a Casino

题意&#xff1a;一个数的幸运值计算规则是用里面最大的数字-最小的数字所得值 给出一个范围&#xff0c;求这个范围里幸运值最大的是哪个数 解&#xff1a; 这道题相对来说就很简单了&#xff0c;注意数值限制范围在1道1e6&#xff0c;虽然这道题确实暴力就能做出来&#xf…

【数据分析之道-Pandas(二)】DataFrame

文章目录 专栏导读1、DataFrame简介2、DataFrame创建2.1字典创建DataFrame2.2列表创建DataFrame2.3ndarrays 创建DataFrame2.4CSV文件创建DataFrame 3、DataFrame基本操作3.1添加列3.2删除列 专栏导读 ✍ 作者简介&#xff1a;i阿极&#xff0c;CSDN Python领域新星创作者&…

13 JS04——运算符

目标&#xff1a; 1、运算符 2、算数运算符 3、递增和递减运算符 4、比较运算符 5、逻辑运算符 6、赋值运算符 7、运算符优先级 一、运算符 1、概念 运算符&#xff08;operator&#xff09;也被称作操作符&#xff0c;是用于实现赋值、比较和执行算数运算等功能的符号。 2…

C++线程的简单学习及了解

此篇文章只是线程的简单了解。 文章目录 前言一、线程的优缺点二、C线程库 1.thread类的简单介绍2.线程函数参数总结 前言 什么是线程&#xff1f; 在一个程序里的一个执行路线就叫做线程&#xff08;thread&#xff09;。更准确的定义是&#xff1a;线程是“一个进程内部的控…

【Linux】进程地址空间的初步理解

目录 程序地址空间空间布局图引入物理地址与虚拟地址的概念虚拟地址空间虚拟地址与物理地址是如何对应的&#xff1f;※父子进程独立性的理解&#xff08;重点&#xff09;fork两个返回值的原理地址空间为什么要存在&#xff1f;补充理解 程序地址空间空间布局图 &#xff08;这…

【JavaEE】SpringBoot的日志

目录 日志作用 SpringBoot日志框架 日志打印 日志级别 类型 作用 修改级别 日志永久化 配置日志文件目录 配置日志文件名 简化日志打印和永久化——lombok 日志作用 问题定位&#xff1a;可以帮助开发人员快速找到问题出现的位置系统监控&#xff1a;可以把系统的运…