首页 文章 精选 留言 我的

精选列表

搜索[数据库迁移],共10000篇文章
优秀的个人博客,低调大师

自建ES迁移至阿里云ES(使用脚本及logstash同步)

搭建测试3节点ES集群,官网下载所需的版本进行解压运行,ECS与阿里云ES在同一地域可用区,并在相同的VPC内。 # mkdir /usr/java # tar xvf jdk-8u162-linux-x64.tar.gz -C /usr/java/ # tar xvf logstash-5.5.3.tar.gz -C /srv/ # tar xvf kibana-5.4.3-linux-x86_64.tar.gz -C /srv # tar xvf elasticsearch-5.4.3.tar.gz -C /srv/ # cat /etc/profile.d/elk.sh export JAVA_HOME=/usr/java/jdk1.8.0_162/ export PATH=$PATH:$JAVA_HOME/bin export PATH=$PATH:/srv/elasticsearch-5.4.3/bin export PATH=$PATH:/srv/logstash-5.5.3/bin export PATH=$PATH:/srv/kibana-5.4.3-linux-x86_64/bin # nohup kibana -c /srv/kibana-5.4.3-linux-x86_64/config/kibana.yml & # nohup elasticsearch & # cat /srv/kibana-5.4.3-linux-x86_64/config/kibana.yml server.name: "kibana_test" server.port: 9070 #监听端口 server.host: "192.168.0.80" #监听端口 elasticsearch.url: "http://es1:9007" logging.dest: /srv/logs/kibana/kibana.log xpack.security.enabled: false ES配置文件说明,重要配置修改 # cat /srv/elasticsearch-5.4.3/config/elasticsearch.yml cluster.name: robin_test #集群名称,默认叫elasticsearch node.name: es1 #节点名称,若不指定,每次启动时会随机分配一个 node.master: true #是否有选举为主节点的资格,主节点可以控制整个集群 node.data: false #是否设置为数据节点,数据节点保存数据并执行增删改查,搜索聚合 node.ingest: false #是否为摄取节点,可以执行由一个或多个摄取处理器组成的预处理管道 path: data: #默认将插件、日志以及数据配置在安装目录,建议拆分 - /srv/data/elasticsearch//0/ - /srv/data/elasticsearch//1/ logs: /srv/logs/elasticsearch/ http: host: es1 port: 9007 network.host: es1 transport.tcp.port: 9002 discovery.zen.minimum_master_nodes: 2 #需要多少个node选举通过才能当上master,应设置为master候选节点的法定个数((master候选节点个数/2)+1)。 gateway: recover_after_nodes: 2 #至少要有几个节点在线,集群才可用 expected_nodes: 2 #集群正常情况下应该存活的节点个数 recover_after_time: 1m #等待多长时间后才进行数据恢复 discovery.zen.ping: unicast.hosts: ['es1:9002','es2:9002','es3:9002'] #单播列表,至少列出集群中一部分节点,当一个节点联系到列表中的成员时,可以获得整个集群所有节点的状态,然后它会联系master节点,并加入集群 thread_pool: bulk: size: 3 queue_size: 300 index: size: 3 queue_size: 300 bootstrap: memory_lock : true #避免系统swapping来提高性能 system_call_filter: false #Centos6不支持SecComp,设置为false,不进行检测 action.destructive_requires_name: true #在删除索引时是否指定索引名称,设置为true禁止允许通过通配符或_all删除索引 indices: fielddata.cache.size: 40% #设置fielddata缓存的最大大小,Fielddata cache主要用于字段(field)的排序和聚合。Elasticsearch使用Fielddata和Filter两种主要类型的缓存来更快地提供搜索请求 breaker.total.limit: 70% #通过设置parent-level breaker指定所有breaker可以使用的内存总量,默认为JVM堆的70%。Elasticsearch包含多个断路器,用于防止操作引起的OutOfMemoryError。 breaker.request.limit: 60% #阻止每个请求数据结构超过一定数量的内存,默认为JVM堆的60% store.throttle.max_bytes_per_sec: 500mb #存储节流限制,默认为20mb. recovery.max_bytes_per_sec: 20mb #从0.90.1版开始,默认为20mb. monitor.jvm.gc.overhead: warn: 60 info: 50 debug: 40 cluster.routing.allocation: node_concurrent_recoveries: 1 #允许在一个节点上发生多少次并发恢复。默认为2 cluster_concurrent_rebalance: 1 #允许集群范围内分片并发重平衡的数量,默认为2 使用logstash同步同步单个index # cat index2index.conf input { elasticsearch { hosts => ["es1:9007"] #老ES集群访问地址 index => "messages-20180401" #需要同步的索引名称 size => 1000 scroll => "1m" codec => "json" docinfo => true } } output { elasticsearch { hosts => ["es-id.elasticsearch.aliyuncs.com:9200"] #阿里云ES访问地址 user => "elastic" #默认为 elastic password => "123456789" #购买阿里云ES界面中指定的密码,或初始化 Kibana 时指定的密码 index => "messages-20180401" #在新ES集群中的索引名 } stdout { codec => rubydebug { metadata => true } } } # logstash -f index2index.conf 在目标的elasticsearch中看到已经同步的index 使用Shell脚本同步单个index # cat sync.sh #!/bin/bash # file:reindex.sh indexName="sync" #需要同步的索引名称 newClusterUser="elastic" #默认为 elastic newClusterPass="123456789" #购买阿里云ES界面中指定的密码,或初始化 Kibana 时指定的密码 newClusterHost="es-id.elasticsearch.aliyuncs.com:9200" #阿里云ES访问地址 oldClusterHost="http://192.168.0.79:9007" #老ES集群访问地址 curl -u ${newClusterUser}:${newClusterPass} -XPOST "http://${newClusterHost}/_reindex?pretty" -H "Content-Type: application/json" -d'{ "source": { "remote": { "host": "'${oldClusterHost}'" }, "index": "'${indexName}'", "query": { "match_all": {} } }, "dest": { "index": "'${indexName}'" } }' 执行成功返回 # sh sync.sh { "took" : 418, "timed_out" : false, "total" : 151, "updated" : 151, "created" : 0, "deleted" : 0, "batches" : 1, "version_conflicts" : 0, "noops" : 0, "retries" : { "bulk" : 0, "search" : 0 }, "throttled_millis" : 0, "requests_per_second" : -1.0, "throttled_until_millis" : 0, "failures" : [ ] } TIPS ES启动报错 [2018-04-08T11:39:20,428][ERROR][o.e.b.Bootstrap ] Exception java.lang.RuntimeException: can not run elasticsearch as root #需要新建非roo用户启动进程 [2018-04-08T11:40:46,187][ERROR][o.e.b.Bootstrap ] [es1] node validation exception [1] bootstrap checks failed [1]: max file descriptors [65535] for elasticsearch process is too low, increase to at least [65536] # 最大文件描述符受限 调整最大文件打开数和最大进程数限制 $ tail /etc/security/limits.conf root hard nofile 65535 * soft nofile 65535 * hard nofile 65535 * soft memlock unlimited * hard memlock unlimited search soft nofile 65536 search hard nofile 65536 search soft nproc 2048 search hard nproc 2048 执行同步脚本报错 { "error" : { "root_cause" : [ { "type" : "illegal_argument_exception", "reason" : "[192.168.0.79:9001] not whitelisted in reindex.remote.whitelist" } ], "type" : "illegal_argument_exception", "reason" : "[192.168.0.79:9001] not whitelisted in reindex.remote.whitelist" }, "status" : 400 } 由于通过IP + Port访问老集群,必须在新集群的yml中配置 reindex 白名单执行同步脚本报错 { "error" : { "root_cause" : [ { "type" : "connect_exception", "reason" : null } ], "type" : "connect_exception", "reason" : null }, "status" : 500 } 同时需要在ECS所属的安全组放行公网入方向访问自建ES集群的端口,reindex 是阿里云ES访问自建ES。即使自建ES与阿里云ES在同一地域,ECS上测试访问阿里云ES并不能保证阿里云的ES能访问到自建ES

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册