我只是不明白发生了什么。我的go应用程序无法连接到elasticsearch。该节点可用,已启动并正在运行。我在这里做错了什么?
import (
"fmt"
"github.com/olivere/elastic/v7"
"github.com/sirupsen/logrus"
"gitlab.com/codereverie/anuvadak-api-server/app_config"
"gopkg.in/sohlich/elogrus.v7"
"gopkg.in/validator.v2"
"io"
"os"
)
eurl := "http://ip:port"
eUsername := "username"
ePassword := "password"
client, err := elastic.NewClient(elastic.SetURL(eurl), elastic.SetBasicAuth(eUsername, ePassword))
if err != nil {
fmt.Println("Some error", err.Error())
panic("Failed to initialize elastic-search client")
}
这里有什么不对的地方?错误说no active connection found: no Elasticsearch node available
这是我在浏览器中命中GET请求时从elasticsearch返回的数据
{
"name": "ABC-1",
"cluster_name": "ABC",
"cluster_uuid": "3oo05v6lSSmE7DpRh_68Yg",
"version": {
"number": "7.6.2",
"build_flavor": "default",
"build_type": "deb",
"build_hash": "ef48eb35cf30adf4db14086e8aabd07ef6fb113f",
"build_date": "2020-03-26T06:34:37.794943Z",
"build_snapshot": false,
"lucene_version": "8.4.0",
"minimum_wire_compatibility_version": "6.8.0",
"minimum_index_compatibility_version": "6.0.0-beta1"
},
"tagline": "You Know, for Search"
}
no active connection found: no Elasticsearch node available
当您继续在客户端中进行嗅探但群集没有可用节点时,通常会发生错误。您可以通过点击来检查集群的状态http://host:port/_nodes/http?pretty=true
。
如果您elastic
不禁用嗅探功能,则Golang客户端将在后台运行进程,该进程/_nodes
每15分钟轮询一次API(上面的URL)并维护正常节点列表。如果没有健康的节点,则以该错误结束。
当您的集群配置有私有IP时,也会发生这种情况(注意:我们在OP上进行了调试,我们调试了问题)(因此在/_nodes
API输出中,您看到的是私有IP,而不是公共IP)。具有嗅探功能的客户端开始轮询,获取节点列表并尝试连接到专用IP,但由于该节点无响应(甚至无法在客户端所在的网络中解决)而收到HTTP错误。因此,它标志着它已经死了并发展到另一个。当群集中没有其他节点时,它将报告no active connection found: no Elasticsearch node available
。
要在客户端禁用嗅探(并直接连接到指定节点-但没有任何弹性),您需要添加&sniff=false
到Elastic URL。
可以这样进行连接:
config, _ := config.Parse("http://user:pwd@host:port/index&sniff=false")
client, _ := elastic.NewClientFromConfig(config)
问题内容: 我只是不明白发生了什么。我的go应用程序无法连接到弹性搜索。该节点可用,已启动并正在运行。我在这里做错了什么? 这里有什么不对的地方?错误说 这是我在浏览器中命中GET请求时从弹性搜索返回的数据 } 问题答案: 当您继续在客户端中进行嗅探但群集没有可用节点时,通常会发生错误。您可以通过点击来检查集群的状态。 如果您不禁用嗅探功能,则Golang客户端将在后台运行进程,该进程每15分钟轮
我正在尝试使用Kubernetes 1.7.12 fluentd elasticsearch插件:https://github.com/kubernetes/kubernetes/tree/v1.7.12/cluster/addons/fluentd-elasticsearch ElasticSearch启动并可以响应: 但Kibana仍然无法连接到它。连接错误始于: ElasticSearch启
我试图在Spring MVC应用程序中配置ElasticSearch存储库。我使用Spring Data ElasticSearch版本:2.0.7和ElasticSearch Server 2.4.4。 我确信ElasticNode可以工作,下面是示例输出 这是我的测试配置 我得到的错误,应用程序无法连接到弹性节点,堆栈跟踪 我试图从1.7.1, 2.4.4和5.2.1更改弹性搜索节点的版本。没
麋鹿堆叠码头工人的新手。 正在尝试在docker中本地设置麋鹿设置。 使用的命令是 ElasticSeach是向上和http://localhost:9200/是给json响应。 但是kibana url(http://localhost:5601/)说“Kibana服务器还没有准备好”,请求在浏览器中继续旋转。 在查询docker容器时,它说, 编辑调查结果:- 1.最初是命令 立即给出空洞的回
问题内容: 连接elasticsearch连接时出现此问题。 问题答案: 我知道这个问题已经很久了,但是我想分享一下如何解决这个问题。 如果您在本地使用elasticsearch 您必须做的第一件事是在计算机上运行elasticsearch。 因为上面的消息表明您不在本地运行elasticsearch。 因此,请访问链接并按照指示进行操作。 Docker环境 这里变得更加棘手。 首先,请按照此处的
问题内容: 我已经在RHEL7上安装了ES 7.5和Kibana 7.5,但是在启动Kibana并检查UI后,我看到了错误,“ Kibana服务器尚未准备好。” 检查Kibana日志,我发现它没有正确连接到ES。任何帮助表示赞赏! 这是 journalctl –unit kibana 的输出: Elasticsearch.yml Kibana.yml 另外,当我运行 ss -tunlp | gre