一. Elasticsearch安装
1. 创建网络esnetwork
$ docker network create esnetwork
2. elasticsearch安装:
$ docker run -d --name elasticsearch --net esnetwork -p 9200:9200 -p 9300:9300 -e "discovery.type=single-node elasticsearch-ik:1.0
3. 为了方便使用docker安装,没有做数据持久化
##todo:数据持久化
4. 安装分词(注意版本)
./bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.1.1/ elasticsearch-analysis-ik-7.1.1.zip
5. 在elasticsearch服务器配置文件种增加一下内容,避免跨域访问不到页面
$ http.cors.enabled: true
$ http.cors.allow-origin:"*"
二. logstash安装
$ docker run -d--name=logstash--net esnetwork-p5044:5044 -V /data/lelastic/logstash:/usr/share/logstash -v
/data/lelastic/test.txt:/var/log/messages logstash:7.1.1
##为了省事把logstash文件都映射出来了,其实只需要映射:/usr/share/logstash/config即可
##必须安装logstash input jdbc
##安装/usr/share/logstash/mysql-connector-java-5.1.44.jar
三. Kibana安装
##kibana功能太多,用不了这么多暂时,我用Elasticvue操作
$ docker run -d--name=kibana --network=esnetwork --restart=alwavs -v /data/elastic/kibana/config:/usr/share/kibana/config -p 5601:5601 kibana:7.1.1
#Elasticvue: elasticsearch客户端、edge浏览器产检,对标es-head,感觉比es-head好用
四. 常用命令(待补充)
1. ES curl命令整理
$ curl -XPUT es.dev:9200/test_2001 #创建索引
$ curl -XDELETE es.dev:9200/test_2001 #删除索引
$ curl -XGET es.dev:9200/test_2001/_mapping #查看mapping结构
$ curl -XGET es.dev:9200/_cat/indices #查看所有索引
$ curl --user 用户:密码 -XGET IP:9200/索引名 #查看索引(阿里云)
$ curl -H "Content-Type: application/json" -XPUT http://es.dev:9200/idx_book?pretty -d '{mapping结构内容}' #创建mapping结构
#用可视化相关的工具会容易操作很多
五. ES5.4版本迁移到阿里云ES7版本
1. 首先导出相关索引的mapping结构
$ elasticdump --input=http://ip:9200/索引名 --output=索引名.json --type=mapping #导出
$ elasticdump --input=索引名.json --output http://ip:9200/索引名 --type=mapping #导入
2. 导出索引数据
$ elasticdump --input=http://ip:9200/索引名 --output=索引名.json --type=data --timeout=40000 --limit=1000 --support-big-int #导出数据
$ elasticdump --input=索引名.json --output=http://用户:密码@IP:9200/索引名 --type=data --timeout=40000 --limit=1000 --support-big-int #导入数据,阿里云需要用户密码认证
3. 涉及以下几个需要注意的地方
3.1 因为版本的差异过大,迁移mapping的时候,会发现丢失分词,以及导入mapping的时候提示导入成功,查询却不显示mapping结构,阿里云分词是ik_max_word_stemme,5.4版本我们用的是ik_max_word和 ik_smart这两种
3.2 首先需要导出mapping后手动修改mapping结构里的分词类型,没有可视化工具的前提下,会出现上面所说的导入mapping结构不显示问题,需要用命令去创建mapping结构 curl -H "Content-Type: application/json" -XPUT http://es.dev:9200/idx_book?pretty -d '{mapping结构内容}'
3.3 mapping结构创建成功的前提下再去导入数据,就不会出现数据对不上的问题