Elasticsearch
是开源的搜索引擎,基于Lucence
开发,属于ELK
套件中的一员。ELK=Elasticsearch、Logstash、Kibana
是以Elasticsearch
为核心的搜索、日志搜集,可视化工具套件。
下载按照ES
下载ES
下载地址:https://www.elastic.co/cn/downloads/elasticsearch
文档地址:https://www.elastic.co/guide/en/elasticsearch/reference/current/index.html
选择对应的系统平台,比如Windows
版
实际地址:https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-8.5.2-windows-x86_64.zip
下载后可以启动ES了,不过要注意,默认情况是有安全性的。
启动ES
解压Elasticsearch
相关文件,然后找到elasticsearch-8.5.2binelasticsearch.bat
文件双击启动即可。
ES8
之后推荐用内嵌的JDK
,不用外部的JDK
。当然也可以配置成使用外部JDK
warning: ignoring JAVA_HOME=C:softsJavajdk11.0.9.1+1; using bundled JDK
启动前最好修改一下config/jvm.options
信息,根据实际调整堆内存,默认使用8G
内存,本地测试太耗资源。
-Xms2G
-Xmx2G
-Dfile.encoding=GBK
默认启用了安全性,如果要关闭安全性需要修改config/elasticsearch.yml
中的xpack.security.enabled: false
如果要外部能访问到Elasticsearch
,需要配置监听IP
,默认只能本机访问
network.host: 0.0.0.0
下面的信息可以记录下来后面使用,包含用户信息,Token
等,本地如果删除data
目录,重新启动会有新的生成。
-> Elasticsearch security features have been automatically configured!
-> Authentication is enabled and cluster connections are encrypted.-> Password for the elastic user (reset with
bin/elasticsearch-reset-password -u elastic
):
=1WTz10-uoo65zP0qDkP-> HTTP CA certificate SHA-256 fingerprint:
2395cdb0521b9832270c3ce4c14cb39ae1ccae9ae7e3a34394dccbbe8487c58e-> Configure Kibana to use this cluster:
- Run Kibana and click the configuration link in the terminal when Kibana starts.
- Copy the following enrollment token and paste it into Kibana in your browser (valid for the next 30 minutes):
eyJ2ZXIiOiI4LjUuMiIsImFkciI6WyIxMC4xODEuMy4xNTI6OTIwMCJdLCJmZ3IiOiIyMzk1Y2RiMDUyMWI5ODMyMjcwYzNjZTRjMTRjYjM5YWUxY2NhZTlhZTdlM2EzNDM5NGRjY2JiZTg0ODdjNThlIiwia2
l0dHlUQTJYUnpqeTR0czM0dyJ9-> Configure other nodes to join this cluster:
- On this node:
- Create an enrollment token with
bin/elasticsearch-create-enrollment-token -s node
.- Uncomment the transport.host setting at the end of config/elasticsearch.yml.
- Restart Elasticsearch.
- On other nodes:
- Start Elasticsearch with
bin/elasticsearch --enrollment-token <token>
, using the enrollment token that you generated.
默认的账号和密码在日志中:
用户名:elastic
,密码:=1WTz10-uoo65zP0qDkP
浏览器访问ES
使用浏览器访问:https://localhost:9200
因为有安全性,会弹出Basic的认证窗口
输入后可以看到服务器信息的json,表示就对了:
{
"name" : "10390-SDIT",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "pmYKiFFBRQGuobOA23iupQ",
"version" : {
"number" : "8.5.2",
"build_flavor" : "default",
"build_type" : "zip",
"build_hash" : "a846182fa16b4ebfcc89aa3c11a11fd5adf3de04",
"build_date" : "2022-11-17T18:56:17.538630285Z",
"build_snapshot" : false,
"lucene_version" : "9.4.1",
"minimum_wire_compatibility_version" : "7.17.0",
"minimum_index_compatibility_version" : "7.0.0"
},
"tagline" : "You Know, for Search"
}
修改密码
按照日志中提示,可以用命令修改密码,应该是要在启动服务的情况下使用:
按照用户设置密码
按照用户设置密码,elastic
是超级用户
重置密码(自动生成):elasticsearch-reset-password.bat -u elastic
修改密码(手动修改):elasticsearch-reset-password.bat -u elastic -i
设置内部用户密码
es内置用户用于特定的管理目的用户:apm_system、beats_system、elastic、kibana、logstash_system 、remote_monitoring_user,在使用它们之前,我们必须为它们设置密码。
https://www.elastic.co/guide/en/elasticsearch/reference/8.5/setup-passwords.html
elasticsearch-setup-passwords即将要废弃,以后要使用elasticsearch-reset-password、ES自带API修改密码、或者用Kibana修改
注意:一旦设置过elastic用户的密码之后,这种设置内部用户密码的功能将不能使用了
自动设置:elasticsearch-setup-passwords.bat auto
手动设置:elasticsearch-setup-passwords.bat interactive
Kibana访问ES
下载安装
下载Kibana:https://www.elastic.co/cn/downloads/kibana
文档地址:https://www.elastic.co/guide/en/kibana/current/install.html
Kibana
因为使用Node.js
开发,目前已经不能在Windows7
上运行,放到一台更高版本操作系统上运行,Windows7
不支持高版本的Node.js
修改kibana.yml
,配置Elasticsearch
地址等信息,需要使用kibana
用户
server.port: 5601
# 监听端口,默认本机localhost,不能通过其他机器访问
server.host: "0.0.0.0"
#es地址
elasticsearch.hosts: ["https://localhost:9200"]
# 用户名
elasticsearch.username: "kibana"
# 密码
elasticsearch.password: "12345678"
# 语言
i18n.locale: "zh-CN"
elasticsearch.ssl.verificationMode: none
解压后进入文件夹,启动Kibana
:
启动:bin/kibana.bat
访问Kibana
目前测试用kibana
用户登录没有权限,要用elastic
用户登录
登录kibana
账号没有权限:
登录elastic
账号成功:
常见问题
Windows下Elasticsearch控制台乱码
修改config/jvm.options
文件
增加一行:-Dfile.encoding=GBK
Windows7不支持Kibana
Windows7
下运行会报错,就算配置NODE_SKIP_PLATFORM_CHECK=1
以后也会有其他错误,似乎只能用更高版本的系统来运行Kibana
,或者换Linux
E:New2022kibana-8.5.3bin>kibana.bat
Node.js is only supported on Windows 8.1, Windows Server 2012 R2, or higher.
Setting the NODE_SKIP_PLATFORM_CHECK environment variable to 1 skips this
check, but Node.js might not execute correctly. Any issues encountered on
unsupported platforms will not be fixed.
不能设置内部密码
设置内部密码时报错,其实就是手动或者重置过elastic
的密码的就不能在使用此命令
E:New2022elasticsearch-8.5.2bin>elasticsearch-setup-passwords.bat interactive
warning: ignoring JAVA_HOME=C:softsJavajdk11.0.9.1+1; using bundled JDKFailed to authenticate user 'elastic' against https://10.181.3.152:9200/_security/_authenticate?pretty
Possible causes include:
- The password for the 'elastic' user has already been changed on this cluster
- Your elasticsearch node is running against a different keystore
This tool used the keystore at E:New2022elasticsearch-8.5.2configelasticsearch.keystoreYou can use the
elasticsearch-reset-password
CLI tool to reset the password of the 'elastic' userERROR: Failed to verify bootstrap password
删除/data
目录应该可以重新设置。
不过建议用elasticsearch-reset-password -u kibana -i
等命令替代。
参考说明:https://www.elastic.co/guide/en/elasticsearch/reference/8.5/setup-passwords.html
elasticsearch-setup-passwords即将要废弃,以后要使用elasticsearch-reset-password、ES自带API修改密码、或者用Kibana修改
Kibana启动错误
Unable to retrieve version information from Elasticsearch nodes. self signed certificate in certificate chain
外部的Kibana
访问可能会出现这个错误,应该证书验证问题。
配置kibana.yml
中的,不验证ssl
证书:
elasticsearch.ssl.verificationMode: none