使用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。它将向您展示如何向您的节点填充数据并检查集群健康(一个集群由一个或多个节点组成,因此您也有一个集群)。例如,在Kibana中运行

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

将创建一个用户索引并插入一个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 = ["https://127.0.0.1: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连接时点击“Skip”,然后点击“Finish”。然后点击左侧导航栏中的“Dashboards”,您应该会在列表中看到Elasticsearch仪表板。点击它将带您进入仪表板本身

monitor elasticsearch using telegraf

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