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[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
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
直接安装方式:此处不赘述,在我的前文《CentOS-7上Elasticsearch安装填坑记》中已经记录过,可以 前去查看
Docker安装方式:
docker run -d -p 9100:9100 docker.io/mobz/elasticsearch-head:5
- 启动访问:http://localhost:9100
- 使用效果:
( 算了,这个简直上古时期的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
- 启动访问:http://localhost:9800
- 使用效果:
这个 Dashboard有点酷炫:
数据搜索直观易使用:
索引列表看得比较清楚:
这个 SQL查询语句转 ES的Json查询格式的小工具挺厉害的:
Dejavu
Dejavu 也是一个 Elasticsearch的 Web UI 工具,其 UI界面更符合当下主流的前端页面风格,因此使用起来很方便。
Docker安装方式:
docker run -p 1358:1358 -d appbaseio/dejavu
启动访问::http://localhost:1358/
使用效果:
这个数据预览页面非常直观,索引/类型/文档 看得一清二楚
查询功能也不错
使用go-mysql-elasticsearch同步mysql数据库信息到ElasticSearch
本文介绍如何使用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 restart3.配置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"]运行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 查看运行的容器