使用 Docker安装
安装ES
【先读官方文档!!!】
拉取镜像
docker pull elasticsearch:7.6.1
创建网络
docker network create elastic
加上内存限制启动 ES
docker run -d --name es01-test --net elastic -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node" -e ES_JAVA_OPTS="-Xms64m -Xmx512m" elasticsearch:7.6.1
安装Kibana
Kibana是一个针对Elasticsearch的开源分析及可视化平台,用来搜索、查看交互存储在Elasticsearch索引中的数据。使用Kibana,可以通过各种图表进行高级数据分析及展示。Kibana让海量数据更容易理解。它操作简单,基于浏览器的用户界面可以快速创建仪表板( dashboard ))实时显示Elasticsearch查询动态。设置Kibana非常简单。无需编码或者额外的基础架构,几分钟内就可以完成Kibana安装并启动Elasticsearch索引监测。
官网:https://www.elastic.co/cn/kibana
(汉化。只要在kibana.yml配置文件目录,在配置文件中修改为zh-CN)
启动 Kibana
docker pull kibana:7.6.1
docker run -d --name kib01-test --net elastic -p 5601:5601 -e "ELASTICSEARCH_HOSTS=http://es01-test:9200" kibana:7.6.1
启动完成后,开放防火墙端口,查看是否可用访问!!!注意kibana启动会很慢而且很占CPU,我就是几次都是CPU满了,吓得我赶紧找问题…
开放防火墙的指定端口 firewall-cmd --zone=public --add-port=9200/tcp --permanent
firewall-cmd --zone=public --add-port=5601/tcp --permanent
重启防火墙 firewall-cmd --reload
配置密码访问ES
修改Elastic配置
使用基本许可证时,默认情况下禁用Elasticsearch安全功能。由于我测试环境是放在公网上的,所以需要设置下密码访问。相关文档可以参考这里
1、进入正在运行的容器
docker exec -it 容器id /bin/bash
yum -y install vim
[root@5c43a5b9d09a elasticsearch]
LICENSE.txt README.asciidoc config jdk logs plugins
NOTICE.txt bin data lib modules
2、更改 config/elasticsearch.yml 文件,设置 xpack.security.enabled 为 true
[root@06c5914709a5 config]
[root@06c5914709a5 config]
cluster.name: "docker-cluster"
network.host: 0.0.0.0
xpack.security.enabled: true
http.cors.enabled: true
http.cors.allow-origin: "*"
3、重启elasticsearch容器
[root@VM-0-6-centos z-test]
es01-test
4、进入容器设置各个组件的密码
[root@06c5914709a5 elasticsearch]
Initiating the setup of passwords for reserved users elastic,apm_system,kibana,logstash_system,beats_system,remote_monitoring_user.
You will be prompted to enter passwords as the process progresses.
Please confirm that you would like to continue [y/N]y
Enter password for [elastic]:
Reenter password for [elastic]:
Enter password for [apm_system]:
Reenter password for [apm_system]:
Enter password for [kibana]:
Reenter password for [kibana]:
Enter password for [logstash_system]:
Reenter password for [logstash_system]:
Enter password for [beats_system]:
Reenter password for [beats_system]:
Enter password for [remote_monitoring_user]:
Reenter password for [remote_monitoring_user]:
Changed password for user [apm_system]
Changed password for user [kibana]
Changed password for user [logstash_system]
Changed password for user [beats_system]
Changed password for user [remote_monitoring_user]
Changed password for user [elastic]
修改 Kibana 配置
1、修改 kibana.yml (find / -name kibana.yml)
进入容器docker exec -it 容器id /bin/bash 并进入config目录cd config
添加最后两行配置用户和密码
bash-4.2$ vi kibana.yml
bash-4.2$ cat kibana.yml
server.name: kibana
server.host: "0"
elasticsearch.hosts: [ "http://elasticsearch:9200" ]
xpack.monitoring.ui.container.elasticsearch.enabled: true
elasticsearch.username: "elastic"
2、创建kibana keystore
./bin/kibana-keystore create
3、在kibana keystore 中添加密码,并输入自己刚刚配置的ES密码
./bin/kibana-keystore add elasticsearch.password
4、重启容器
[root@VM-0-6-centos /]
kib01-test
再次访问:ip:9200 ,则需要输入账号和密码
账号为:elastic
安装IK分词器插件
分词:即把一段中文或者别的划分成一个个的关键字,我们在搜索时候会把自己的信息进行分词,会把数据库中或者索引库中的数据进行分词,然后进行一个匹配操作,默认的中文分词是将每个字看成一个词,比如“我爱中国"会被分为"我" “爱”“中”“国”,这显然是不符合要求的,所以我们需要安装中文分词器ik来解决这个问题。
IK提供了两个分词算法: ik_smart和ik_max_word,其中 ik_smart为最少切分,ik_max_word为最细粒度划分!
1、进入容器
docker exec -it 容器名 /bin/bash
2、在线下载并安装
Ik分词器github链接:https://github.com/medcl/elasticsearch-analysis-ik/releases/
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.6.1/elasticsearch-analysis-ik-7.6.1.zip
3、退出容器并重启ES
exit 或者 Ctrl + Q + P
docker restart 容器id
使用:
-
ik_smart最小切分 {
"tokens" : [
{
"token" : "中国共产党",
"start_offset" : 0,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 0
}
]
}
-
ik_max_word最细力度划分,穷尽所有词。 {
"tokens" : [
{
"token" : "中国共产党",
"start_offset" : 0,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 0
},
{
"token" : "中国",
"start_offset" : 0,
"end_offset" : 2,
"type" : "CN_WORD",
"position" : 1
},
{
"token" : "国共",
"start_offset" : 1,
"end_offset" : 3,
"type" : "CN_WORD",
"position" : 2
},
{
"token" : "共产党",
"start_offset" : 2,
"end_offset" : 5,
"type" : "CN_WORD",
"position" : 3
},
{
"token" : "共产",
"start_offset" : 2,
"end_offset" : 4,
"type" : "CN_WORD",
"position" : 4
},
{
"token" : "党",
"start_offset" : 4,
"end_offset" : 5,
"type" : "CN_CHAR",
"position" : 5
}
]
}
注意自己需要的词,要加进到字典中。
|