实录分享 | 使用Prometheus和Grafana监控Alluxio运行状况

图片

欢迎来到【微直播间】,2min纵览大咖观点

本次分享主要包括三个方面:

  • Prometheus&Grafana简介
  • 环境搭建
  • 手动调优

一、 Prometheus&Grafana简介
关于Prometheus:

Prometheus 是一个开源的完整监控解决方案,其对传统监控系统的测试和告警模型进行了彻底的颠覆,形成了基于中央化的规则计算、统一分析和告警新模型。

关于Grafana:

Grafana是一款采用Go语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。

二、环境搭建

为了确保Alluxio的最佳性能和可用性,建立一个强大的监控系统至关重要,基于监控系统我们能够迅速发现系统问题并优化资源利用。后面会逐步介绍如何配置Prometheus和Grafana监控Alluxio,详细的解决方案可见下方直播视频。

1. 前置条件:安装Alluxio,同时将Presto与Alluxio共同运行;

2. 配置Prometheus Server;

3. 启动Prometheus Server;

4. Prometheus UI;

5. 配置Grafana;

6. 启动Grafana;

7. 为Grafana配置数据源;

8. 配置 Alluxio 监控;

9. 关闭监控软件。

三、手动调优

√ 修改Dashboard

以上仅为大咖演讲概览,完整内容点击视频观看:

(点击链接即可观看)icon-default.png?t=N6B9https://app.ma.scrmtech.com/meetings/MeetingPc/Detail?pf_uid=27086_2062&sid=79796&source=2&pf_type=3&channel_id=26821&channel_name=Alluxio+%E5%BE%AE%E4%BF%A1%E6%9C%8D%E5%8A%A1%E5%8F%B7&tag_id=31713a81002af612&id=79796

附件:大咖分享文字版完整内容可见下文

本文将和大家分享Prometheus和Grafana 测试环境搭建、监控Alluxio数据到性能调优等方面,帮助大家快速上手用Prometheus和Grafana监控Alluxio。

一、Prometheus简介

Prometheus 是一个开源的完整监控解决方案,其对传统监控系统的测试和告警模型进行了彻底颠覆,形成了基于中央化的规则计算、统一分析和告警新模型。

【关键组件】:

Prometheus Server: 主服务器,负责收集和存储时间序列数据,包含存储引擎和计算引擎。Prometheus通过端口将数据拉取并存储,形成时间序列数据。

Prometheus优势

1. 易于管理:

Prometheus 核心部分只有一个单独的二进制文件,不存在任何的第三方依赖。可以在任何环境搭建我们的监控系统。

2. 强大的数据模型:

所有采集的监控数据均以指标(metric)的形式保存在内置的时间序列数据库当中。

3. 强大的查询语言 PromQL

Prometheus 内置了一个强大的数据查询语言PromQL,可以实现对监控数据的查询、聚合,也可应用于数据可视化应用(如 Grafana)以及告警当中。

Prometheus UI

下面是Prometheus监控的图,Prometheus监控着多种进程。

二、Grafana简介

Grafana是一款采用Go语言编写的开源应用,主要用于大规模指标数据的可视化展现,是网络架构和应用分析中最流行的时序数据展示工具,目前已经支持绝大部分常用的时序数据库。在Grafana中,我们可以使用Prometheus采集的数据,用PromQL筛选出所需的数据,在Web UI界面可绘制种类丰富的图像,如折线图、柱状图、热图等。

Grafana绘制CPU图、JVM图来监控CPU和JVM信息。

Grafana Web UI

Alluxio监控架构

Prometheus收集Alluxio Master、Alluxio Worker等进程的信息,存储到Prometheus数据库中;Grafana收集数据,配合PromQL语言,在Web UI界面展示。

三、环境搭建

前置条件

1. 电脑上应已安装好Alluxio。如果没有安装,可编译Alluxio源代码或在本地下载Alluxio程序。

2. 在将 Presto 与 Alluxio 一起运行前,请参照Deploying Presto部署Presto,并配置Presto和Alluxio共同运行。

配置Prometheus Server

下载Prometheus Server(如 prometheus-2.37.5.linux-amd64.tar.gz),解压Prometheus并编辑prometheus.yml文件配置Prometheus。

global:   #全局参数

启动Prometheus Server

nohup <PATH_TO_PROMETHEUS_SERVER>/prometheus --web.enable-admin-api --config.file=<PATH_TO_PROMETHEUS_SERVER>/prometheus.yml ><PATH_TO_PROMETHEUS_SERVER>/prometheus.log 2>&1 &

打开Prometheus的Web UI:http://<PROMETHEUS_HOSTNAME>:9090/,依次点击Status- Targets,若各个目标都是up状态,表示安装启动成功。

Prometheus UI

配置 Grafana

下载Grafana安装包,解压。

启动Grafana

启动Grafana并设置后台运行:

nohup <PATH_TO_GRAFANA>/bin/grafana-server --homepath

为Grafana配置数据源

打开Grafana Web UI:http://<GRAFANA_HOSTNAME>:3000,默认用户名和密码:admin。

为Grafana配置 Prometheus 数据源(Prometheus数据库所在位置)

依次点击 Configuration - Data sources - Add data source,选择Prometheus获取数据。

找到并点击 Prometheus

配置 Prometheus Server 的 HTTP URL(Prometheus 默认端口号是 9090):

点击下方的 Save & test:

出现绿色的提示框,表示与 Prometheus 正常连通:

通过 Dashboards | Grafana Labs 网站,可以找到大量可直接使用的 Dashboard 模板。

点击 Dashboards -Import,可以导入 Dashboard 模板。

导入模版并打开对应的 Dashboard 后,用户可将鼠标悬浮至左上角 i 查看指标具体描述:

配置 Alluxio 监控

在Prometheus加入如下配置,替换端口号:

scrape_configs:
# 添加 Alluxio 的配置
- job_name: "alluxio master"
metrics_path: '/metrics/prometheus/'
static_configs:
- targets: [ '<LEADING_MASTER_HOSTNAME>:<MASTER_WEB_PORT>' ] # 默认端口号是19999
- job_name: "alluxio worker"
metrics_path: '/metrics/prometheus/'
static_configs:
- targets: [ '<WORKER_HOSTNAME>:<WORKER_WEB_PORT>' ] # 默认端口号是30000
- job_name: "alluxio job master"
metrics_path: '/metrics/prometheus/'
static_configs:
- targets: [ '<LEADING_JOB_MASTER_HOSTNAME>:<JOB_MASTER_WEB_PORT>' ] # 默认端口号是20002
- job_name: "alluxio job worker"
metrics_path: '/metrics/prometheus/'
static_configs:
- targets: [ '<JOB_WORKER_HOSTNAME>:<JOB_WORKER_WEB_PORT>' ] # 默认端口号是30003
- job_name: "alluxio standalone fuse"
metrics_path: '/metrics/prometheus/'
static_configs:
- targets: [ '<FUSE_WEB_HOSTNAME>:<FUSE_WEB_PORT>' ] # 默认端口号是 49999

下载 Alluxio 监控模板,导入 Grafana 的 Dashboard。

常见错误:某些图表显示No data。可以点进对应的图表,切换这里的Data source。

关闭监控软件

关闭 Prometheus Server

pgrep -f prometheus | xargs kill

关闭 Pushgateway

pgrep -f pushgateway | xargs kill

关闭 Grafana

pgrep -f grafana | xargs kil

四、手动调优

修改Dashboard

√ 点击Add panel;

√ 可以增加一个新的panel,也可以增加一个新的row;

比如监控CPU:

√ 在左侧搜索cpu,找到对应指标;

√ 在右侧选择要监控的instance或job;

√ 点击下方 Use query。

√ 右侧可以调整图标的样式;

√ 可以为图表加标题和描述。

√ 调整坐标轴的名字及其单位;

√ 调整坐标轴的宽度等样式。

√ 调整图表的样式,线图、柱状图、点图;

√ 调整图标的内部样式。

依次点击 Inspect ->Data

√ 由于一个 Panel 中有多个监控指标,可以在左侧选择要导出的监控指标(或 Series joined bytime 选择所有指标);

√ 点击右侧 DownloadCSV 下载数据。

点击保存

导出模板

总结

通过引入 Prometheus 和 Grafana,我们为 Alluxio 构建了一个更加灵活、敏捷、易用的监控系统。

Alluxio的指标多而全面,而不同用户群体关心不同的指标,因此我们介绍了如何搭建适合用户所需应用场景的Dashboard,并且可以导出数据、导出Dashboard模板,方便迁移。

想要了解更多关于Alluxio的干货文章、热门活动、专家分享,可点击进入:【Alluxio智库】icon-default.png?t=N6B9https://link.zhihu.com/?target=https%3A//page.ma.scrmtech.com/landing-page/index%3Fpf_uid%3D27086_2062%26id%3D13197

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

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

相关文章

【腾讯云 Cloud Studio 实战训练营】使用 Cloud Studio 快速构建 Vue + Vite 完成律师 H5 页面

【腾讯云 Cloud Studio 实战训练营】使用 Cloud Studio 快速构建 Vue Vite 完成律师 H5 页面 前言一、基本介绍1.应用场景2.产品优势 二、准备工作1.注册 Cloud Studio2.进入 Vue 预置开发环境 三、使用 Cloud Studio 快速构建 Vue Vite 完成律师 H5 页面1.安装相关依赖包2.主…

华为OD机试 - 最大N个数与最小N个数的和 - 数据结构Set与TreeSet(Java 2023 B卷 100分)

目录 一、题目描述二、输入描述三、输出描述四、解题思路五、Java算法源码六、效果展示1、输入2、输出3、说明 华为OD机试 2023B卷题库疯狂收录中&#xff0c;刷题点这里 一、题目描述 给定一个数组&#xff0c;编写一个函数来计算它的最大N个数与最小N个数的和&#xff0c;需…

84. 柱状图中最大的矩形(单调栈)

题目链接&#xff1a;力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台 解题思路&#xff1a; 方法一&#xff1a;暴力解法 矩形的面积由宽和高决定&#xff0c;可以枚举所有的高度&#xff0c;也就是固定高度&#xff0c;然后从当前高度所在的位置向…

AD7151

AD7151采用ADI公司的电容-数字转换器&#xff08;CDC&#xff09;技术,这种技术汇集了与实际传感器接口过程中起着重要作用的众多特性于一身,如高输入灵敏度,较高的输入寄生接地电容和泄漏电流容限。 集成自适应式阈值算法可对因环境因素&#xff08;如湿度和温度&#xff09;…

Azure资源命名和标记决策指南

参考 azure创建虚拟机在虚拟机中选择编辑标签&#xff0c;并添加标记&#xff0c;点击应用 3.到主页中转到所有资源 4. 添加筛选器并应用 5.查看结果&#xff0c;筛选根据给服务器定义的标签筛选出结果。 参考链接: https://learn.microsoft.com/zh-cn/azure/cloud-adoption…

BBS项目day02、注册、登录(登录之随机验证码)、修改密码、退出登录、密码加密加盐

一、注册 1.注册之前端页面 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>注册页面</title><!--动态引入文件-->{% load static %}<script src"{% static js/jquery.min.js %…

hbase 报错 Master passed us a different hostname to use; was=

原因 wsl2的 /etc/hosts 配置的不兼容,我这里是ubuntu22 命令行输入hostname 看输出什么,比如输出 aaa 那么替换/etc/hosts 127.0.0.1 aaa

React源码解析18(5)------ 实现函数组件【修改beginWork和completeWork】

摘要 经过之前的几篇文章&#xff0c;我们实现了基本的jsx&#xff0c;在页面渲染的过程。但是如果是通过函数组件写出来的组件&#xff0c;还是不能渲染到页面上的。 所以这一篇&#xff0c;主要是对之前写得方法进行修改&#xff0c;从而能够显示函数组件&#xff0c;所以现…

你的汽车充电桩控制板可能比你的智能手机还要智能?

你是否想过&#xff0c;你的汽车充电桩控制板可能比你的智能手机还要智能?今天我们就来聊聊这个话题。 汽车充电桩控制板的智能性让充电过程更加高效、安全。首先&#xff0c;它具备自检功能&#xff0c;就像你的手机一样&#xff0c;不仅能检查出设备的工作状态&#xff0c;还…

【大数据】Flink 详解(二):核心篇 Ⅲ

Flink 详解&#xff08;二&#xff09;&#xff1a;核心篇 Ⅲ 29、Flink 通过什么实现可靠的容错机制&#xff1f; Flink 使用 轻量级分布式快照&#xff0c;设计检查点&#xff08;checkpoint&#xff09;实现可靠容错。 30、什么是 Checkpoin 检查点&#xff1f; Checkpoint …

概率论与数理统计复习总结2

概率论与数理统计复习总结&#xff0c;仅供笔者复习使用&#xff0c;参考教材&#xff1a; 《概率论与数理统计》/ 荣腾中主编. — 第 2 版. 高等教育出版社《2024高途考研数学——概率基础精讲》王喆 概率论与数理统计实际上是两个互补的分支&#xff1a;概率论 在 已知随机…

关于安卓打包生成aar,jar实现(一)

关于安卓打包生成aar&#xff0c;jar方式 背景 在开发的过程中&#xff0c;主项目引入三方功能的方式有很多&#xff0c;主要是以下几个方面&#xff1a; &#xff08;1&#xff09;直接引入源代码module&#xff08;优点&#xff1a;方便修改源码&#xff0c;易于维护&#…

IPv4分组

4.3.1 IPv4分组 IP协议定义数据传送的基本单元——IP分组及其确切的数据格式 1. IPv4分组的格式 IPv4分组由首部和数据部分&#xff08;TCP、UDP段&#xff09;组成&#xff0c;其中首部分为固定部分&#xff08;20字节&#xff09;和可选字段&#xff08;长度可变&#xff0…

第一百二十四天学习记录:C++提高:STL-deque容器(上)(黑马教学视频)

deque容器 deque容器基本概念 功能&#xff1a; 双端数组&#xff0c;可以对头端进行插入删除操作 deque与vector区别 vector对于头部的插入删除效率低&#xff0c;数据量越大&#xff0c;效率越低 deque相对而言&#xff0c;对头部的插入删除速度比vector快 vector访问元素的…

探索数据之美:初步学习 Python 柱状图绘制

文章目录 一 基础柱状图1.1 创建简单柱状图1.2 反转x和y轴1.3 数值标签在右侧1.4 演示结果 二 基础时间线柱状图2.1 创建时间线2.2 时间线主题设置取值表2.3 演示结果 三 GDP动态柱状图绘制3.1 需求分析3.2 数据文件内容3.3 列表排序方法3.4 参考代码3.5 运行结果 一 基础柱状图…

Lombok的使用及注解含义

文章目录 一、简介二、如何使用2.1、在IDEA中安装Lombok插件2.2、添加maven依赖 三、常用注解3.1、Getter / Setter3.2、ToString3.3、NoArgsConstructor / AllArgsConstructor3.4、EqualsAndHashCode3.5、Data3.6、Value3.7、Accessors3.7.1、Accessors(chain true)3.7.2、Ac…

Redis——String类型详解

概述 Redis中的字符串直接按照二进制的数据存储&#xff0c;不会有任何的编码转换&#xff0c;因此存放什么样&#xff0c;取出来的时候就什么样。而MySQL默认的字符集是拉丁文&#xff0c;如果插入中文就会失败 Redis中的字符串类型不仅可以存放文本数据&#xff0c;还可以存…

实现自己的“妙鸭相机“,十分钟学会roop插件

9.9买不了吃亏,9.9买不了上当&#xff0c;只要9.9就可以拥有属于自己的艺术写真 但是不知道你是否注意到用户协议中 有这一条 "我方在全世界&#xff08;包括元宇宙等虚拟空间&#xff09;范围内享有永久的、不可撤销的、可转让的、可授权的、免费的和非独家的许可&#x…

【日常积累】HTTP和HTTPS的区别

背景 在运维面试中&#xff0c;经常会遇到面试官提问http和https的区别&#xff0c;今天咱们先来简单了解一下。 超文本传输协议HTTP被用于在Web浏览器和网站服务器之间传递信息&#xff0c;HTTP协议以明文方式发送内容&#xff0c;不提供任何方式的数据加密&#xff0c;如果…

16.3.2 【Linux】程序的管理

程序之间是可以互相控制的。举例来说&#xff0c;你可以关闭、重新启动服务器软件&#xff0c;服务器软件本身是个程序&#xff0c; 你既然可以让她关闭或启动&#xff0c;当然就是可以控制该程序。 使用kill-l或者是man 7 signal可以查询到有多少个signal。主要的讯号代号与名…