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

简介: 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 panel和convert 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

目录
相关文章
|
人工智能 API 数据库
MCP Server 开发实战 | 大模型无缝对接 Grafana
以 AI 世界的“USB-C”标准接口——MCP(Model Context Protocol)为例,演示如何通过 MCP Server 实现大模型与阿里云 Grafana 服务的无缝对接,让智能交互更加高效、直观。
4369 124
|
Java 中间件
SpringBoot入门(6)- 添加Logback日志
SpringBoot入门(6)- 添加Logback日志
643 5
|
存储 数据采集 Prometheus
Grafana Prometheus Altermanager 监控系统
Grafana、Prometheus 和 Alertmanager 是一套强大的开源监控系统组合。Prometheus 负责数据采集与存储,Alertmanager 处理告警通知,Grafana 提供可视化界面。本文简要介绍了这套系统的安装配置流程,包括各组件的下载、安装、服务配置及开机自启设置,并提供了访问地址和重启命令。适用于希望快速搭建高效监控平台的用户。
1314 20
|
Prometheus 监控 Cloud Native
Prometheus+Grafana监控Linux主机
通过本文的步骤,我们成功地在 Linux 主机上使用 Prometheus 和 Grafana 进行了监控配置。具体包括安装 Prometheus 和 Node Exporter,配置 Grafana 数据源,并导入预设的仪表盘来展示监控数据。通过这种方式,可以轻松实现对 Linux 主机的系统指标监控,帮助及时发现和处理潜在问题。
1713 7
|
Prometheus 运维 监控
Prometheus+Grafana+NodeExporter:构建出色的Linux监控解决方案,让你的运维更轻松
本文介绍如何使用 Prometheus + Grafana + Node Exporter 搭建 Linux 主机监控系统。Prometheus 负责收集和存储指标数据,Grafana 用于可视化展示,Node Exporter 则采集主机的性能数据。通过 Docker 容器化部署,简化安装配置过程。完成安装后,配置 Prometheus 抓取节点数据,并在 Grafana 中添加数据源及导入仪表盘模板,实现对 Linux 主机的全面监控。整个过程简单易行,帮助运维人员轻松掌握系统状态。
2694 3
|
数据采集 Prometheus 监控
监控堆外第三方监控工具Grafana
监控堆外第三方监控工具Grafana
842 5
|
Java 中间件
SpringBoot入门(6)- 添加Logback日志
SpringBoot入门(6)- 添加Logback日志
757 1
|
Prometheus 运维 监控
智能运维实战:Prometheus与Grafana的监控与告警体系
【10月更文挑战第27天】在智能运维中,Prometheus和Grafana的组合已成为监控和告警体系的事实标准。Prometheus负责数据收集和存储,支持灵活的查询语言PromQL;Grafana提供数据的可视化展示和告警功能。本文介绍如何配置Prometheus监控目标、Grafana数据源及告警规则,帮助运维团队实时监控系统状态,确保稳定性和可靠性。
1524 0
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
710 9

推荐镜像

更多