一. es安装
1.docker镜像下载
docker pull elasticsearch:7.3.0
2.启动
docker run -di --name=test_elasticsearch -p 9200:9200 -p 9300:9300 elasticsearch:7.3.0
test_elasticsearch 为es容器的名字,可以随便定义。
3.查看
docker PS
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0551cce33703 docker.io/canal/canal-server "/alidata/bin/main..." 29 hours ago Up 25 hours 2222/tcp, 8000/tcp, 11112/tcp, 0.0.0.0:11111->11111/tcp canal
894b2c4f4850 redis "docker-entrypoint..." 35 hours ago Up 35 hours 0.0.0.0:6379->6379/tcp redis
7f1706f57195 morunchang/fastdfs "sh storage.sh" 3 days ago Up 36 hours storage
1085eeff07d0 morunchang/fastdfs "sh tracker.sh" 3 days ago Up 36 hours tracker
发现没有。。。
4.查看启动日志
docker logs -f test_elasticsearch
或者 :docker logs -f -t --tail 1000 shop_es :查询shop_es最新1000条日志
仔细找,有如下报错信息:
max virtual memory areas vm.max_map_count [65530] likely too low, increase to at least [262144]
意思就是es所需的内存至少需要262144,所以执行下面命令设置;
sysctl -w vm.max_map_count=262144
执行完重启,如果还报下面的错
ERROR: [1] bootstrap checks failed
[1]: the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured
大意就是:必须配置[discovery.seed_hosts,discovery.seed_providers,cluster.initial_master_nodes]中的至少一个。
执行命令:
docker run -d -e ES_JAVA_POTS="-Xms256m -Xmx256m" -e "discovery.type=single-node" -p 9200:9200 -p
9300:9300 --name test_elasticsearch bdaab402b220
最后一个字符串 bdaab402b220主要改成自己es容器的id。
浏览器或post访问:成功!
上面jvm内存是在启东时设置的,但是每次启动都得设置,也可以更改配置文件,可以一劳永逸,步骤如下;
1.进入es容器
docker exec shop_es -it /bin/bash
执行命令如下图;
2. 进入config文件夹
cd config
config文件如下:
有个jvm.options文件
3.编辑jvm.options文件
上图两个参数根据自己电脑内存配置,即可。重启。
二. ik分词器安装
ik下载地址:
https://github.com/medcl/elasticsearch-analysis-ik/releases
下载zip后,上传到任意一个文件,并解压,可以更改文件名字,我这里改为了 ik,如下图:
然后将解压后的文件复制到docker容器中的es配置文件中
docker cp ./ik changgou_elasticsearch:/usr/share/elasticsearch/plugins
重启es,postman请求:
三。安装Kibana
1.下载镜像
docker pull docker.io/kibana:5.6.8
2.安装kibana容器
docker run -it -d -e ELASTICSEARCH_URL=http://[es的ip]:9200 --name kibana --restart=always -p 5601:5601 kibana:5.6.8
3.浏览器输入 ip + 端口,例如127.0.0.1;5601,显示页面如下:
由于es和Kibana版本不兼容,上面出现了两个警告。更换版本,同样的安装方式即可。
注:安装kibana7.3.0如果出现以下报错:
翻译过来就是;[warning] [license] [xpack]无法从Elasticsearch的[data]集群获得X-Pack插件的许可信息。 错误:无活动连接
解决步骤:
1。修改 进入到es,修改elsaticsearch.yml 文件,文件末尾增加下面代码:
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
已经有的就不用增加了,然后重启:
浏览器访问es,出现下图,需要用户名密码:不用管
2.修改es密码,进入到es的bin文件下:有下面这些文件:
3.在bin文件夹下执行命令:
./elasticsearch-setup-passwords interactive
出现下面提示:
先输入y,冒号后面输入同一个密码,知道系统自动结束。
4.重启es,浏览器访问输入用户名密码,可以访问es,用户名默认为 kibana,密码为用户输入的密码。
5.开始修改kibana。
5.1: 进入kibana容器
docker exec -it kibana /bin/bash
5.2 查看文件: ls
有下面文件:
进入到config文件夹下,有 kibana.yml文件
修改kibana.yml文件
在文件末尾增加两行:
elasticsearch.username: "kibana"
elasticsearch.password: "elastic"
密码就是登陆es的用户名密码。保存退出,重启
如果启动后浏览器访问还报下面的错:
或其他错误;
再修改kibana.yml文件
把默认的 elasticsearch.hosts: [ "http://elasticsearch:9200" ] 中的http://elasticsearch:9200 中的elasticsearch改为es的ip
再增加行:
xpack.security.encryptionKey: "122333444455555666666777777788888888"
xpack.reporting.encryptionKey: "122333444455555666666777777788888888"
最终,浏览器访问:
输入:kibana elastic 结果:
报错:
{"statusCode":403,"error":"Forbidden","message":"Forbidden"}
原因是不能使用kibana登陆kibana,要用elastis登陆;
使用 elastic elastic登陆后:
终于:
虽然不知道页面上是什么,但总觉得是对的。
折腾了两个小时,瞎折腾,但总归解决了。
另;es最终的配置文件:
http.host: 0.0.0.0
transport.host: 0.0.0.0
http.cors.enabled: true
http.cors.allow-origin: "*"
network.host: 106.13.83.184
http.cors.allow-headers: Authorization
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
四.安装elasticsearch-head
1.使用docker安装,拉取镜像:
docker pull mobz/elasticsearch-head:5
2.查看镜像:docker images