如何使用 CURL 检查 Elasticsearch 是否 运行?

How to check if Elasticsearch is running using CURL?

我已经将最新的 ElasticSearch 和 Kibana 下载到我的本地计算机 (Ubuntu 20)。

解压后,我执行bin/elasticsearch & bin/kibana.

执行成功,我可以在浏览器中正常打开kibana 运行 http://localhost:5601/

但是从 CLI,使用 CURL 命令无法到达 curl -XGET http://localhost:9200/`

document我已经关注了 写了一个命令来检查 elasticsearch 是否启动并且 运行.

curl --cacert $ES_PATH_CONF/tls_auto_config_<timestamp>/http_ca.crt -u elastic https://localhost:9200

但是我不明白什么是$ES_PATH_CONF/tls_auto_config_<timestamp>

有人可以帮我吗?

我的猜测是你没有安装任何证书,你可以简单地使用下面的命令。

curl -u elastic https://localhost:9200

我假设您已按照文档按照以下步骤在 Linux 上进行安装。

curl -L -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.0.1-linux-x86_64.tar.gz
tar -xzvf elasticsearch-8.0.1-linux-x86_64.tar.gz
cd elasticsearch-8.0.1
./bin/elasticsearch

按照这一步你必须在elasticsearch-8.0.1.

/elasticsearch-8.0.1 - ES_HOME 文件夹。
/elasticsearch-8.0.1/config - ES_PATH_CONF 文件夹。
/elasticsearch-8.0.1/config/certs/http_ca.crt - HTTP CA 证书。

首次启动 Elasticsearch 时,会为 elastic 用户生成密码,并自动为您配置 TLS。

在另一个终端 window 或选项卡中打开相同的路径。

因此您需要将 http_ca.crt 路径传递给 curl 命令,如下所示。

curl --cacert config/certs/http_ca.crt -u "elastic:password" https://localhost:9200

也可以设置环境变量。

export ES_HOME=/path-to-ES_HOME/elasticsearch-8.0.1
export ES_PATH_CONF=/path-to-ES_HOME/elasticsearch-8.0.1/config

在curl中可以直接使用环境变量

curl --cacert $ES_PATH_CONF/certs/http_ca.crt -u "elastic:password" https://localhost:9200

password 一定是在安装elasticsearch 的时候显示的。如果您没有注意到,您可以使用以下命令进行更改:

bin/elasticsearch-reset-password -u elastic

你可以在这里参考更多https://www.elastic.co/guide/en/elasticsearch/reference/current/targz.html#_check_that_elasticsearch_is_running