Elasticsearch中文搜索搭建及定时增量同步mysql

2019-08-03  本文已影响0人  东东波先森

git clone git://github.com/medcl/elasticsearch-rtf.git -b master --depth 1​

创建非root用户

进入非root用户,启动:ES_JAVA_OPTS="-Xms512m -Xmx512m"  ./bin/elasticsearch  -d

外网访问

vi conf/elasticsearch.yml

修改network.host: 0.0.0.0

bootstrap checks failed

max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536]

1、vi /etc/sysctl.conf

设置fs.file-max=655350

保存之后sysctl -p使设置生效

由于使用的是openvz的VPS, 所以优化前需要执行修复命令.

否则会出现"permission denied on key 'xxx'"的异常. 

rm -f /sbin/modprobe  

ln -s /bin/true /sbin/modprobe  

rm -f /sbin/sysctl  

ln -s /bin/true /sbin/sysctl

2、vi /etc/security/limits.conf 新增

* soft nofile 655350

* hard nofile 655350

3、重新使用SSH登录,再次启动elasticsearch即可。

外网访问:serverip:9200/

一般这个时候ok了,但我的虚拟机就是不行,所以我只能通过nginx反向代理的方式实现外网访

1.下载插件安装

git clone git://github.com/mobz/elasticsearch-head.git

cd elasticsearch-head

npm install

在elasticsearch-head目录下node_modules/grunt下如果没有grunt二进制程序,需要执行

cd elasticsearch-head

npm install grunt --save

2.修改配置

修改elasticsearch-head下Gruntfile.js文件,默认监听在127.0.0.1下9200端口

3.启动服务

/usr/local/elasticsearch-head/node_modules/grunt/bin/grunt server

浏览器访问 http://192.168.1.12:9100/

3、出现问题

head主控页面是可以显示的,但是显示连接失败

“集群健康值: 未连接”

4、解决方案

修改elasticsearch.yml文件

vim $ES_HOME$/config/elasticsearch.yml

# 增加如下字段

http.cors.enabled: true

http.cors.allow-origin: "*"

重启es和head即可

1.下载公共密钥

rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch

2.添加yum源

vim  /etc/yum.repos.d/logstash.repo

文件中写入

[logstash-5.x]

name=Elastic repository for 5.x packages

baseurl=https://artifacts.elastic.co/packages/5.x/yum

gpgcheck=1

gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch

enabled=1

autorefresh=1

type=rpm-md

保存退出

3.使用yum安装

yum install logstash

4.验证是否安装成功

进入 logstash 安装目录

cd /usr/share/logstash

运行

bin/logstash -e 'input { stdin { } } output { stdout {} }'

等待几秒钟 出现  

The stdin plugin is now waiting for input:

然后输入 

hello world

得到类似的结果

2016-11-24T08:01:55.949Z huangxd hello world

开始安装插件

bin/logstash-plugin  install logstash-input-jdbc​

下载

mysql-connector-java​.jar

在bin目录下生成/conf-mysql/logstash-mysql-es.conf

input{

     jdbc {

         jdbc_driver_library => "mysql-connector-java-5.1.44-bin.jar"

         jdbc_driver_class => "com.mysql.jdbc.Driver"

         jdbc_connection_string => "jdbc:mysql://rm-***.mysql.rds.aliyuncs.com:3306/db_name"

         jdbc_user => "db_user"

         jdbc_password => "db_password"

         jdbc_paging_enabled => "true"

         jdbc_page_size => "1000"

         jdbc_default_timezone =>"Asia/Shanghai"

         schedule => "* * * * *"

         statement => "select * from jm_es_employee where updatetime > :sql_last_value"

         use_column_value => true

         tracking_column => "updatetime"

         last_run_metadata_path => "./logstash_jdbc_last_run"

       } 

output{

      elasticsearch {

         hosts => "es-cn-***.elasticsearch.aliyuncs.com:9200"

         user => "elastic"

         password => "es_password"

         index => "employee"

         document_id => "%{id}"

      }

      stdout {

         codec => json_lines

     }

 } ​

然后开始执行

bin/logstash -f fielname.conf

如果出现错误 或者没有结果 可以进入 logs 目录中查看日志

上一篇 下一篇

猜你喜欢

热点阅读