Beats:使用 Elastic Agent 来摄入数据并迁移定制的仪表盘

Posted Elastic 中国社区官方博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Beats:使用 Elastic Agent 来摄入数据并迁移定制的仪表盘相关的知识,希望对你有一定的参考价值。

在我之前的文章 “Observability:使用 Elastic Agent 来摄入日志及指标 - Elastic Stack 8.0” 我详述了如何使用 Elastic Agent 来摄入数据。事实上,在之前的最新的几版 7.14 里,Elastic Agent 已经是正式版发布了。

我们知道在之前我们使用 Filebeat 进行数据采集时,在 Elasticsearch 中,我们看到的索引名称是 filebeat-* 这样的索引,而且 filebeat-* 也被当做 index pattern 来方式所有的数据集。我们的很多定制的仪表盘或者可视化图是依据 filebeat-* 来进行绘制的。这种情况也适合 Metricbeat 的数据采集。我们最终的所有数据都是以 metricbeat-* 来进行绘制的。

随着 Fleet 及 Elastic Agent 的引入,我们的数据采集的索引名称也发生了变化。详细阅读,请参阅我之前的文章 “Elastic data stream 命名方案介绍”。 比如针对日志来说,我们的索引名称的命名是这样的:

Elastic data stream 的命名方案是由时间序列数据,由数据集分割成不同的数据。它使用以下命名约定。

  • type(类型):通用类型描述数据,比如 logs, metrics, traces ... 
  • dataset(数据集):描述摄入的数据和它的结构,比如 nginx.access
  • namespace(命名空间):用户可配置的任意分组,比如 production, testing

各个部分由 “-” 结合在一起,这样就会导致像 logs-nginx.access-production 这样名称的数据流。在所有三个部分中,“-” 字符是不允许的。这意味着所有的数据流通过以下方式命名:

type-dataset-namespace

从上面,我们可以看出来索引的命名完全是不同的。我们可能有很多不同的小的索引,而不是都是以 filebeat-* 这样的形式出现的。

Elastic integration 包提供了许多资产,例如预构建的仪表板,让你更轻松地可视化数据。 但是,在某些情况下,你可能需要迁移自定义仪表板。

由于 Elastic Agent 使用不同的数据流,因此 Elastic Agent 导出的字段与导出的 Beats 略有不同。 你为 Beats 创建的任何自定义仪表板都需要修改或重新创建才能使用新字段。

你有几个用于迁移自定义仪表板的选项:

  • 根据新数据流重新创建自定义仪表板 - 这是推荐的方法。
  • 创建索引别名以指向新数据流并继续使用自定义仪表板。

在下面,我们来介绍一下如何使用别名来指向 data stream。这样做的好处是,我们不需要修改以前定制的仪表盘。为此,请使用索引别名将数据流馈送到你现有的自定义仪表板中。

例如,指向 filebeat- 或 metricbeat- 的自定义仪表板可以使用别名来使用等效的数据流、日志和指标。

要使用别名:

1)将 filebeat 别名添加到日志数据流。 例如:

POST _aliases

  "actions": [
    
      "add": 
        "index": "logs-*",
        "alias": "filebeat-"
      
    

 ]

2)将 metribeat 别名添加到 metrics- 数据流。

POST _aliases

  "actions": [
    
      "add": 
        "index": "metrics-*",
        "alias": "metricbeat-"
      
    
 ]

重要:这些别名必须添加到索引模板和现有索引中。

在我们做完上面的配置后,请停用你的 Beats,并仅使用 Elastic Agent 来采集数据,否则你的仪表盘中将会有重复的数据。

以上是关于Beats:使用 Elastic Agent 来摄入数据并迁移定制的仪表盘的主要内容,如果未能解决你的问题,请参考以下文章

Observability:使用 Elastic Agent 来摄入日志及指标 - Elastic Stack 8.0

Beats Elastic中的Auditbeat使用介绍

Observability:我们该选 Beats 还是 Elastic Agents 来采集数据?

Observability:我们该选 Beats 还是 Elastic Agents 来采集数据?

浅尝 Elastic Stack Logstash + Beats + Kafka

浅尝 Elastic Stack Logstash + Beats + Kafka