SLS时序监控实战: Grafana使用入门

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
日志服务 SLS,月写入数据量 50GB 1个月
可观测监控 Prometheus 版,每月50GB免费额度
简介: Grafana是一个非常受欢迎的开源可视化工具, 经常和Prometheus InfluxDB, OpenTSDB等一起配合使用, 它有非常丰富的图表类型, 以及异常灵活的设置选项, 本文是一篇入门教程, 期望通过这篇教程能帮助大家入门Grafana, 并可以和SLS的时序存储结合使用

Grafana是一个非常受欢迎的开源可视化工具, 经常和Prometheus InfluxDB, OpenTSDB等一起配合使用, 它有非常丰富的图表类型, 以及异常灵活的设置选项, 本文是一篇入门教程, 期望通过这篇教程能帮助大家入门Grafana, 并可以和SLS的时序存储结合使用

安装

本文基于Grafana 7.0+, 7.0做了很多优化, 也提供了很多新功能, 推荐大家用7.0以上的版本

Grafana官网有详细的教程描述了在各个系统上的安装过程: Installation | Grafana Labs
这里推荐大家有条件装docker的话, 就用docker的安装方式, 如果机器系统比较旧, 不支持docker, 那么也可以用下载包的方式安装
如果大家暂时没有环境安装, 想先体验一下grafana, grafana官方也贴心的提供了一个服务: play.grafana.org
可以直接上去看grafana提供了什么功能, 大体是怎么配置图表的

准备工作

在开始体验grafana之前, 我们首先要有数据, 因此我们要先在SLS上创建时序存储, 并接入一些数据, 可以参考我们的官方文档:
管理MetricStore_时序存储_日志服务-阿里云
采集主机监控数据_数据接入_时序存储_日志服务-阿里云

有数据以后就需要在grafana中配置相应的数据源, 因为SLS的时序存储是兼容Prometheus的查询的, 因此选择的DataSource类型直接用Prometheus就好:

46F5B1C4-48C6-410F-9F2E-2888F9B4E149.png

细节可以参考文档: 时序数据对接Grafana_可视化_时序存储_日志服务-阿里云

Explore

Explore功能是Grafana提供的一个试验田, 它一般是用来临时执行一些查询, 或者测试查询, 我们在配置dashboard之前, 可以先在Explore中试一下, 能看到图了, 再去配置dashboard, 可以少走一些弯路

Explore页面提供了一个Query history的功能:
389EBEA9-39A7-4E51-ACEE-C34BA97562C8.png
可以查看和搜索查询的历史, 也可以编辑重新查询, 执行收藏等操作
4A7E314F-C4DE-4388-AFF3-B189F31B859C.png
多加利用这个功能可以节省不少时间

配置图表
当我们写好一个查询, 就可以用来配置dashboard了, 点击+ -> Dsahboard来创建, 创建后grafana提供的是一个空的dashboard:
AEE96109-753A-4C57-8A58-E15C1790557C.png

这里我们看到有Add new panelconvert to row两个按钮, 那么什么是panel和row呢? 我们先看个实际的例子:

8C5897A0-B377-417E-A831-99BF125A611A.png
这里Resources就是一个row, 他下面的一个个图就是panel, 这些panel都属于他, 因此可以折叠或展开, row是用来方便管理panel提供的

我们先点击Add new Panel , 为了能看到图, 我们首先要输入一个查询, 可以就输入up, 看下结果:
1B5927AC-B296-43EA-8ACE-FF10B81E69D7.png
如果不做任何定制, 这个图就配好了, 是不是很简单? 实际上我们常常会有很多定制的需求, 比如图表标题至少要改吧, 默认线图也很可能不能满足需求, 这些选项都在右边设置:

42302A69-50C7-47EA-877C-FFA6BB5F4482.png
最常用的选项就是panel title, 是设置标题的, 如果要修改图表类型, 那么在Visualization中设置, 这里面设置选项非常多, 这篇文章主要是入门, 就不一一介绍, 我们只说几个比较常用好用的功能.

设置单位

我们统计的指标通常都是有单位的, 比如统计流量, 单位是bytes, 统计http耗时, 单位是秒, 实际情况中用这些原始的单位会很不直观, 那么可以在Axes中设置Unit, 比如原始单位是秒:
BE2BD9A3-7D1E-472C-B54E-10A83456A4C9.png

设置了以后grafana就会自动根据值的大小显示us, ms, s等, 会清晰很多

设置图例

图例默认在图表的下放, 有时候图例项很多, 影响我们看监控数据, 那么我们也可以给他关掉, 或者挪到右边
227F09AC-5082-4E46-A3A1-F12BC28F6F1D.png
图例在左边的Legend中也可以设置格式, 可以使用{{label}}来引用, 例如:
3ED13C79-15E1-4C55-8084-B1879CAD86F1.png
这样图例会展示成:
0314877D-E695-464B-9C6B-A328FD9F2710.png
其中的instance就替换成了实际label的值
变量
为了提升图的适应性, 我们常常希望能够通过下拉框来控制查询结果, 比如提供一个机器列表的选项, 选择后只展示这台机器的监控数据, 这在grafana中可以通过变量实现
变量在dashboard的settings中配置, 那么变量要有取值来源, 它可以是固定值, 也可以是从Prometheus的元数据或者查询中获取, 例如:
7788876A-E724-4C74-B67C-D046935448DA.png

这里定义了一个叫instance的变量, 它是从prometheus_build_info这个指标的instance label来的, 也就是说这个指标的instance这个label有多少取值, 这个变量就有哪些取值, 这是很常用的一种用法
添加变量后, dashboard上就会自动添加一个下拉框, 可以进行选择, 但此时选择并没有效果, 因为我们的查询中没有使用这个变量, 所以query要把变量给用上, 比如:

up{instance=~"$instance"}

报警
在说真正的报警之前, 我们先来看下grafana的Thresholds设置B066EA58-BB18-4FAC-BE06-A1009D6C2ED9.png
当设置了这个选项以后, 图上就会多出一块红色的区域,
8DC0F033-8EA8-4316-8F14-42BB37BA2326.png
如果一些指标不太重要, 只是想当他们有异常的时候能够看到, 并不想收到报警通知, 那用这种方式就够了

真正的报警选项在Alert标签下:
27BBC4F4-8D50-43D4-92D4-2354CC7A75BF.png

注意: grafana不支持配置alert的query中带变量

一个报警由规则(Rule), 条件(Condition), 通知(Notification) 三部分组成:

ruleAA79752A-21ED-4C9B-8B8C-96C5C7145C9A.png

Rule是指执行报警的规则, 即多久执行一次, 连续触发多少次发送报警

condition

14778D4D-6D9D-4235-89DF-A75ADA69E1A4.png
Condition则是判断是否触发报警的条件, 图上条件的含义是query A从15分钟前到现在, 平均值大于150则报警
condition也支持多条, 通过AND OR的关系组合

notification

我们报警总是要收通知的, 我们讲解一下怎么用钉钉收通知
首先要进入配置页面, 在EB42F497-CC22-4AE0-AA37-2900B6508C1B.png
完整的配置如下:D18786B0-7F71-45EB-B0E8-350283FAEFBE.png
其中url就是在钉钉中创建机器人提供的url
创建完可以点击Send Test 看是否能够正常发送

创建完再回到alert页面选择即可

总结

这样我们就完成了从数据接入到可视化到报警的全流程, 借助SLS时序存储和grafana可以比较容易的搭建出一套易用的监控系统

大家在使用SLS中遇到的任何问题,请加钉钉群,我们有专门的日志女仆24小时在线答疑,还有火锅哥和烧烤哥专业支持!~ SLS微信公众号定期会发布各类日志、监控领域的技术分享文章并定期举行抽奖,欢迎小伙伴们关注~
另外欢迎对大数据、分布式、机器学习等有兴趣的同学加入,转岗、内推,来者不拒,请用简历狠狠的砸我,联系邮箱luoxing.klx@alibaba-inc.com !~

image.png

目录
相关文章
|
23天前
|
Prometheus 监控 Cloud Native
基于docker搭建监控系统&日志收集
Prometheus 是一款由 SoundCloud 开发的开源监控报警系统及时序数据库(TSDB),支持多维数据模型和灵活查询语言,适用于大规模集群监控。它通过 HTTP 拉取数据,支持服务发现、多种图表展示(如 Grafana),并可结合 Loki 实现日志聚合。本文介绍其架构、部署及与 Docker 集成的监控方案。
231 122
基于docker搭建监控系统&日志收集
|
5月前
|
人工智能 API 数据库
MCP Server 开发实战 | 大模型无缝对接 Grafana
以 AI 世界的“USB-C”标准接口——MCP(Model Context Protocol)为例,演示如何通过 MCP Server 实现大模型与阿里云 Grafana 服务的无缝对接,让智能交互更加高效、直观。
1832 116
|
19天前
|
Prometheus 监控 Java
日志收集和Spring 微服务监控的最佳实践
在微服务架构中,日志记录与监控对系统稳定性、问题排查和性能优化至关重要。本文介绍了在 Spring 微服务中实现高效日志记录与监控的最佳实践,涵盖日志级别选择、结构化日志、集中记录、服务ID跟踪、上下文信息添加、日志轮转,以及使用 Spring Boot Actuator、Micrometer、Prometheus、Grafana、ELK 堆栈等工具进行监控与可视化。通过这些方法,可提升系统的可观测性与运维效率。
日志收集和Spring 微服务监控的最佳实践
|
6天前
|
存储 缓存 监控
用 C++ 红黑树给公司电脑监控软件的日志快速排序的方法
本文介绍基于C++红黑树算法实现公司监控电脑软件的日志高效管理,利用其自平衡特性提升日志排序、检索与动态更新效率,并结合实际场景提出优化方向,增强系统性能与稳定性。
23 4
|
5月前
|
监控 测试技术 Go
告别传统Log追踪!GOAT如何用HTTP接口重塑代码监控
本文介绍了GOAT(Golang Application Tracing)工具的使用方法,通过一个Echo问答服务实例,详细展示了代码埋点与追踪技术的应用。内容涵盖初始化配置、自动埋点、手动调整埋点、数据监控及清理埋点等核心功能。GOAT适用于灰度发布、功能验证、性能分析、Bug排查和代码重构等场景,助力Go项目质量保障与平稳发布。工具以轻量高效的特点,为开发团队提供数据支持,优化决策流程。
377 89
|
5月前
|
消息中间件 运维 监控
智能运维,由你定义:SAE自定义日志与监控解决方案
通过引入 Sidecar 容器的技术,SAE 为用户提供了更强大的自定义日志与监控解决方案,帮助用户轻松实现日志采集、监控指标收集等功能。未来,SAE 将会支持 istio 多租场景,帮助用户更高效地部署和管理服务网格。
430 52
|
6月前
|
数据采集 运维 监控
数据采集监控与告警:错误重试、日志分析与自动化运维
本文探讨了数据采集技术从“简单采集”到自动化运维的演进。传统方式因反爬策略和网络波动常导致数据丢失,而引入错误重试、日志分析与自动化告警机制可显著提升系统稳定性与时效性。正方强调健全监控体系的重要性,反方则担忧复杂化带来的成本与安全风险。未来,结合AI与大数据技术,数据采集将向智能化、全自动方向发展,实现动态调整与智能识别反爬策略,降低人工干预需求。附带的Python示例展示了如何通过代理IP、重试策略及日志记录实现高效的数据采集程序。
297 7
数据采集监控与告警:错误重试、日志分析与自动化运维
|
6月前
|
存储 监控 算法
基于 PHP 语言的滑动窗口频率统计算法在公司局域网监控电脑日志分析中的应用研究
在当代企业网络架构中,公司局域网监控电脑系统需实时处理海量终端设备产生的连接日志。每台设备平均每分钟生成 3 至 5 条网络请求记录,这对监控系统的数据处理能力提出了极高要求。传统关系型数据库在应对这种高频写入场景时,性能往往难以令人满意。故而,引入特定的内存数据结构与优化算法成为必然选择。
145 3
|
6月前
|
消息中间件 运维 监控
智能运维,由你定义:SAE自定义日志与监控解决方案
SAE(Serverless应用引擎)是阿里云推出的全托管PaaS平台,致力于简化微服务应用开发与管理。为满足用户对可观测性和运维能力的更高需求,SAE引入Sidecar容器技术,实现日志采集、监控指标收集等功能扩展,且无需修改主应用代码。通过共享资源模式和独立资源模式,SAE平衡了资源灵活性与隔离性。同时,提供全链路运维能力,确保应用稳定性。未来,SAE将持续优化,支持更多场景,助力用户高效用云。
|
6月前
|
运维 监控 虚拟化
除了实时性能监控,Hyper-V还支持日志记录和警报功能你知道吗?
Hyper-V不仅支持实时性能监控,还具备强大的日志记录和警报功能。通过事件查看器可访问详细的日志文件,涵盖虚拟机管理、配置及Hypervisor事件,帮助故障排查和性能分析。警报功能支持预定义和自定义规则,可通过多种方式通知管理员,确保及时响应问题,保障虚拟化环境的稳定运行。

推荐镜像

更多