博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
unbuntu下安装Elasticsrearch+logstash+elasticsearch-analysis-ik
阅读量:6226 次
发布时间:2019-06-21

本文共 4923 字,大约阅读时间需要 16 分钟。

hot3.png

1. 安装 elasticsearch

第一次使用的是 apt-get 的安装方式, 应该是软件源没设置为最新的, 结果安装的版本为1.7x的, 果断删除.

第二次直接将 elasticsearch 的 zip 包下载下来安装.

  1. wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.zip
  2. unzip elasticsearch-5.5.1.zip
  3. 配置. 将elasticsearch.ymlcluster.name 的注释打开, 可以自己根据情况修改名称. 将node.name注释打开. 如果需要非当前主机以外的 ip 可以访问则需要将 network.host的注释打开,并且将值修改为 0.0.0.0, 也可以指定几个固定的 ip 访问, 不同 ip 之间用,号隔开即可. 如果需要修改默认的端口,需要将http.port的注释打开,并且修改后面的值
  4. 配置完成以后就可以调用 bin 目录下的 elasticsearch 来启动了.

2. 安装 logstash

使用 logstashmysq 里的表数据自动同步到 elasticsearch

按照官方的文档给出的apt-get方式安装

  1. Download and install the Public Signing Key:

wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo apt-key add -

  1. You may need to install the apt-transport-https package on Debian before proceeding:

sudo apt-get install apt-transport-https

  1. Save the repository definition to /etc/apt/sources.list.d/elastic-5.x.list:

echo "deb https://artifacts.elastic.co/packages/5.x/apt stable main" | sudo tee -a /etc/apt/sources.list.d/elastic-5.x.list

  1. 最后就可以安装5.5.1版的 logstash 了

sudo apt-get update && sudo apt-get install logstash

3. 安装logstash的 jdbc 插件 logstash-input-jdbc

因为 logstash-input-jdbc 是使用 ruby 开发的, 所以要修改一下 gem 的源, 不然安装的过程中请求资源的时候会下不动, 因为有些依赖是放在亚马逊上了的.

  1. 修改 logstash 下的Gemfile 数据源
  1. 将 Gemfile 里的 source 值修改为 https://ruby.taobao.org
  1. 将 Gemfile.jruby-1.o.lock 下的第二个 remote 值修改为 https://ruby.taobao.org
  2. 安装 logstash-input-jdbc

进入到 logstash 的根目录下, 执行 bin/logstash-plugin install logstash-input-jdbc, 等待一会以后就会安装成功.

  1. 配置
  1. logstash 下创建文件夹, logstash_jdbc_xxx 根据自己需要建即可
  1. 下载mysql-connector-java-5.1.38.jar放到 刚创建的文件夹下
  2. 编写配置文件 jdbc.conf

jdbc.conf:

input{	stdin {	}	jdbc {		jdbc_connection_string => "jdbc:mysql://192.168.2.19:3306/survey_acquisition_faq"		jdbc_user => "xxx"		jdbc_password => "xxx"      		# the path to our downloaded jdbc driver      		jdbc_driver_library => "/usr/share/logstash/bin/logstash_jdbc_faq/mysql-connector-java-5.1.38.jar"     		 # the name of the driver class for mysql      		jdbc_driver_class => "com.mysql.jdbc.Driver"      		jdbc_paging_enabled => true      		jdbc_page_size => "50000"      		statement_filepath => "/usr/share/logstash/bin/logstash_jdbc_faq/sql/t_help_document.sql"      		schedule => "* * * * *"      		type => "faq_help_document"		record_last_run => true		use_column_value => true		tracking_column => "update_time"		clean_run => true	}	jdbc {                jdbc_connection_string => "jdbc:mysql://192.168.2.19:3306/survey_acquisition_faq"                jdbc_user => "xxx"                jdbc_password => "xxx"                # the path to our downloaded jdbc driver                jdbc_driver_library => "/usr/share/logstash/bin/logstash_jdbc_faq/mysql-connector-java-5.1.38.jar"                 # the name of the driver class for mysql                jdbc_driver_class => "com.mysql.jdbc.Driver"                jdbc_paging_enabled => true                jdbc_page_size => "50000"                statement_filepath => "/usr/share/logstash/bin/logstash_jdbc_faq/sql/t_question.sql"                schedule => "* * * * *"                type => "faq_help_question"                record_last_run => true                use_column_value => true                tracking_column => "update_time"		clean_run => true        }	jdbc {                jdbc_connection_string => "jdbc:mysql://192.168.2.19:3306/survey_acquisition_faq"                jdbc_user => "xxx"                jdbc_password => "xxx"                # the path to our downloaded jdbc driver                jdbc_driver_library => "/usr/share/logstash/bin/logstash_jdbc_faq/mysql-connector-java-5.1.38.jar"                 # the name of the driver class for mysql                jdbc_driver_class => "com.mysql.jdbc.Driver"                jdbc_paging_enabled => true                jdbc_page_size => "50000"                statement_filepath => "/usr/share/logstash/bin/logstash_jdbc_faq/sql/t_video.sql"                schedule => "* * * * *"                type => "faq_help_video"                record_last_run => true                use_column_value => true                tracking_column => "update_time"		clean_run => true        }}filter {	json {		source => "message"		remove_field => ["message"]	}}output {	elasticsearch {		hosts => "127.0.0.1:9200"		index => "survey-faq"		document_id => "%{id}"		template_overwrite => true		template => "/usr/share/logstash/template/logstash.json"	}	stdout {		codec => json_lines	}}

template_overwritetempalte 这两个属性是用来定义分词模板的, 定义的模板为 ik 分词模板, 如果不用 ik 的话, 这两个属性可以删除. 配置 ik 分词需要用下面的步骤安装好 ik 分词插件以后才能使用.

  1. logstash_jdbc_xxx目录下创建一个文件夹sql,用来放 sql 文件.

在 sql 目录下创建 xx.sql 文件, 里面放写好的 sql 语句即可. 比如 select * from tablename

  1. 重新启动 logstash 就会将制定的表数据导入到elasticsearch

4. 安装 ik 分词

进入到 elasticsearch 的根目录下, 执行

bin/elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v5.5.1/elasticsearch-analysis-ik-5.5.1.zip

等待安装完成

重启 elasticsearch 即可

转载于:https://my.oschina.net/zcqshine/blog/1511359

你可能感兴趣的文章
UVa11401
查看>>
86. Partition List
查看>>
mysql 主从配置
查看>>
记录已被另一个用户锁定处理方法
查看>>
Codeforces 595B - Pasha and Phone
查看>>
Jquery--ajax
查看>>
shell脚本:批量修改文件名
查看>>
详解SimpleXML添加_修改_删除_遍历XML节点属性
查看>>
WPF DataGrid的使用
查看>>
KMP
查看>>
紫书 例题 11-1 UVa 12219 (表达式树)
查看>>
CPU利用率与Load Average的区别?
查看>>
MATLAB数据处理快速学习教程
查看>>
font property font-family does not have generic default?
查看>>
数字三角形
查看>>
GTID复制模式切换与传统主从复制间切换
查看>>
集成测试
查看>>
Python Learning Day1
查看>>
spring 四种注入方式
查看>>
C++Builder的一些学习资料
查看>>