使用 Telegraf Elasticsearch 输入插件

导航至

Telegraf Elasticsearch 插件 非常易于使用,它可以向您展示许多有用的信息。首先,让我们启动并运行 InfluxDB 沙箱以及 Elasticsearch 节点,我们可以使用 Kibana 向其填充一些数据。

安装 InfluxDB 沙箱

在本教程中,我选择使用 InfluxDB 沙箱,它非常容易运行。只需克隆存储库并运行 ./sandbox up 命令,您就可以在各自的容器中运行 TICK 堆栈的所有四个组件。按照此处的说明克隆存储库并使其运行。

安装 Elasticsearch 和 Kibana

Elasticsearch 需要您的机器上至少运行 Java 8,所以我首先确保已安装它。然后,由于我运行的是 Mac OS,我使用 Homebrew 在我的机器上安装 Elasticsearch 和 Kibana:brew install elasticsearchbrew install kibana。在撰写本文时,使用 Homebrew 将安装 Elasticsearch 版本 6.7 和 Kibana 版本 6.7。如果您想安装最新版本的 Elasticsearch,您需要按照 此处 提供的说明进行操作。

如果您使用 Homebrew 安装了 Elasticsearch 和 Kibana,您可以通过在一个终端选项卡中输入 elasticsearch 并在第二个终端选项卡中输入 kibana 来启动它们。您将保持它们运行,直到 Elasticsearch 插件设置完成。

然后导航到 localhost:5601 并单击左侧边栏中的“Dev Tools”,您应该会看到类似这样的内容

Telegraf Elasticsearch input plugin Kibana UI

这是 Kibana UI,您可以从中向您的 Elasticsearch 节点发出请求。

我建议使用 此处 的教程来试用您的 Elasticsearch 节点和 Kibana。它将向您展示如何使用数据填充您的节点并检查集群健康状况(集群由一个或多个节点组成,因此您也拥有一个集群)。例如,运行

PUT /user/_doc/1?pretty
{
  "name": "Malala Yousafzai"
}

在 Kibana 中将创建一个用户索引并插入一个 id 为 1 的用户。在 Kibana 中运行 GET /user/_doc/1?pretty 将获取该用户并返回

{
  "_index" : "user",
  "_type" : "_doc",
  "_id" : "1",
  "_version" : 2,
  "found" : true,
  "_source" : {
    "name" : "Malala Yousafzai"
  }
}

监控 Elasticsearch

现在您已经在 Elasticsearch 节点中使用数据填充了一些索引,是时候监控该节点了!首先,如果您正在运行沙箱,请使用 ./sandbox down 将其关闭。

然后在您喜欢的编辑器中打开沙箱代码,并导航到 telegraf/telegraf.conf。您可以在此处找到 Telegraf 配置的各种输入和输出插件,以及您将在其中添加 Elasticsearch 插件配置的位置。

从 Elasticsearch 插件 README 复制并粘贴配置到您的 telegraf.conf 文件的底部,如下所示

elasticsearch telegraf plugin

请注意,我对配置进行了更改。我将 servers = ["http://localhost:9200"] 更改为 servers = ["http://host.docker.internal:9200"]。这是因为我们在 docker 容器中运行 Telegraf 实例,我们需要它能够与我们在 docker 容器外部本地运行的 Elasticsearch 节点进行通信。

保存文件并使用 ./sandbox up 再次启动沙箱,然后导航到在 localhost:8888 打开的 Chronograf 选项卡。单击左侧导航栏中的“Explore”。然后单击“Flux”以切换到使用 Flux 进行查询。

Chronograf - Flux Queries

然后,在“SCHEMA”下,单击“telegraf”,然后单击“MEASUREMENTS”,然后单击“elasticsearch_indices”,然后在“docs_count”旁边单击“Add Filter”。这将在 SCRIPT 块中构造一个 Flux 查询

Flux query

您的查询应如下所示

from(bucket: "telegraf")
  |> range(start: dashboardTime)
  |> filter(fn: (r) => r._measurement == "elasticsearch_indices" and r._field == "docs_count")

单击页面顶部的“Visualization”并选择“Single Stat”。然后单击“Queries”返回查询块,然后单击“Run Script”。您应该在页面顶部的块中看到您使用 Elasticsearch 教程创建的文档数量(至少一个)。这是您可以使用 Elasticsearch 插件查看的数据类型。

您可以使用其他几个指标,并且您实际上可以通过拉入预构建的仪表板来可视化其中一些指标。为此,请单击左侧导航栏中的“Configuration”,您将看到您的 InfluxDB 连接。单击该连接的名称

InfluxDB connection

然后在弹出的窗口中单击“Update Connection”

InfluxDB update connection

然后滚动直到看到“Elasticsearch”,然后单击该框

Connection configuration dashboards

单击“Create 1 Dashboard”。当系统询问您的 Kapacitor Connection 时,单击“Skip”,然后单击“Finish”。然后单击左侧导航栏中的“Dashboards”,您应该在列表中看到您的 Elasticsearch 仪表板。单击它将带您进入仪表板本身

monitor elasticsearch using telegraf

就是这样!您现在已成功安装 Elasticsearch,并且能够使用 Telegraf 插件监控其性能,并使用包含的仪表板可视化一些关键的 Elasticsearch 指标。