elasticsearch go-mysql-elasticsearch安装

1,301 阅读6分钟

elasticsearch安装


进入官网查看最新版本的下载链接
使用命令行进行下载:


下载
 wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.0.tar.gz

解压
 tar -zxvf elasticsearch-6.6.0.tar.gz

elasticsearch不支持root用户启动,创建用户useradd elasticchown -R elastic:elastic  elasticsearch-2.4.0su elasticsh ‘elasticsearch所在目录‘/bin/elasticsearch -d
使用 curl http://localhost:9200/ 查看是否运行,如果返回如下信息则标示运行正常:
[elastic@localhost local]$ curl http://localhost:9200/
{
"name" : "Astrid Bloom",
"cluster_name" : "elasticsearch",
"version" : {
"number" : "6.6.0",
"build_hash" : "ce9f0c7394dee074091dd1bc4e9469251181fc55",
"build_timestamp" : "2019-08-29T09:14:17Z",
"build_snapshot" : false,
"lucene_version" : "5.5.2"
},
"tagline" : "You Know, for Search"
}

elasticsearch.yaml配置文件


# ---------------------------------- Cluster -----------------------------------
#
#  集群名称 
#
cluster.name: my-application
#
# ------------------------------------ Node ------------------------------------
#
# 节点名称
#
#node.name: node-1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# 文件路径 
#
#path.data: /path/to/data
#
# Path to log files:
#
#path.logs: /path/to/logs
#
# ----------------------------------- Memory -----------------------------------
#
# 锁定内存 一般不要选
#
#bootstrap.memory_lock: true
#
#
# ---------------------------------- Network -----------------------------------
#
# 绑定ip ipv4 或 ipv6
#
network.host: 0.0.0.0
#
# http 请求端口
#
http.port: 9200
#
# --------------------------------- Discovery ----------------------------------
#
# Pass an initial list of hosts to perform discovery when new node is started:
# The default list of hosts is ["127.0.0.1", "[::1]"]
#
#discovery.zen.ping.unicast.hosts: ["host1", "host2"]
#
# Prevent the "split brain" by configuring the majority of nodes (total number of master-eligible nodes / 2 + 1):
#
#discovery.zen.minimum_master_nodes: 
#
# For more information, consult the zen discovery module documentation.
#
# ---------------------------------- Gateway -----------------------------------
#
# 有几个节点
#
#gateway.recover_after_nodes: 3
#
# For more information, consult the gateway module documentation.
#
# ---------------------------------- Various -----------------------------------
#
# Require explicit names when deleting indices:
#
#action.destructive_requires_name: true

运行elasticsearch
sh /usr/local/elasticsearch-2.4.0/bin/elasticsearch -d 其中-d表示后台启动



elasticsearch 可视化工具安装

原文地址  www.jianshu.com/p/54e04b5b5…

概 述

强大的搜索引擎 Elasticsearch 与传统关系型数据库的一个明显不同点在于 前者是一个非结构化的 NoSQL数据库,因此里面的很多概念诸如索引、类型、文档等对于初学者可能会有些疑惑。有时候我们即使搭建好了ES集群,但数据存进去后到底是以一个什么形态存在,我们可能也疑惑重重,此时要是有个可视化的管理工具来辅助一下就便易于理解了,因此本文就搜罗了几种 Elasticsearch可视化管理工具并一一体验一番。

注: 本文首发于 My Personal Blog:CodeSheep·程序羊,欢迎光临 小站

本文内容脑图如下:

本文内容脑图

elasticsearch-head

docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5 

( 算了,这个简直上古时期的UI真心不想多看一眼,下面就凑合放两张图意思一下吧 )

概览页面
查询页面

ElasticHD

ElasticHD 支持 ES监控、实时搜索,Index template快捷替换修改,索引列表信息查看, SQL converts to DSL工具等,体验下来感觉还是比较强大的!

1. 首先下载zip压缩包:https://github.com/360EntSecGroup-Skylar/ElasticHD/releases/
2. 修改权限:chmod -R 777 ElasticHD
3. 运行: ./ElasticHD -p 127.0.0.1:9800 
  • Docker安装方式:
docker run -p 9200:9200 -d --name elasticsearch elasticsearch
docker run -p 9800:9800 -d --link elasticsearch:demo containerize/elastichd

这个 Dashboard有点酷炫:

Dashboard

数据搜索直观易使用:

数据搜索

索引列表看得比较清楚:

索引列表

这个 SQL查询语句转 ES的Json查询格式的小工具挺厉害的:

工具箱

Dejavu

Dejavu 也是一个 Elasticsearch的 Web UI 工具,其 UI界面更符合当下主流的前端页面风格,因此使用起来很方便。

docker run -p 1358:1358 -d appbaseio/dejavu

这个数据预览页面非常直观,索引/类型/文档 看得一清二楚

数据预览页面

查询功能也不错

数据查询
数据查询


使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch

原文地址 juejin.cn/post/684490…


本文介绍如何使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch。

1.go-mysql-elasticsearch简介

go-mysql-elasticsearch是一个将MySQL数据自动同步到Elasticsearch的服务。

它首先使用mysqldump获取原始数据,然后用binlog增量地同步数据。

github地址:github.com/siddontang/…

这里有几点注意事项:

  • 1.Mysql的binlog必须是ROW模式,不然启动会报错。
  • 2.连接Mysql的用户权限需要大一些。

2.安装

2.1 安装go

安装go

yum install -y go
复制代码

安装godep

go get github.com/tools/godep
复制代码

下载go-mysql-elastisearch插件

go get github.com/siddontang/go-mysql-elasticsearch
复制代码

进入对应目录,比如我使用的如下目录/root/go/src/github.com/siddontang/go-mysql-elasticsearch

cd /root/go/src/github.com/siddontang/go-mysql-elasticsearch
复制代码

编译

make
复制代码

2.2 Mysql开启binlog

接下来需要在mysql中开启binlog,首先查询一下是否开启了binlog。

bin log 日志

查看bin log 信息
show variables like '%log_bin%'; 查看bin log保存天数show variables like 'expire_logs_days';bin log 列表show master logs;bin log 状态show master status;清空bin log reset master;重新生成一份flush logs;

如图所示,ON为开启了,如果没有开启的话为OFF。


如果没有开启的话,需要在my.cnf配置中添加如下配置

server-id可以根据情况设置,这里设置为1,

binlog_format为模式,这里必须为ROW。

expire_logs_days  bin log日志最长保存时间(不要配置)


server-id=1
binlog_format="ROW"
#expire_logs_days = 5

设置完成后重启mysql.

service mysqld restart



3.配置go-mysql-elasticsearch

需要配置一下go-mysql-elasticsearch,样例在:github.com/siddontang/…

本文测试的配置文件内容如下:

# MySQL 配置:地址,用户名,密码
my_addr = "ip:3306"     
my_user = "root"
my_pass = "root"

# Elasticsearch地址
es_addr = "ip:9200"
    
# 存储数据的位置
data_dir = "./var"
    
# Inner Http status address
stat_addr = "127.0.0.1:12800"
    
# pseudo server id like a slave
server_id = 1001
    
# mysql or mariadb
flavor = "mysql"
    
# mysql备份文件,如果不设置或设置为空,则跳过
# mysqldump = "mysqldump"
    
# minimal items to be inserted in one bulk
bulk_size = 128
    
# force flush the pending requests if we don't have enough items >= bulk_size
flush_bulk_time = "200ms"
    
# Ignore table without primary key
skip_no_pk_table = false
    
# MySQL数据源,schema:数据库,tables:表 两个表配置两个 一个表配置一个 多个表配置通配符
[[source]]
schema = "tbk_test"
tables = ["tbk_category","tbk_cate"]
#表1
[[rule]]
schema = "tbk_test"
table = "tbk_category"
index = "test4"
type = "category"
id = ["category_id"]
# 过滤需要多字段
#filter = ["id","name"]
[rule.field]
# mysql字段 es字段映射关系
id="id"
level="level"
category_id="categoryId"
parentId="parent_id"
status="status"
name="name"
image="image"
#title="my_title,list"
#title=",list"
#createdTime="created_time,date"
#表2
[[rule]]
schema = "tbk_test"
table = "tbk_cate"
index = "test5"
type = "cate"
id = ["cate_id"]
#filter = ["id","name"]
[rule.field]
cate_id="cateId"
cate_name="cateName"
cate_name1="cateName1"
cate_name2="cateName2"

4.运行go-mysql-elasticsearch

配置完成后,运行go-mysql-elasticsearch

bin/go-mysql-elasticsearch -config=river.toml
复制代码

如图所示运行成功。


有可能因为mysql binlog 日志过多造成初次同步缓慢,测试的话删除原来多binlog就行


5.制定go-mysql-elasticsearch docker 镜像

更改原来的Dockerfile

FROM centosrun yum install -y go  copy .  /go/src/github.com/siddontang/go-mysql-elasticsearchWORKDIR /go/src/github.com/siddontang/go-mysql-elasticsearchENTRYPOINT ["./bin/go-mysql-elasticsearch"]
docker build -t go-mysql-elasticsearch .

运行go-mysql-elasticsearch 镜像

 
docker run  --name 'go-mysql-es' -d   go-mysql-elasticsearch 
挂载系统目录
docker run  --name 'go-mysql-es' -d -v   /root/go/src/github.com/siddontang/go-mysql-elasticsearch/etc:/go/src/github.com/siddontang/go-mysql-elasticsearch/etc -v   /root/go/src/github.com/siddontang/go-mysql-elasticsearch/var:/go/src/github.com/siddontang/go-mysql-elasticsearch/var  go-mysql-elasticsearch 


docker ps 查看运行的容器