课时4:监控数据分析 | 学习笔记

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 快速学习课时4:监控数据分析,介绍了课时4:监控数据分析系统机制, 以及在实际应用过程中如何使用。

开发者学堂课程【DevOps 日志分析实战课时4:监控数据分析】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/302/detail/3521


课时4:监控数据分析


内容介绍:

一、监控的层次

二、监控数据分析大图

三、查询语法

四、举例


一、 监控的层次

平常做监控的时候会分成四个层次,最下面的是基础设施和网络设备,在这之上就是网络操作系统,操作系统之上会有数据库和中间件,应用和业务会构建在这些设施上面

image.png

现在云的时代,基础设施和网络基本上不用考虑,本节讲的主要是上面三个层面用这三个场景来看一下用在 SLS 监控上做的一些最佳实践


二、 监控数据分析大图

image.png

SLS 可以充分利用开源生态的,是支持 Prometheus Expoter 或者telegraf plugin,他们支持的对象 SLS 也是同样支持的。

所以我们可以监控操作系统 Linux、Windows 或者 ProgreSQL 以及各种各样的中间件,包括像 Spring BOOT 的应用,也可以用它监控起来。

提供的采集途径主要有三种,一种是通过 Prometheus 来采集然后通过 remote write 的协议来写入,或者通过 telegraf 的协议来写入,或者 logtail 本身也提供了一些监控的插件让大家能够做一些快捷的监控,比如说主机监控就是由 logtail 来实现的。采集器最终会把这个数据携带存储,也就是 SLS 存储MetricStore 上面来,因为 SLS 本身有自己的 Dashboard,所以这个 Dashboard 也可以配置查询来做一些可视化,因为也支持Prometheus的协议,所以说 MetricStore 又可以去跟 Grafana 做对接,通过 Prometheus的数据源对接到 Grafana 里去做可视化。整体来说查询是以 MetricStore 为核心,MetricStore 是支持 PromQL 以及完整的 SQL 的。

可视化的能力由 SLS Dashboard  Grafana 来做的。


三、 查询语法

image.png

因为支持将 SQL  Prometheus 来进行结合,最简单的写法:

SELECT

promql_query_range('up','1m')

FROM metrics;

query_range 对应 Prometheus 里的 query_range API,up 是PromQL 的一个查询语句,1m 表示数据间隔

在这个查询外面,还可以嵌套 SQL,利用 SQL 的任意语法来做一些分析:

SELECT

sum(value)

FROM

(SELECT promql_query_range('up,'1m') FROM metrics);

SELECT

sum(value)

FROM

(SELECT promql_query_range('up,'1m') FROM metrics);

可以参考一下实际例子

image.png

 Metrics 这里可以去选择指标,然后点击预览这个数据就查询出来了,这是一个最简单的查询。直接的查询他没有做任何的聚合,也可以对他做一些聚合。这就是最简单的用法,后续会用一些具体的场景演示更复杂的用法。

image.png

在这之前,可以先探索一下 PromQL

数据类型:Guage,Counter,Summary,Histogram

Metric Selector

瞬时向量和区间向量

聚合函数

PromQL 里面有一个 metric、 label selector,组合起来会选择一组时间线,这组时间线可以对它做一个时间维度上的计算。当要做时间维度上的计算时,要先给它定一个区间,附加一个区间向量计算,最外面还可以套一个聚合函数,聚合函数对中间部分选择的指标做 group by。


四、 举例

1. 主机监控:数据流

image.png

主机监控就是通过 Logtail 做查询,Logtail 会去它的操作系统把对应的指标获取到,定期的写到 MetricStore,再写到 SLS Dashboard 去做可视化。

这个例子里,SLS 已经内置快捷进入方式,点击 logtail 配置,选择主机监控,然后选择机器组,选择已经建好的,如图就是一个配置

image.png

点击下一步,这样数据就已经接入了

image.png

再回到 logtail 配置,下方会多出一个 metric_system,这就是刚刚配置的选项,接下来稍等一会,就可以看到数据的产生。

image.png

或者也可以用 promql_queey 来查看原始数据,跳转到查询页面,输入 *|select promql_query('cpu_sys_ut11[5m]') from metrics,然后查询,通过查看时间,可以观察是否接入成功。

image.png

接入成功后,内置好了一个 dashboard,在仪表盘主机监控可以看到,已经配置好了所有的可视化,对 promql_query 不太熟悉,可以在预览查询语句参考如何写。

image.png

监控数据分析大图还可以看出,采集器是 prometheus 和 telegraf的接入,这两个会分别再用另外的产品去演示,一个是 MySQL 的监控,另一个是用 Spring BOOT 的监控。

2. 数据库监控:数据流

MySQL 的监控会用 telegraf 做演示。一个插件连入 MySQL,去读取它的性能指标,然后 telegraf 通过 influxdb 的协议把它写给 logtail,logtail 再写入 MetricStore,再通过  dashboard 就可以做一些可视化。数据库的监控大部分比较复杂,配置在文稿里都已经提供了。

image.png

首先在 MetricStore 里找到 telegref,新建一个配置,叫做自定义数据插件,选择已有的机器组,输入配置名称,输入以下插件配置:

{

"inputs":[

{

"detail":{

"Fornat":"influx",

"Address":":8476"

}

"type": "service_http_server"

}

],

"global":{

"AlwaysOnline": true,

"DelayStopSec":500

}

}

这样就已经配置完成了,返回到 telegraf 可以看到 telegraf 下面会多出一个刚刚输入的配置名称,这只是 logtail 其中的一个端口,我们还需要用 telegraf 把数据采集回来写给 logtail,操作步骤如下:首先,要修改 telegeaf 的配置,修改 telegrafconf etctelegraf/telegrafconf,建议备份原文件。然后需要创建 MySQL的采集配置,在 telegrafD 下面新建一个 MySQL.conf,最重要的一点是要注意修改 servers 字段为对应的 MySQL 连接串重启 telegraf 即可:

1 sudo service telegraf relead

2 #或者

3 sudo Systenctl reload telegraf

稍等1-2分钟刷新页面,选择 Metrics,即可看到数据,MySQL 监控暂时未提供预置 dashboard 可自行配置,后续 SLS 将对常用数据库和中间件提供默认 dashboard 模板。

image.png

数据监控也可以类似主机监控一样,用 dashboard 做可视化,后续会提供一些模板可供使用。

3. 应用监控

应用监控中我们以 SpringBoot 应用为例,使用SpringBootActuator 暴露数据,通过 Prometheus 采集,并使用 remotewrite 协议写入 MetricStore,再使用 Grafana 对接做可视化整个数据流如下:

image.png

(1) 首先我们需要引入两个依赖:

Actuator 是 Springboot  提供的一个标准的监控的主件,会暴露出一些应用内部状态信息。

Prometheus 使用的是如下图的格式:

image.png

引入的第二个依赖 microneter-registry-prometheus 可以将prometheus 转换成如上图的格式。

<cdependency>

<groupId>orgspringfranework.boct</groupId>

<cartifactId>spring-boot-starter-actuator</artifactid>

</dependency>

<dependency>

<groupId>io.nicroneter</groupid>

cartifactId>nicroneter-registry-prometheus</artifactid> eversion>1.1.3</version>

</dependency>

(2) 接着修改 spring boot 配置,默认

resources/applicationyml,没有的话请创建:

server:

port:80803

spring:

application:

nane:spring-demo修改成您的应用名

managenent:

endpoints:

web:

exposure

include:'pronetheus"#&/actuator/prometheus

netrics:

tags:

application:$(spring-application.name)基需的效据中添加application label

(3) 启动应用访问 http://localhost:8080/actuator/prometheus

应该看到一系列数据。

(4) 现在数据已经暴露出来了,我们需要配置 Prometheus 进行采

集,修改 Prometheus 的配置文件

image.png

(5) 其中 scrape_configs 是用来采集我们的应用数据的

remotewrite 部分用于将数据写入 Metric Store, 注意替换 basic_auth 中的 username 和 password 为您对应的 accessKeyld 和 accessKeySecret 配置完成后重启 Prometheus,可访问http://${prometheus 域名 }/graph 选择 metric 查看是否采集成功。

image.png

接着我们要配置 grafana 进行可视化,首先要把我们的 Metric Store 接入到 Grafana 的数据源中

image.png

(6) 单击 Save & Test, 数据源接入成功后,就可以配置 dashbaord

了,我们已经在 qrafana.com 上传了模板:SLS JVM 监控大盘(via MicroMeter) dashboard for Grafana|Grafana Labs 直接在 grafana 中导入即可:做侧边栏选择 +Import 粘贴 url:https://grafana.com/grafana/dashboards/12856 选择上一步创建的数据源点击 Load 这样就配置完成了。

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
相关文章
|
8月前
|
数据采集 存储 监控
淘宝详情数据采集(商品上货,数据分析,属性详情,价格监控),海量数据值得get
淘宝详情数据采集涉及多个环节,包括商品上货、数据分析、属性详情以及价格监控等。在采集这些数据时,尤其是面对海量数据时,需要采取有效的方法和技术来确保数据的准确性和完整性。以下是一些关于淘宝详情数据采集的建议:
|
29天前
|
运维 监控 安全
公司监控软件:SAS 数据分析引擎驱动网络异常精准检测
在数字化商业环境中,企业网络系统面临复杂威胁。SAS 数据分析引擎凭借高效处理能力,成为网络异常检测的关键技术。通过统计分析、时间序列分析等方法,SAS 帮助企业及时发现并处理异常流量,确保网络安全和业务连续性。
51 11
|
8月前
|
监控 安全 数据可视化
R语言在员工上网行为监控中的数据分析
本文讲述了如何使用R语言分析员工上网行为以提升企业网络安全。通过收集网络流量和访问记录数据,利用R进行读取、分析和可视化,例如查看访问时长分布和热门网站。此外,文中还介绍了一个自动将监控数据提交到网站的R脚本,通过定时任务实现数据的持续更新和管理,及时发现并应对安全风险,增强网络安全性。
316 3
|
8月前
|
数据采集 监控 网络协议
利用Perl编写局域网监控软件的数据分析与报告生成模块
使用Perl编写局域网监控软件,包括数据采集(如获取主机列表)、数据分析(统计主机在线时长)和报告生成。代码示例展示了如何利用Net::ARP模块收集信息、定时统计在线时间并生成报告。此外,通过LWP::UserAgent模块,可将监控数据自动提交至网站,便于管理员远程监控网络状态,保障网络安全。
112 0
|
8月前
|
监控 数据可视化 算法
上网行为监控管理:利用R编写的数据分析和可视化代码示例
本文介绍了使用R语言进行上网行为监控管理的方法。通过加载和分析日志数据,如示例代码所示,可以了解用户行为。使用ggplot2绘制时间趋势图以洞察用户访问模式,借助caret进行聚类分析以识别异常行为。此外,利用httr包可自动将数据提交至网站,提升管理效率。R语言为网络安全和行为监控提供了强大工具。
171 0
|
机器学习/深度学习 自然语言处理 算法
Python预测 数据分析与算法 学习笔记(特征工程、时间序列)2
Python预测 数据分析与算法 学习笔记(特征工程、时间序列)
188 0
|
机器学习/深度学习 算法 数据可视化
Python预测 数据分析与算法 学习笔记(特征工程、时间序列)1
Python预测 数据分析与算法 学习笔记(特征工程、时间序列)
125 0
|
存储 数据采集 机器学习/深度学习
物联网数据分析 | 学习笔记
快速学习物联网数据分析
物联网数据分析 | 学习笔记
|
数据挖掘
java202302java学习笔记第十五天-打乱数据分析
java202302java学习笔记第十五天-打乱数据分析
91 0
java202302java学习笔记第十五天-打乱数据分析
|
机器学习/深度学习 数据采集 Ubuntu
Python数据分析与挖掘实战学习笔记
Python本身的数据分析功能不强,需要安装一些第三方扩展库来增强它的能力。
210 0
Python数据分析与挖掘实战学习笔记