1、下载文件 Elasticsearch
前往 https://www.elastic.co/cn/downloads/elasticsearch 下载,选择版本 7.8.0
2、安装 IK 分词器插件
https://github.com/medcl/elasticsearch-analysis-ik
3、解压 elasticsearch-7.8.0-linux-x86_64.tar.gz
tar -zxvf elasticsearch-7.8.0-linux-x86_64.tar.gz
4、在 elasticsearch-7.8.0 下创建插件文件夹
mkdir -p elasticsearch-7.8.0/plugins/ik
5、解压 elasticsearch-analysis-ik-7.8.0.tar.gz
tar -zxvf elasticsearch-analysis-ik-7.8.0.tar.gz -C elasticsearch-7.8.0/plugins/ik/ # ik 文件夹中只要内容
6、创建Elasticsearch 账号
groupadd es useradd es -g es -p es chown -R es:es elasticsearch-7.8.0 su es # 登录Elasticsearch 账号,不登录可能有权限错误
7、创建索引和设置 mapping
curl -X PUT "localhost:9200/works/_mapping" -H 'Content-Type: application/json' -d' { "properties": { "title": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word" }, "keywords": { "type": "text", "analyzer": "ik_max_word", "search_analyzer": "ik_max_word" } } } '
8、下载 Logstash
前往 https://www.elastic.co/cn/downloads/logstash 下载,选择版本 7.8.0
9、下载 MySQL Connector/J
前往 https://downloads.mysql.com/archives/c-j 下载,选择版本 5.1.48
10、配置 Logstash
添加 SQL 文件:config/works.sql
SELECT w.id, w.categoryId, w.categorySceneId, w.title, wr.alpha, wr.looped, wr.aspectRatio, u.designer, u.enterprise, w.enable, w.original, w.recommended, w.sort, (SELECT GROUP_CONCAT(k.word SEPARATOR ' ') FROM workkeyword wk JOIN keyword k ON k.id = wk.keywordId WHERE wk.workId = w.id) AS keywords FROM work w JOIN workresource wr ON w.workResourceId = wr.id JOIN registereduser u ON u.id = w.userId
11、添加配置文件:config/logstash.conf,内容为:
# 每分钟从数据库同步一次数据到 ES input { jdbc { jdbc_driver_library => "/mnt/elk/mysql-connector-java-5.1.48/mysql-connector-java-5.1.48.jar" jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=utf-8&useSSL=false" jdbc_user => "root" jdbc_password => "root" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_paging_enabled => "true" jdbc_page_size => "50000" jdbc_default_timezone => "Asia/Shanghai" statement_filepath => "./config/works.sql" schedule => "* * * * *" type => "jdbc" } } output { elasticsearch { hosts => ["http://localhost:9200"] index => "stcoool-works" document_id => "%{id}" } }
12、运行 ./bin/logstash -f config/logstash.conf 启动