在使用 Elasticsearch 之前,首先要保证虚拟机或云服务器有足够的内存;
Elasticsearch 因其底层原理,非常吃内存;
1、docker 下载 Elasticsearch、kibana
docker pull elasticsearch:7.10.1
docker pull kibana:7.10.1
elasticsearch 和 kibana 的版本号一定要一致!
版本可以在 https://hub.docker.com/_/kibana?tab=tags&page=1 中查询
2、创建 elasticsearch 映射目录
mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
3、修改配置文件,让所有 ip 地址均可访问
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
4、创建、启动、映射目录文件
docker run --name es -p 9200:9200 -p 9300:9300 \
-e "discovery.type=single-node" \
-e ES_JAVA_OPTS="-Xms64m -Xmx256m" \
-v /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml \
-v /mydata/elasticsearch/data:/usr/share/elasticsearch/data \
-v /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins \
-d elasticsearch:7.10.1# 9200:用于发送 http 请求的端口号;# 9300:es 分布式情况下的通讯端口号;# -e "discovery.type=single-node":es 以单节点运行;# -e ES_JAVA_OPTS="-Xms64m -Xmx512m":设置 es 启动参数,不设置的话 es 会占用大量的内存空间;# -v 相关指令:config 映射配置文件;data 映射数据;plugins 映射 es 可以安装的插件;# -d elasticsearch:7.10.1:启动 es;
5、修改配置文件的权限
此时使用 docker ps -a 可以看到启动的 es 的状态为 Exited;
使用 docker logs es 查看日志:
ElasticsearchException[failed to bind service]; nested: AccessDeniedException[/usr/share/elasticsearch/data/nodes];
Likely root cause: java.nio.file.AccessDeniedException: /usr/share/elasticsearch/data/nodes
at java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:90)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
at java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
at java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:388)
at java.base/java.nio.file.Files.createDirectory(Files.java:694)
at java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:801)
at java.base/java.nio.file.Files.createDirectories(Files.java:787)
at org.elasticsearch.env.NodeEnvironment.lambda$new$0(NodeEnvironment.java:275)
at org.elasticsearch.env.NodeEnvironment$NodeLock.(NodeEnvironment.java:212)
at org.elasticsearch.env.NodeEnvironment.>(NodeEnvironment.java:272)
at org.elasticsearch.node.Node.>(Node.java:362)
at org.elasticsearch.node.Node.>(Node.java:289)
at org.elasticsearch.bootstrap.Bootstrap$5.(Bootstrap.java:227)
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:227)
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:393)
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:170)
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:161)
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86)
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:127)
at org.elasticsearch.cli.Command.main(Command.java:90)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:126)
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:92)
For complete error details, refer to the log at /usr/share/elasticsearch/logs/elasticsearch.log
错误说是访问的文件没有权限;
也就是映射出来的 /mydata/elasticsearch 中的文件没有权限;
使用下面的指令进行修改:
chmod -R 777 /mydata/elasticsearch
6、重新启动 es 容器
docker restart es
7、使用浏览器访问 es 的 9200 端口
使用浏览器访问 es 所在服务器的 9200 端口,如果出现下面的 json 字符串,表示 es 正常运行;
{
"name" : "5cc88f927be3",
"cluster_name" : "elasticsearch",
"cluster_uuid" : "pLcairiDSBO4OKL1wxhbLw",
"version" : {
"number" : "7.10.1",
"build_flavor" : "default",
"build_type" : "docker",
"build_hash" : "1c34507e66d7db1211f66f3513706fdf548736aa",
"build_date" : "2020-12-05T01:00:33.671820Z",
"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"
}
8、启动 kibnan
docker run --name kibana -e ELASTICSEARCH_HOSTS=http://172.17.0.1:9200 -p 5601:5601 -d kibana:7.10.1
注意,这里的 172.17.0.1 需要自行配置;
如果安装的 es 和 kibana 在同一台服务器上,使用 docker inspect es 查看 es 容器的 Gateway,填写对应的 ip 地址;
如果 es 和 kibana 不在同一个服务器,使用 es 所在服务器的 ip 地址替换 172.17.0.1;
9、使用浏览器访问服务器的 5601 端口
第一次安装的话,这个页面之前还有一个页面,我忘记截屏了;
Original: https://www.cnblogs.com/whatzyt/p/16131047.html
Author: whatzyt
Title: docker 安装 Elasticsearch + kibana
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/571714/
转载文章受原作者版权保护。转载请注明原作者出处!