当前位置: 首页 > 科技观察

15分钟让你上手Grafana_0

时间:2023-03-18 09:47:41 科技观察

介绍Grafana是一个用GO语言开发的开源数据可视化工具,可以做数据的监控和统计,并有告警功能。特点:可视化。Grafana有快速灵活的客户端图表,面板插件有多种不同的可视化指标和日志方式,官方库有丰富的仪表板插件,比如热图、折线图、图表等展示方式,让我们可以复杂数据显示美观大方。警报和通知。直观地为最重要的指标定义警报规则。Grafana将不断评估它们并发送通知。动态仪表板:使用在仪表板顶部显示为下拉菜单的模板变量创建动态和可重用的仪表板。混合数据源:在同一个图中混合不同的数据源!可以在每个查询的基础上指定数据源。这甚至适用于自定义数据源。注释:注释来自不同的数据源图。将鼠标悬停在事件上会显示完整的事件元数据和标签。过滤器:Grafana使用临时过滤器来允许动态创建新的键/值过滤器,这些过滤器会自动应用于使用该数据源的所有查询。Mac上安装需要先安装包管理工具brew,然后再安装Grafana,这样就方便多了:brewupdatebrewinstallgrafanastart和stop命令。以下命令可用于后台启动/停止Grafana,默认端口为3000//startbrewservicesstartgrafana//stopbrewservicesstopgrafana查看Grafana版本:grafana-server-v浏览器登录:http://127.0.0.1:3000/.默认的用户名和密码是:admin/admin。具体mac环境版本下载安装如下:第一步,下载curl-Ohttps://dl.grafana.com/enterprise/release/grafana-enterprise-8.4.6.darwin-amd64.tar.gz步骤2、解压tar-zxvfgrafana-enterprise-8.4.6.darwin-amd64.tar.gz第三步开始。进入解压目录,./bin/grafana-serverweb基本概念组织和用户组织(organization)是个大概念,每个用户可以有多个组织,Grafana默认有一个组织。用户登录后可以在不同的Organization之间切换,前提是用户拥有多个Organization。不同的Organization是完全不同的,包括datasource、dashboard等。创建一个Organization相当于打开了一个新视图,所有的datasource、dashboard等都要重新创建。User(用户),这个概念应该很简单,不用多说。Grafana中的用户具有三种角色:admin、editor和viewer。在2.1及之后的版本中,增加了一个新的角色,readonlyeditor(只读编辑模式)。此模式允许用户修改DashBoard,但不允许保存。每个用户可以有多个组织。admin拥有最高权限,可以进行任何操作,包括创建用户、添加Datasources、创建DashBoards。editor角色不能创建用户,不能添加Datasource,可以创建DashBoard。查看者角色只能查看仪表板。数据源如前所述,Grafana支持多种数据源。可以执行各种简单或复杂的Elasticsearch查询以可视化存储在Elasticsearch中的日志。右侧设置——数据源——添加数据源——ElasticSearch。其中Indexname指定时间字段的默认值,并指定Elasticsearch索引的名称。您可以使用索引名称或通配符时间模式。Access在这里解释Access,它设置了如何处理对数据源的请求。如果没有另外说明,服务器应该是首选方式。服务器访问模式(默认)所有请求都将从浏览器发出到Grafana后端/服务器,后者将请求转发到数据源,避免可能的跨域资源共享(CORS)要求。如果您选择此访问方法,则URL需要可从Grafana后端/服务器访问。浏览器(直接)访问(将被废除)所有请求都将从浏览器直接发送到数据源,并且可能需要遵守跨源资源共享(CORS)要求。如果您选择此访问方法,您需要能够从您的浏览器访问该URL。如果您选择浏览器访问,则必须更新您的Elasticsearch配置以允许其他域从浏览器访问Elasticsearch。您可以通过在elasticsearch.yml配置文件中为选项指定这些来执行此操作。这个版本将在以后的版本中被废除。如果选择该模式,会出现如下提示:BrowseraccessmodeintheElasticsearchdatasourceisdeprecatedandwillberemovedinafuturerelease.http.cors.enabled:truehttp.cors.allow-origin:"*"Dashboard(Dashboard)下面介绍一下Grafana中重要的UI界面——Dashboard。仪表板。通过数据源定义可视化的数据源后,对于用户来说最重要的就是实现数据的可视化。在Grafana中,我们通过Dashboard来组织和管理我们的数据可视化图表。排。在Dashboard页面中,我们还可以定义一个Row(行)来组织和管理一组相关的Panel。控制板。仪表板中最基本的可视化单元是面板。通过Panel的QueryEditor(查询编辑器),我们可以为每个Panel添加查询数据源和数据查询方式。每个Panel都是独立的,可以选择一个或多个数据源进行查询。比如我们使用ElasticSearch,那么我们就可以使用Lucene语句来查询。最佳实践-编辑图表MetricQueryeditorMetricQueryEditor。ElasticSearch的MetricQuery编辑器支持选择多个指标(Metrics)和分组(GroupBy)。可以通过添加或删除图标来完成。查询使用lucene查询语句。lucene的语法可以参考传送门[1],语法中也可以使用变量。我大致整理了一下,常用的语法如下:MetricsindicatorMetrics。指标配置,每个数据源提供不同的选项,我这里使用Elasticsearch。根据自己的需要选择,比如UniqueCount(根据某个字段计算UV时)。例如,如果我们需要计算百分位数,我们选择Percentiles。集成了ElasticSearch中的多种聚合方式,如Min/Max/Count等。Groupby聚合分组方式,每个指标属性不同。日期直方图,根据时间聚合。Term是基于一个字段进行聚合的,一般用于生成表格。表达式计算可以通过Expression计算出相应的结果。早期版本不支持表达式。可以通过Transform处理。在传递查询的结果集以进行可视化之前,对结果应用一层转换。可以支持命名筛选字段、跨查询计算等。别名可以与固定值或组变量一起使用:Templating(模板)除了索引查询的硬编码方式外,Grafana还支持变量注入的方式。变量显示为仪表板顶部的下拉选择框。这些下拉框可以轻松更改仪表板中显示的数据。设置变量在Dashboard的设置中,我们找到Variables的设置,点击New,进入设置页面,这里的Type有很多种,最常见的就是Query。可以通过JSON字符串自定义,语法如下:默认大小限制为500,可以按大小设置。Query中可以使用其他变量,当其他变量发生变化时,查询结果也会随之变化。{"find":"terms","field":"@hostname","query":"@source:$source"}提供adhocFilter,供用户自定义条件。官网提供的demo[2]使用变量变量是值的占位符。您可以在指标查询和面板标题中使用变量。因此,当您使用仪表板顶部的下拉菜单更改值时,仪表板的指标查询将更改以反映新值。可以使用下面两种语法:$eg:@hostname:$hostname[[varname]]eg:@hostname:[[hostname]]以上是官网的使用,个人发现,类似在ES中编写模板字符串的方式也很好。name:${name}ANDenv:testANDNOTa:""总结本文介绍Grafana结合ElasticSearch的基本概念和最佳实践。Grafana作为一个监控仪表盘系统,不需要我们为数据应用分析做额外的开发,只需要配置一下就可以得到我们想要的图表。Grafana的功能强大且灵活。本文只是入门介绍。等你用多了,还是要看官网文档[3]。参考UsingElasticsearchinGrafana[4]入门系列文章[5]ES官方文档[6]lucene语法[7]参考资料[1]传送门:https://segmentfault.com/a/1190000002972420[2]demo:https://play.grafana.org/d/CknOEXDMk/elasticsearch-templated?orgId=1d[3]官网文档:https://grafana.com/docs/grafana/latest/[4]在Grafana中使用Elasticsearch:https://grafana.com/docs/grafana/latest/datasources/elasticsearch/#logs[5]入门系列文章:https://juejin.cn/column/7023032795333132302[6]ES官方文档:https:///www.elastic.co/guide/en/kibana/current/lucene-query.html[7]lucene语法:https://www.elastic.co/guide/en/elasticsearch/reference/7.15/query-dsl-查询字符串-query.html#query-string-syntax