跳到主要内容

Elasticsearch 命令行工具

Elasticsearch 是一个强大的分布式搜索引擎,广泛用于日志分析、全文搜索和数据可视化等场景。除了通过 REST API 与 Elasticsearch 交互外,Elasticsearch 还提供了一些命令行工具,帮助开发者和运维人员更方便地管理和操作 Elasticsearch 集群。本文将介绍 Elasticsearch 中常用的命令行工具及其使用方法。


1. 什么是 Elasticsearch 命令行工具?

Elasticsearch 命令行工具是 Elasticsearch 提供的一组实用程序,用于执行各种管理任务,例如启动 Elasticsearch 节点、管理密钥库、检查集群健康状态等。这些工具通常以命令行的形式运行,适合在服务器环境中使用。

常用的命令行工具包括:

  • elasticsearch:用于启动 Elasticsearch 节点。
  • elasticsearch-keystore:用于管理 Elasticsearch 的密钥库。
  • elasticsearch-plugin:用于安装和管理 Elasticsearch 插件。
  • elasticsearch-shard:用于管理分片(shard)的工具。

2. 使用 elasticsearch 启动 Elasticsearch 节点

elasticsearch 是 Elasticsearch 的核心命令行工具,用于启动 Elasticsearch 节点。以下是启动 Elasticsearch 的基本命令:

bash
./bin/elasticsearch

示例:启动 Elasticsearch 并指定配置文件

如果你需要指定自定义的配置文件,可以使用 -E 参数:

bash
./bin/elasticsearch -Epath.data=/custom/data/path -Epath.logs=/custom/logs/path

输出示例

启动成功后,你会在终端看到类似以下的输出:

[2023-10-01T12:00:00,000][INFO ][o.e.n.Node               ] [node-1] version[8.10.0], pid[12345], build[default/zip/abc123/2023-09-30T12:00:00.000Z], OS[Linux/5.4.0-42-generic/amd64], JVM[AdoptOpenJDK/OpenJDK 64-Bit Server VM/15.0.1/15.0.1+9]
[2023-10-01T12:00:01,000][INFO ][o.e.n.Node ] [node-1] initialized
[2023-10-01T12:00:02,000][INFO ][o.e.n.Node ] [node-1] starting ...
[2023-10-01T12:00:03,000][INFO ][o.e.t.TransportService ] [node-1] publish_address {127.0.0.1:9300}, bound_addresses {[::1]:9300}, {127.0.0.1:9300}
[2023-10-01T12:00:04,000][INFO ][o.e.h.HttpServer ] [node-1] publish_address {127.0.0.1:9200}, bound_addresses {[::1]:9200}, {127.0.0.1:9200}
[2023-10-01T12:00:05,000][INFO ][o.e.n.Node ] [node-1] started
提示

如果需要在后台运行 Elasticsearch,可以使用 -d 参数:

bash
./bin/elasticsearch -d

3. 使用 elasticsearch-keystore 管理密钥库

elasticsearch-keystore 是用于管理 Elasticsearch 密钥库的工具。密钥库用于存储敏感信息,例如密码、API 密钥等。

创建密钥库

首先,你需要创建一个新的密钥库:

bash
./bin/elasticsearch-keystore create

添加密钥

你可以使用以下命令将密钥添加到密钥库中:

bash
./bin/elasticsearch-keystore add my.secret.key

系统会提示你输入密钥的值。

列出密钥

要查看密钥库中的所有密钥,可以使用以下命令:

bash
./bin/elasticsearch-keystore list

输出示例

bash
my.secret.key
警告

密钥库中的密钥是加密存储的,但请确保密钥库文件(elasticsearch.keystore)的安全,避免泄露。


4. 使用 elasticsearch-plugin 管理插件

elasticsearch-plugin 是用于安装和管理 Elasticsearch 插件的工具。

安装插件

以下命令用于安装一个插件:

bash
./bin/elasticsearch-plugin install analysis-icu

列出已安装的插件

要查看当前安装的所有插件,可以使用以下命令:

bash
./bin/elasticsearch-plugin list

输出示例

bash
analysis-icu

卸载插件

如果需要卸载插件,可以使用以下命令:

bash
./bin/elasticsearch-plugin remove analysis-icu

5. 实际案例:使用命令行工具管理 Elasticsearch 集群

假设你需要在一个生产环境中管理 Elasticsearch 集群,以下是可能的工作流程:

  1. 启动 Elasticsearch 节点

    bash
    ./bin/elasticsearch -d
  2. 添加敏感信息到密钥库

    bash
    ./bin/elasticsearch-keystore add s3.client.default.access_key
  3. 安装必要的插件

    bash
    ./bin/elasticsearch-plugin install repository-s3
  4. 检查集群健康状态: 使用 curl 命令通过 REST API 检查集群健康状态:

    bash
    curl -X GET "localhost:9200/_cluster/health?pretty"

6. 总结

Elasticsearch 命令行工具是管理和操作 Elasticsearch 集群的重要工具。通过本文,你学习了如何使用 elasticsearch 启动节点、使用 elasticsearch-keystore 管理密钥库、以及使用 elasticsearch-plugin 安装和管理插件。这些工具可以帮助你更高效地管理 Elasticsearch 集群。


7. 附加资源与练习

  • 官方文档:阅读 Elasticsearch 官方文档 以了解更多命令行工具的详细信息。
  • 练习:尝试在你的本地环境中安装 Elasticsearch,并使用命令行工具启动节点、安装插件和管理密钥库。
  • 进阶:探索如何使用 elasticsearch-shard 工具管理分片,并了解其在实际场景中的应用。
备注

如果你在操作过程中遇到问题,可以参考官方文档或社区论坛获取帮助。