草庐IT

Grafana--监控数据展示神器

Rainbowhhy 2023-03-28 原文

1. 前言

    Grafana是一款用Go语言开发的开源数据可视化工具,可以做数据监控和数据统计,带有告警功能,可以分析指标和日志。使用Grafana可以制作出漂亮的仪表面板,它是一个炫酷的可视化监控、分析利器。无论我们的数据在哪里,或者数据所处的数据库是什么类型,都可以将它们与Grafana精美地结合在一起。     Grafana软件版本当前已经更新到Grafana8,但是目前用的比较多的是Grafana6和Grafana7,各个版本绘制图形面板的时候语法会有差别,本文将以Grafana7进行讲解,介绍其安装以及使用。

2. 安装

2.1 软件安装

wget https://dl.grafana.com/enterprise/release/grafana-enterprise-7.2.0-1.x86_64.rpm yum install grafana-enterprise-7.2.0-1.x86_64.rpm -y systemctl start grafana-server     安装完毕后,使用IP地址+3000端口即可登录,默认用户名和密码均为:admin,第一次登录会提示修改密码。

2.2 插件安装

# 饼图插件 grafana-cli plugins install grafana-piechart-panel # 时钟插件 grafana-cli plugins install grafana-clock-panel # zabbix插件 grafana-cli plugins install alexanderzobnin-zabbix-app systemctl restart grafana-server

2.3 Grafana相关文件和目录

Grafana安装完成后会生成一些文件

/etc/grafana/grafana.ini Grafana配置文件 /var/log/grafana/grafana.log Grafana日志文件 /var/lib/grafana/grafana.db Grafana数据保存文件 /var/lib/grafana/plugins/ Grafana插件保存目录

3. 数据保存形式

3.1 数据源

    Grafana本身并不保存监控数据,需要从其他数据源获取数据。Grafana支持接入很多的数据源,如下图是目前支持的数据源:     本文将以Prometheus作为数据源进行阐述,数据查询使用PromQL语法,关于PromQL语法的使用,上一篇文章已经详细讲到,可以参考。

3.2 Panels(图形面板)

    Grafana图形面板是一个可视化数据的用户界面,用于定义数据源查询,以及数据转换和格式化,是基本的可视化构建块。并且每个面板都有一个特定于面板中所选数据源的查询编辑器,查询编辑器允许提取完美的可视化以显示在面板上。每个面板都有多种样式和格式选项。面板可以在仪表板上拖放和重新排列,也可以根据需要调整大小。     制作一个Panel,需要进行大量的编辑。面板编辑器包括一个查询构建器和一系列选项,可以使用这些选项来转换数据并向面板添加信息。如下图是一个完整的Panel:

3.3 Query editors(查询编辑器)

    上面讲到每个面板都有一个特定于面板中所选数据源的查询编辑器,它是帮助编写查询的表单。根据我们所选的数据源,查询编辑器可能会提供自动完成、指标名称或变量建议。     由于数据源不同,查询语句也会有差异,所以不同的数据源可能看起来具有不同的查询编辑器。比如数据源为Prometheus,则查询编辑器的查询语言为PromQL,数据源为Mysql,则查询编辑器的查询语言为SQL语句。 Prometheus数据源查询器例子: Mysql数据源查询器例子:

4. 可视化

    当我们绘制图形时,需要选择合适的可视化方式(Visualization)。Grafana 提供了多种可视化来支持不同的用例,这一部分将重点介绍内置面板、它们的选项和典型用法。     Grafana支持的可视化方式有:Graph、Stat、Gauge、Bar gauge、Table、Text、Heatmap、Alert list、Dashboard list、News、Pie Chart、Logs。本文将着重介绍使用得比较多的几个可视化。

4.1 Graph

    Graph是图形面板,是创建dashboard时默认的面板。图形面板可以将指标呈现为一条线、一条点路径或一系列条形,这种类型的图表用途广泛,几乎可以显示任何时间序列数据。对于基于时间的折线图、面积图和条形图,建议使用默认的时间序列可视化。     以下是一个Graph的典型例子,比如显示操作系统负载:

4.2 Gauge

    Gauge是仪表面板,仪表可视化是一种单值可视化,可以为每个系列、列或行重复一个仪表。Gauge支持使用阈值控制背景或值颜色。     以下是一个Gauge的典型例子,比如显示操作系统当前打开的文件描述符(文件句柄数):

4.3 Stat

    Stat面板可视化显示一个带有可选图形迷你图的大型统计值。Stat支持使用阈值控制背景或值颜色。默认情况下,统计面板显示以下内容之一: 只是单个系列或字段的值;多个系列或字段的值和名称。     以下是一个Stat的典型例子,比如显示操作系统的CPU核心数:

4.4 Table

    Table是表格面板,要在表格布局中显示数据,请使用表格可视化。表格面板可视化非常灵活,支持时间序列和表格、注释和原始JSON数据的多种模式。此面板还提供日期格式、值格式和着色选项。     以下是一个Table的典型例子,比如显示操作系统各磁盘的使用情况信息:

4.5 Pie chart

    Pie chart是一个饼图可视化,饼图以饼图切片的形式显示来自一个或多个查询的缩减系列或系列中的值,因为它们彼此相关。切片的弧长、面积和圆心角都与切片值成正比,因为它与所有值的总和有关。如果想要以美观的形式快速比较一小组值时,可以使用这种类型的图表。     以下是一个Pie chart的典型例子,比如显示http请求返回状态码占比:

5.用户管理

    生产环境中,需要严格区分权限,不同的部门需要赋予不同的用户权限。 Grafana的用户权限分为:Admin、Editor、Viewer Admin:管理员权限,可以做任意操作,权限最大,可以为所欲为; Editor:可编辑权限,可以编辑图表,不能对用户进行操作; Viewer:查看权限,只能查看,不能做任何编辑操作。 用户操作界面如下图,可以添加用户,设置权限。

6.案例演示

6.1 制作Panel

下面以磁盘的IOPS监控进行讲解,如何绘制一个图形 (1)添加数据源

(2)添加一个Panel

(3)选择Visualization为Graph(默认)

(4)编辑查询语法 Prometheus监控项中表示IOPS的指标,使用PromQL语法。

(5)设置指标显示格式 设置线条粗细,填充效果

设置监控指标单位,显示名称,数据精度(默认是auto自适应)

设置数据显示方式,是否以表格显示,最大值、最小值、平均值、当前值哪些需要显示

(6)得到最终效果图

6.2 导入模板

Grafana可以支持直接导入json模板

现提供三个完整的json模板,效果图如下(部分截图信息): 主机信息监控(node_exporter模板)

大屏监控信息

主机宕机监控信息

完整的json文件参考:https://github.com/Rainbowhhy/Grafana_dashboard

参考文档

https://grafana.com/docs/grafana/latest/getting-started/getting-started/

有关Grafana--监控数据展示神器的更多相关文章

  1. ruby - 解析 RDFa、微数据等的最佳方式是什么,使用统一的模式/词汇(例如 schema.org)存储和显示信息 - 2

    我主要使用Ruby来执行此操作,但到目前为止我的攻击计划如下:使用gemsrdf、rdf-rdfa和rdf-microdata或mida来解析给定任何URI的数据。我认为最好映射到像schema.org这样的统一模式,例如使用这个yaml文件,它试图描述数据词汇表和opengraph到schema.org之间的转换:#SchemaXtoschema.orgconversion#data-vocabularyDV:name:namestreet-address:streetAddressregion:addressRegionlocality:addressLocalityphoto:i

  2. ruby - Ruby 有 `Pair` 数据类型吗? - 2

    有时我需要处理键/值数据。我不喜欢使用数组,因为它们在大小上没有限制(很容易不小心添加超过2个项目,而且您最终需要稍后验证大小)。此外,0和1的索引变成了魔数(MagicNumber),并且在传达含义方面做得很差(“当我说0时,我的意思是head...”)。散列也不合适,因为可能会不小心添加额外的条目。我写了下面的类来解决这个问题:classPairattr_accessor:head,:taildefinitialize(h,t)@head,@tail=h,tendend它工作得很好并且解决了问题,但我很想知道:Ruby标准库是否已经带有这样一个类? 最佳

  3. ruby - 我如何添加二进制数据来遏制 POST - 2

    我正在尝试使用Curbgem执行以下POST以解析云curl-XPOST\-H"X-Parse-Application-Id:PARSE_APP_ID"\-H"X-Parse-REST-API-Key:PARSE_API_KEY"\-H"Content-Type:image/jpeg"\--data-binary'@myPicture.jpg'\https://api.parse.com/1/files/pic.jpg用这个:curl=Curl::Easy.new("https://api.parse.com/1/files/lion.jpg")curl.multipart_form_

  4. 世界前沿3D开发引擎HOOPS全面讲解——集3D数据读取、3D图形渲染、3D数据发布于一体的全新3D应用开发工具 - 2

    无论您是想搭建桌面端、WEB端或者移动端APP应用,HOOPSPlatform组件都可以为您提供弹性的3D集成架构,同时,由工业领域3D技术专家组成的HOOPS技术团队也能为您提供技术支持服务。如果您的客户期望有一种在多个平台(桌面/WEB/APP,而且某些客户端是“瘦”客户端)快速、方便地将数据接入到3D应用系统的解决方案,并且当访问数据时,在各个平台上的性能和用户体验保持一致,HOOPSPlatform将帮助您完成。利用HOOPSPlatform,您可以开发在任何环境下的3D基础应用架构。HOOPSPlatform可以帮您打造3D创新型产品,HOOPSSDK包含的技术有:快速且准确的CAD

  5. FOHEART H1数据手套驱动Optitrack光学动捕双手运动(Unity3D) - 2

    本教程将在Unity3D中混合Optitrack与数据手套的数据流,在人体运动的基础上,添加双手手指部分的运动。双手手背的角度仍由Optitrack提供,数据手套提供双手手指的角度。 01  客户端软件分别安装MotiveBody与MotionVenus并校准人体与数据手套。MotiveBodyMotionVenus数据手套使用、校准流程参照:https://gitee.com/foheart_1/foheart-h1-data-summary.git02  数据转发打开MotiveBody软件的Streaming,开始向Unity3D广播数据;MotionVenus中设置->选项选择Unit

  6. 使用canal同步MySQL数据到ES - 2

    文章目录一、概述简介原理模块二、配置Mysql使用版本环境要求1.操作系统2.mysql要求三、配置canal-server离线下载在线下载上传解压修改配置单机配置集群配置分库分表配置1.修改全局配置2.实例配置垂直分库水平分库3.修改group-instance.xml4.启动监听四、配置canal-adapter1修改启动配置2配置映射文件3启动ES数据同步查询所有订阅同步数据同步开关启动4.验证五、配置canal-admin一、概述简介canal是Alibaba旗下的一款开源项目,Java开发。基于数据库增量日志解析,提供增量数据订阅&消费。Git地址:https://github.co

  7. Observability:从零开始创建 Java 微服务并监控它 (二) - 2

    这篇文章是继上一篇文章“Observability:从零开始创建Java微服务并监控它(一)”的续篇。在上一篇文章中,我们讲述了如何创建一个Javaweb应用,并使用Filebeat来收集应用所生成的日志。在今天的文章中,我来详述如何收集应用的指标,使用APM来监控应用并监督web服务的在线情况。源码可以在地址 https://github.com/liu-xiao-guo/java_observability 进行下载。摄入指标指标被视为可以随时更改的时间点值。当前请求的数量可以改变任何毫秒。你可能有1000个请求的峰值,然后一切都回到一个请求。这也意味着这些指标可能不准确,你还想提取最小/

  8. ruby-on-rails - 创建 ruby​​ 数据库时惰性符号绑定(bind)失败 - 2

    我正在尝试在Rails上安装ruby​​,到目前为止一切都已安装,但是当我尝试使用rakedb:create创建数据库时,我收到一个奇怪的错误:dyld:lazysymbolbindingfailed:Symbolnotfound:_mysql_get_client_infoReferencedfrom:/Library/Ruby/Gems/1.8/gems/mysql2-0.3.11/lib/mysql2/mysql2.bundleExpectedin:flatnamespacedyld:Symbolnotfound:_mysql_get_client_infoReferencedf

  9. STM32读取串口传感器数据(颗粒物传感器,主动上传) - 2

    文章目录1.开发板选择*用到的资源2.串口通信(个人理解)3.代码分析(注释比较详细)1.主函数2.串口1配置3.串口2配置以及中断函数4.注意问题5.源码链接1.开发板选择我用的是STM32F103RCT6的板子,不过代码大概在F103系列的板子上都可以运行,我试过在野火103的霸道板上也可以,主要看一下串口对应的引脚一不一样就行了,不一样的就更改一下。*用到的资源keil5软件这里用到了两个串口资源,采集数据一个,串口通信一个,板子对应引脚如下:串口1,TX:PA9,RX:PA10串口2,TX:PA2,RX:PA32.串口通信(个人理解)我就从串口采集传感器数据这个过程说一下我自己的理解,

  10. SPI接收数据异常问题总结 - 2

    SPI接收数据左移一位问题目录SPI接收数据左移一位问题一、问题描述二、问题分析三、探究原理四、经验总结最近在工作在学习调试SPI的过程中遇到一个问题——接收数据整体向左移了一位(1bit)。SPI数据收发是数据交换,因此接收数据时从第二个字节开始才是有效数据,也就是数据整体向右移一个字节(1byte)。请教前辈之后也没有得到解决,通过在网上查阅前人经验终于解决问题,所以写一个避坑经验总结。实际背景:MCU与一款芯片使用spi通信,MCU作为主机,芯片作为从机。这款芯片采用的是它规定的六线SPI,多了两根线:RDY和INT,这样从机就可以主动请求主机给主机发送数据了。一、问题描述根据从机芯片手

随机推荐