首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >telegraf输出到Elasticsearch:“健康检查超时:没有弹性搜索节点可用”

telegraf输出到Elasticsearch:“健康检查超时:没有弹性搜索节点可用”
EN

Stack Overflow用户
提问于 2019-10-19 18:25:56
回答 1查看 1.4K关注 0票数 1

我很难用Telegraf输出插件连接到Elasticsearch实例。

我通过Elasticsearch服务创建了一个Elasticsearch设置。我在Kibana为它创建了一个用户和密码(连接到一个角色)。

然后我为它设置了一个Telegraf输出:

代码语言:javascript
运行
复制
  [[outputs.elasticsearch]]
  urls = [ "https://hostname:port" ] # required.

  timeout = "5s"

  enable_sniffer = false

  health_check_interval = "10s"

  ## HTTP basic authentication details.
  username = "my_username"
  password = "my_password"

  index_name = "device_logs" # required.

  insecure_skip_verify = true

  manage_template = true

  template_name = "telegraf"

  overwrite_template = false

但是当我尝试用这个开始Telegraf的时候,它只是给出了错误,

代理未能连接到outputs.elasticsearch,在15s中重试,错误是“健康检查超时:没有可用的Elasticsearch节点”

连接失败似乎起源于golang的net/http库的深处,我不知道如何在这一点上获得更有用的输出。

我尝试过的事情:

Thing #1:我测试了cURL:

代码语言:javascript
运行
复制
curl -u my_username:my_password -X POST "https://hostname:port/device_logs/_doc" -H 'Content-Type: application/json' -d'
    {
        "name": "John Doe"
    }'

这个很好用。

Thing #2:我创建了一个简单的Go程序,用于从Go连接到elasticsearch:

代码语言:javascript
运行
复制
package main

import (
    "log"
    "time"
    "gopkg.in/olivere/elastic.v3"
)

func main() {
    // configure connection to ES
    client, err := elastic.NewClient(elastic.SetURL("https://hostname:port"))
    if err != nil {
      panic(err)
    }
    log.Printf("client.running? %v",client.IsRunning())
    if ! client.IsRunning() {
      panic("Could not make connection, not running")
    }
}

。。第一次恐慌与“没有可用的Elasticsearch节点”相同。

Thing #3:我尝试在Go程序上运行gdb来调试它。当我调用NewClient时,它会跳到程序集中,所以我无法真正了解在net/http的中心发生了什么。

我以前从未使用过Go,所以我希望避免花上几个小时学习Go、拼写和调试,以解决这里希望是一个简单的问题。

关于如何在这里获得更多的信息,或者为什么失败的原因,有什么想法吗?是否有用于Go的生成或运行时标志可以使用?gdb调试技巧,这样我就可以进入Go库代码了吗?Elasticsearch客户技术?

EN

回答 1

Stack Overflow用户

发布于 2019-10-19 23:35:11

为了回答我自己的问题,这里的问题是角色权限。用于Elasticsearch的Telegraf输出插件需要启用监视器权限,否则它将无法连接到Elasticsearch服务器,而不打印任何有关原因的信息。

顺便说一句:构建golang代码并能够调试到它调用的库:go build -gcflags=all="-N -l"

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58466777

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档