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

本文涉及的产品
可观测监控 Prometheus 版,每月50GB免费额度
可观测可视化 Grafana 版,10个用户账号 1个月
日志服务 SLS,月写入数据量 50GB 1个月
简介: 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

相关实践学习
通过可观测可视化Grafana版进行数据可视化展示与分析
使用可观测可视化Grafana版进行数据可视化展示与分析。
目录
相关文章
|
2天前
|
Java 中间件
SpringBoot入门(6)- 添加Logback日志
SpringBoot入门(6)- 添加Logback日志
26 5
|
10天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第26天】Prometheus与Grafana是智能运维中的强大组合,前者是开源的系统监控和警报工具,后者是数据可视化平台。Prometheus具备时间序列数据库、多维数据模型、PromQL查询语言等特性,而Grafana支持多数据源、丰富的可视化选项和告警功能。两者结合可实现实时监控、灵活告警和高度定制化的仪表板,广泛应用于服务器、应用和数据库的监控。
71 3
|
9天前
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
52 0
|
1月前
|
存储 监控 固态存储
如何监控和优化 WAL 日志文件的存储空间使用?
如何监控和优化 WAL 日志文件的存储空间使用?
|
1月前
|
监控 网络协议 CDN
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
阿里云国际监控查询流量、用量查询流量与日志统计流量有差异?
|
3月前
|
Prometheus 监控 Cloud Native
Grafana 入门指南:快速上手监控仪表盘
【8月更文第29天】Grafana 是一款开源的数据可视化和监控工具,它允许用户轻松地创建美观的仪表盘和图表,以便更好地理解和监控数据。无论您是需要监控系统性能指标、应用程序日志还是业务关键指标,Grafana 都能提供灵活而强大的解决方案。本指南将带领您快速上手 Grafana,包括安装、配置以及创建第一个监控面板。
505 1
|
2月前
|
运维 Kubernetes 监控
Loki+Promtail+Grafana监控K8s日志
综上,Loki+Promtail+Grafana 监控组合对于在 K8s 环境中优化日志管理至关重要,它不仅提供了强大且易于扩展的日志收集与汇总工具,还有可视化这些日志的能力。通过有效地使用这套工具,可以显著地提高对应用的运维监控能力和故障诊断效率。
266 0
|
3月前
|
SQL 数据库 Java
Hibernate 日志记录竟藏着这些秘密?快来一探究竟,解锁调试与监控最佳实践
【8月更文挑战第31天】在软件开发中,日志记录对调试和监控至关重要。使用持久化框架 Hibernate 时,合理配置日志可帮助理解其内部机制并优化性能。首先,需选择合适的日志框架,如 Log4j 或 Logback,并配置日志级别;理解 Hibernate 的多级日志,如 DEBUG 和 ERROR,以适应不同开发阶段需求;利用 Hibernate 统计功能监测数据库交互情况;记录自定义日志以跟踪业务逻辑;定期审查和清理日志避免占用过多磁盘空间。综上,有效日志记录能显著提升 Hibernate 应用的性能和稳定性。
49 0
|
3月前
|
开发者 前端开发 编解码
Vaadin解锁移动适配新境界:一招制胜,让你的应用征服所有屏幕!
【8月更文挑战第31天】在移动互联网时代,跨平台应用开发备受青睐。作为一款基于Java的Web应用框架,Vaadin凭借其组件化设计和强大的服务器端渲染能力,助力开发者轻松构建多设备适应的Web应用。本文探讨Vaadin与移动设备的适配策略,包括响应式布局、CSS媒体查询、TouchKit插件及服务器端优化,帮助开发者打造美观且实用的移动端体验。通过这些工具和策略的应用,可有效应对屏幕尺寸、分辨率及操作系统的多样性挑战,满足广大移动用户的使用需求。
62 0
|
3月前
|
存储 运维 监控
Entity Framework Core 实现审计日志记录超棒!多种方法助你跟踪数据变化、监控操作,超实用!
【8月更文挑战第31天】在软件开发中,审计日志记录对于跟踪数据变化、监控用户操作及故障排查至关重要。Entity Framework Core (EF Core) 作为强大的对象关系映射框架,提供了多种实现审计日志记录的方法。例如,可以使用 EF Core 的拦截器在数据库操作前后执行自定义逻辑,记录操作类型、时间和执行用户等信息。此外,也可通过在实体类中添加审计属性(如 `CreatedBy`、`CreatedDate` 等),并在保存实体时更新这些属性来记录审计信息。这两种方法都能有效帮助我们追踪数据变更并满足合规性和安全性需求。
66 0
下一篇
无影云桌面