【问题标题】:Elasticsearch GET / is returning HTML error instead of JSON responseElasticsearch GET / 返回 HTML 错误而不是 JSON 响应
【发布时间】:2020-11-25 16:52:21
【问题描述】:

我最近在 RHEL 上安装了 Elasticsearch,并在配置文件中设置了节点名称。后来,我使用sudo systemctl start elasticsearch.service启动了服务,服务似乎按照状态命令运行

 sudo systemctl status elasticsearch.service
● elasticsearch.service - Elasticsearch
   Loaded: loaded (/usr/lib/systemd/system/elasticsearch.service; enabled; vendor preset: disabled)
   Active: active (running) since Wed 2020-11-25 14:59:13 CET; 2h 37min ago
     Docs: https://www.elastic.co
 Main PID: 6565 (java)
   CGroup: /system.slice/elasticsearch.service
           ├─6565 /usr/share/elasticsearch/jdk/bin/java -Xshare:auto -Des.networkaddress.cache.ttl=60 -Des.networkaddress.cache.negative.ttl=10 -XX:+AlwaysPreTouch -Xss1m -Djava.awt.headless=t...
           └─6754 /usr/share/elasticsearch/modules/x-pack-ml/platform/linux-x86_64/bin/controller
Nov 25 14:59:05 hdm18 systemd[1]: Starting Elasticsearch...
Nov 25 14:59:13 hdm18 systemd[1]: Started Elasticsearch.

但是 GET 的输出返回的是 HTML 页面而不是 JSON 消息

curl -X GET "localhost:9200/?pretty"
<!-- IE friendly error message walkround.        
     if error message from server is less than   
     512 bytes IE v5+ will use its own error     
     message instead of the one returned by      
     server.                                 --> 
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <meta
    enter code here

知道我做错了什么吗?

【问题讨论】:

  • 你有机会看我的回答吗??如果您需要更多信息,请联系我

标签: elasticsearch elastic-stack


【解决方案1】:

我相信你从this官方链接复制了你的命令,但是如果你复制curl命令它会像curl -X GET "localhost:9200/?pretty".

以上将在正确的输出下方打印。

{
  "name" : "Opster",
  "cluster_name" : "es_710",
  "cluster_uuid" : "SZ-nvW_KSOaudmfB6e0oFg",
  "version" : {
    "number" : "7.10.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "51e9d6f22758d0374a0f3f5c6e8f3a7997850f96",
    "build_date" : "2020-11-09T21:30:33.964949Z",
    "build_snapshot" : false,
    "lucene_version" : "8.7.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

【讨论】:

  • curl -X GET "localhost:9200/?pretty" 的输出也是一样的。如使用lsof -i :9200 命令所示,Elasticsearch java 应用程序正在侦听端口 9200。我不确定可能是什么问题
  • @AmarjitSingh 你能显示lsof -i :9200 命令的输出吗??
【解决方案2】:

通过使用取消设置 http 和 https 代理解决此问题

unset http_proxy
unset https_proxy

【讨论】:

    【解决方案3】:

    当您看起来像是在尝试使用 curl 时,您正在使用 Kibana 开发控制台语法。查看教程时检查 curl 语法。

    对你来说最简单的可能是在 kibana 中使用开发控制台。

    【讨论】:

    • 我什至还没有设置/安装 Kibana。我所做的就是安装 ElasticSearch 并尝试使用 curl -X GET "localhost:9200/?pretty" curl 命令获取输出以检查它是否安装正确。
    猜你喜欢
    • 1970-01-01
    • 2014-06-06
    • 2021-10-19
    • 2014-11-03
    • 1970-01-01
    • 1970-01-01
    • 2018-03-03
    • 1970-01-01
    • 2018-10-29
    相关资源
    最近更新 更多