使用.zip在Windows系统安装Elasticsearch
Elasticsearch可以用的Windows的.zip归档文件来安装。归档文件中的elasticsearch-service.bat会将Elasticsearch作为一个服务运行起来。
文件即包含免费、订阅的功能。可以通过30天免费使用来尝试所有的功能。
Windows上的Elasticsearch的机器学习特性需要Microsoft Universal C Runtime library。这个包内嵌于Windows10、Windows Server 2016和一些最近版本的Windows系统。对于一些老版本的Windows系统,可以通过升级Windows系统或者单独下载来安装这个包。如果你不想使用机器学习这个功能,就可以不安装这个包,并且还可以使用Elasticsearch的其他功能。
可以通过这个Elasticsearch下载页面来获取最新稳定版本的Elasticsearch。Elasticsearch的其他版本可以通过历史发布页面获取。
Elasticsearch包含JDK维护团队的绑定版本的OpenJDK。如果想使用指定版本的Java,请参考JVM版本要求。
下载并安装.zip文件包
可以通过这个链接,下载Elasticsearch8.6.0的安装包。
1 | https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.6.0-windows-x86_64.zip |
用你喜欢解压工具来解压它。然后会创建一个叫elasticsearch-8.6.0
文件夹,我们会将这个文件夹认为是ES_HOME
。在windows的命令行下,进入ES_HOME
文件夹下,比如:
1 | cd C:\elasticsearch-8.6.0 |
允许自动创建系统索引
一些商业化版本的Elasticsearch会自动创建索引。默认情况下,Elasticsearch是通过配置来允许自动创建索引,不需要其他步骤。然而,如果你禁用了自动创建索引,你就必须在elasticsearch.yml中配置action.auto_create_index来允许商业特性来创建下列索引:
1 | action.auto_create_index: .monitoring*,.watches,.triggered_watches,.watcher-history*,.ml* |
注意:如果你使用Logstash或者Beats,那你可能还需要在action.auto_create_index配置中添加一些额外的索引名称,具体的索引名称是取决于你本地的配置。如果你不确定的话,你可以尝试配置成×来允许所有索引的自动创建。
通过命令行来运行Elasticsearch
在命令行中,运行下列命令来启动Elasticsearch:
1 | .\bin\elasticsearch.bat |
当Elasticsearch第一次运行时,安全特性将会被默认启用和配置。下列安全配置将会自动发生:
- 开启认证授权,密码是由内置的超级管理员的elastic生成;
- 为传输层和HTTP层生成TLS的证书和密钥,并使用这些密钥和证书启用和配置TLS;
- 为Kibana生成一个注册令牌,有效期为30分钟;
elastic的密码和Kibana的注册令盘会被输出到你的命令行。比如:
1 | The generated password for the elastic built-in superuser is: |
如果你在Elasticsearch密码库使用了密码保护,你将会被提示输出密码库的密码。通过安全配置来获取更多信息。
默认情况下,Elasticsearch将日志输出的控制台和日志文件夹的<clustername>.log
文件。Elasticsearch会在启动的时候,记录一些信息;但在它完成初始化之后,它将继续在前台运行,直到发生值得记录的事情之前,它不会继续记录任何内容。在Elasticsearch运行的时候,你可以通过HTTP来与它进行交互,默认端口是9200。
按Ctrl+C
来停止Elasticsearch。
在现有的集群注册节点
当Elasticsearch第一次启动的时候,安全将自动配置将HTTP层绑定到0.0.0.0,但只将传输层绑定到本机。这种默认行为将保证在不需要任何配置的情况下,你也可以在单节点集群里使用安全功能。
在生产环境下, 注册新节点之前,还需要做一些额外操作。比如:绑定到特定的地址而不是localhost、完成一些初始化检查。在这段时间内,自动生产的准入令牌会过期,这就是为什么准入令牌不能自动生成。
此外,只有在同一个主机的节点才可以在不需要任何配置的情况下,加入集群。如果你想把其他主机上的结点加入到你的集群,你需要设置transport.host为支持的值(比如上面提高的0.0.0.0),或者是集群可以访问的其他ip地址。额外信息请参考交换设置。
为了把新结点加入到你的集群,你需要在集群的任意一个节点通过elasticsearch-create-enrollment-token
工具来获取准入令牌。然后你就可以使用--enrollment-token
将新节点加入到集群里。
1、在一个新的终端下,进入到你安装Elasticsearch的目录下,然后运行elasticsearch-create-enrollment-token工具来生成一个准入令牌:
1 | bin\elasticsearch-create-enrollment-token -s node |
复制准入令牌,这会在把新节点加入到Elasticsearch集群中用到。
2、在新节点的安装目录下,通过--enrollment-token
参数传入准入令牌,来启动Elasticsearch:
1 | bin\elasticsearch --enrollment-token <enrollment-token> |
Elasticsearch将会在下列文件夹下自动生成证书和密钥:
1 | config\certs |
3、重复上述步骤,可以把任何新节点加入到集群
在命令行下配置Elasticsearch
默认情况下,Elasticsearch从%ES_HOME%\config\elasticsearch.yml
文件加载配置信息。配置文件的格式信息解释在配置Elasticsearch。
配置文件的任何配置都可以通过命令行来指定,像下面一样使用-E
来配置:
1 | .\bin\elasticsearch.bat -Ecluster.name=my_cluster -Enode.name=node_1 |
note:包含空格的配置值必须要使用双引号包起来。比如:
-Epath.logs="C:\My Logs\logs"
tips:通常情况下,任何集群级别的配置(比如cluster.name)都应该在elasticsearch.yml上配置,而任何节点级别的配置(比如node.name)可以在命令行上指定
检查Elasticsearch是否在运行
你可以在你的Elasticsearch节点上通过发送HTTPS请求到本地的9200端口,来测试Elasticsearch是否在运行:
1 | curl --cacert %ES_HOME%\config\certs\http_ca.crt -u elastic https://localhost:9200 |
1、确保在你的调用中使用https,否则请求会失败。--cacert
:HTTP层面生成的http_ca.crt文件的路径。
输入在安装时生成的elastic用户的密码,返回的响应应该类似如下:
1 | { |
在Windows下,通过服务安装、运行Elasticsearch
你可以把Elasticsearch安装做成一个服务,这样你可以在后台运行,并且在重启后不需要用户交互的情况下,就会重启。
1、安装Elasticsearch服务。服务的名称和ES_JAVA_HOME
可以在安装时获取:
1 | C:\elasticsearch-8.6.0\bin>elasticsearch-service.bat install |
2、启动Elasticsearch服务。当Elasticsearch服务启动时,默认情况下,安全校验会启用:
1 | C:\elasticsearch-8.6.0\bin>bin\elasticsearch-service.bat start |
note:当你把Elasticsearch启用做成服务时,TLS不会被启用。
3、使用elasticsearch-reset-password来为elastic用户生成密码。密码将会被输出到下面命令行:
1 | C:\elasticsearch-8.6.0\bin>\bin\elasticsearch-reset-password -u elastic |
note: 尽量Elasticsearch服务也可以使用JRE,但是因为这是客户端的VM(而不是那些为了长期运行服务端、可以提供更好性能的JVM),因此并不建议使用JRE。
note:系统环境变量ES_JAVA_HOME
应该被设置成服务想使用的JDK安装位置。如果你升级JDK,还不想重新安装Elasticsearch服务,那你就必须将系统环境变量ES_JAVA_HOME
设置成新JDK安装的位置。然而,跨JVM类型的安装是不支持的,并且还需要在JDK安装后,重新安装Elasticsearch服务。
在Windows上,像服务一样管理Elasticsearch
在bin
文件夹下,在命令行下运行elasticsearch-service.bat
脚本来安装、删除、管理、配置、开启、关闭服务。
1 | C:\elasticsearch-8.6.0\bin>elasticsearch-service.bat |
在命令行执行时,脚本需要一个参数,在可选参数之后、表示该服务的id。(在安装多个Elasticsearch服务特别有用)
可使用的命令如下:
- install:安装Elasticsearch的服务
- remove:卸载安装的Elasticsearch服务。(在服务运行时,就会停止服务)
- start:启动Elasticsearch服务(如果已经安装的话)
- stop:停止Elasticsearch服务(如果已经运行的话)
- manager:开启一个用于管理已安装服务的GUI界面
https://www.elastic.co/guide/en/elasticsearch/reference/current/zip-windows.html