;数据源;Elasticsearch

在Grafana中使用Elasticsearch

Grafana具有Elasticsearch的先进支持。您可以执行多种类型的简单或复杂的Elasticsearch查询,以可视化存储在Elasticsearch中的日志或指标。您还可以使用存储在Elasticsearch中的日志事件来注释您的图。

支持Elasticsearch版本:

  • v7.10 +
  • v8.0 +(实验)

添加数据源

  1. 通过单击顶部标题中的Grafana图标打开侧边菜单。
  2. 在侧边菜单下面指示板链接,你应该找到一个名为数据源
  3. 单击+添加数据源顶部标题中的按钮。
  4. 选择Elasticsearch类型下拉。

注意:如果你没有看到数据源链接在您的侧菜单,这意味着您的当前用户没有管理当前组织的角色。

的名字 描述
的名字 数据源名称。这就是在面板和查询中引用数据源的方式。
默认的 为新面板预先选择数据源。
Url Elasticsearch服务器的HTTP协议、IP和端口。
访问 不要使用Access。使用“服务器(默认)”,否则数据源将无法工作。

指标设置

Elasticsearch数据源详细信息

的默认值时间字段并指定Elasticsearch索引的名称。可以为索引名使用时间模式或通配符。

Elasticsearch版本

从版本选择下拉菜单中选择Elasticsearch数据源的版本。不同版本的查询编辑器中提供了不同的查询组合和功能。Elasticsearch的可用版本是2.倍5.倍5.6 +6.0 +7.0 +7.7 +而且7.10 +.选择与数据源版本最匹配的选项。

Grafana假设您正在指定范围内运行尽可能低的版本。这确保了未来Elasticsearch发行版中的新特性或破坏性更改不会影响您的配置。

例如,假设您正在运行Elasticsearch7.6.1你选择7.0 +.如果Elasticsearch提供了新功能7.5.0或者更新的版本,那么7.5 +选项将可用。但是,在显式选择new之前,配置不会受到影响7.5 +选项。

最小时间间隔

按时间间隔划分的自动组的下限。例如,建议设置为写频率1米如果你的数据每分钟都被写入。还可以在数据源选项下的仪表板面板中覆盖/配置此选项。注意这个值是很重要的需要格式化:被格式化为一个数字后面跟着一个有效的时间标识符,例如。1米(1分钟)或30年代(30秒)。支持以下时间标识符:

标识符 描述
y 一年
w
d 一天
h 小时
一分钟
年代 第二个
女士 毫秒

X-Pack启用

使X-Pack特定的功能和选项,为查询编辑器提供附加的聚合,例如而且最高指标

包括冻结指数

X-Pack启用是否激活且配置的Elasticsearch版本高于6.6.0,可以将Grafana配置为不忽略冻结指数执行搜索请求时。

日志

有两个参数,消息字段名而且级别字段名,可以从数据源设置页面进行可选配置,该页面确定在可视化登录日志时将使用哪些字段用于日志消息和日志级别探索

例如,如果您使用默认的Filebeat设置将日志发送到Elasticsearch,那么以下配置应该可以工作:

  • 消息字段名:消息
  • 字段名:fields.level

数据链接从指定字段创建一个链接,可以在Explore的日志视图中访问该链接。

每个数据链路配置包括:

  • 场,数据链路使用的字段的名称。
  • URL /查询-如果链接是外部的,那么输入完整的链接URL。如果链接是内部链接,则此输入用作目标数据源的查询。在这两种情况下,您都可以用$ {__value。生}宏。
  • 网址标签(可选)设置自定义显示标签。链接标签默认为完整的外部URL或链接的内部数据源的名称,并被此设置覆盖。
  • 内部链接-选择链路是内部的还是外部的。在内部链接的情况下,数据源选择器允许您选择目标数据源。只支持跟踪数据源。

度量查询编辑器

Elasticsearch查询编辑器

Elasticsearch查询编辑器允许您选择多个指标,并根据多个术语或过滤器进行分组。使用右边的加号和减号图标来添加/删除指标或按子句分组。一些指标和分组子句具有选项,单击选项文本可展开行以查看和编辑指标或分组选项。

系列命名和别名模式

控件可以控制时间序列的名称别名输入字段。

模式 描述
{{术语fieldname}} 替换为项组的值
{{度量}} 用度量名称替换(例如,平均值,最小值,最大值)
{{领域}} 用度量字段名替换

管道规格

一些度量聚合称为管道聚合,例如,移动平均线而且导数.Elasticsearch管道指标需要基于另一个指标。使用指标旁边的眼睛图标来隐藏指标,使其不出现在图中。这对于只在查询中有用于管道度量的度量非常有用。

管道集合编辑器

模板

而不是硬编码的东西,如服务器,应用程序和传感器名称在您的指标查询,您可以使用变量的地方。变量显示为仪表板顶部的下拉选择框。通过这些下拉菜单,可以轻松更改仪表板中显示的数据。

检查模板介绍模板特性和不同类型的模板变量的文档。

查询变量

Elasticsearch数据源支持两种类型的查询,您可以在查询领域的查询变量。查询是使用自定义JSON字符串编写的。字段应该映射为关键字在Elasticsearch索引映射中。如果它是多领域与一个文本而且关键字类型,然后使用“字段”:“fieldname.keyword”(有时fieldname.raw),在查询中指定关键字字段。

查询 描述
{"find": "fields", "type": "keyword"} 返回带有索引类型的字段名列表关键字
{"find": "terms", "field": "hostname. "关键字”、“大小”:1000} 使用术语聚合返回关键字的值列表。查询将使用当前仪表板时间范围作为时间范围查询。
{“发现”:“条款”、“场”:“主机名”、“查询”:“lucene查询> <”} 使用术语聚合和指定的lucene查询过滤器返回关键字字段的值列表。查询将使用当前仪表板时间范围作为查询的时间范围。

术语查询的默认大小限制为500。在查询中设置size属性以设置自定义限制。您可以在查询中使用其他变量。变量的查询定义示例美元的主机

{“发现”:“条款”、“场”:“主机名”、“查询”:“来源:$源”}

在上面的例子中,我们使用了另一个名为美元的来源在查询定义内部。的当前值通过下拉菜单进行更改美元的来源变量,它将触发更新美元的主机变量,因此它现在只包含过滤的主机名文档属性。

默认情况下,这些查询按术语顺序返回结果(对于任何变量都可以按字母顺序或数字顺序排序)。若要生成按文档数量排序的术语列表(前n值列表),请添加orderBy“doc_count”的属性。这将自动选择降序排序;使用" asc "与doc_count(一个底部n列表)可以通过设置秩序:“asc”不鼓励因为它“增加了文档计数上的错误”。要按文档计数顺序保持术语,请将变量的Sort下拉列表设置为禁用;你也可以选择使用e.g.。字母顺序排列重新排序。

{“发现”:“条款”、“场”:“主机名”、“orderBy”:“doc_count”}

查询中使用变量

有两种语法:

  • $ < varname >例如:主机名:$主机名
  • [[varname]]例子:主机名:[[hostname]]

为什么两种方式呢?第一种语法更容易读和写,但不允许在单词中间使用变量。当多值包括所有的价值选项启用时,Grafana将标签从纯文本转换为lucene兼容的条件。

使用模板变量查询

在上面的例子中,我们有一个lucene查询,它根据主机名属性使用名为美元的主机名.的变量中也使用了条款分组按字段输入框。这允许您使用一个变量来快速更改数据的分组方式。

示例指示板:仪表盘Elasticsearch模板化

注释

注释允许您在图形的顶部覆盖丰富的事件信息。您可以通过Dashboard菜单/ Annotations视图添加注释查询。Grafana可以查询注释事件的Elasticsearch索引。

的名字 描述
查询 可以将搜索查询保留为空,也可以指定lucene查询。
时间 时间字段的名称,需要是日期字段。
时间结束 时间结束字段的可选名称需要为日期字段。如果设置了,那么注释将被标记为time和time-end之间的区域。
文本 事件描述字段。
标签 用于事件标记的可选字段名(可以是数组或CSV字符串)。

查询日志

可以从Elasticsearch中查询和显示日志数据探索,而在日志面板在仪表板。选择Elasticsearch数据源,然后可选地输入一个lucene查询来显示日志。

当在Explore中从Prometheus或Loki数据源切换时,您的查询将被转换为带有正确Lucene过滤器的Elasticsearch日志查询。

日志查询

返回结果后,日志面板显示一个日志行列表和一个柱状图,其中x轴显示时间,y轴显示频率/计数。

请注意,日志消息和级别使用的字段是基于可选的数据源配置

过滤日志消息

可以在查询字段中输入一个lucene查询来过滤日志消息。例如,使用您应该能够使用的默认Filebeat设置fields.level:错误只显示错误日志消息。

用供应配置数据源

现在可以在Grafana的配置系统中使用配置文件配置数据源了。您可以阅读更多关于它如何工作以及可以为数据源设置的所有设置的信息配置文档

下面是该数据源的一些配置示例。

apiVersion: 1数据源:-名称:弹性类型:elasticsearch访问:代理数据库:'[metrics-]YYYY.MM。DD' url: http://localhost:9200 jsonData: interval: Daily timeField: '@timestamp'

或者,日志:

apiVersion: 1数据源:-名称:elasticsearch-v7-filebeat类型:elasticsearch访问:代理数据库:'[filebeat-]YYYY.MM。DD' url: http://localhost:9200 jsonData: interval: Daily timeField: '@timestamp'esVersion: '7.0.0' logMessageField: message logLevelField: fields.level dataLinks: - datasourceUid: my_jaeger_uid # Target UID needs to be known field: traceID url: '$${__value.raw}' # Careful about the double "$$" because of env var expansion

亚马逊Elasticsearch服务

使用亚马逊Elasticsearch服务的AWS用户可以使用Grafana的Elasticsearch数据源来可视化Elasticsearch数据。如果您正在使用AWS身份和访问管理(IAM)策略来控制对您的Amazon Elasticsearch服务域的访问,那么您必须使用AWS Signature Version 4 (AWS SigV4)对该域的所有请求进行签名。有关AWS SigV4的更多详细信息,请参阅AWS的文档

AWS Signature Version 4认证

注意:仅在Grafana v7.3+中可用。

为了签署请求到Amazon Elasticsearch Service域,可以在Grafana中启用SigV4配置

启用AWS SigV4之后,就可以在Elasticsearch数据源配置页面上配置它了。指Cloudwatch身份验证有关身份验证选项的详细信息。

AWS Elasticsearch Service的SigV4配置
AWS Elasticsearch Service的SigV4配置