ElasticSearch单节点部署并通过monstache同步MongoDB数据

这篇具有很好参考价值的文章主要介绍了ElasticSearch单节点部署并通过monstache同步MongoDB数据。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

参考自文档:
https://www.cnblogs.com/balloon72/p/13177872.html elasticsearch和kibana安装
https://www.cnblogs.com/fuguang/p/13745336.html monstache同步数据

1.ElasticSearch和kibana 安装

准备配置文件

mkdir -p /mydata/elasticsearch/config
mkdir -p /mydata/elasticsearch/data
mkdir -p /mydata/kibana/config
mkdir -p /mydata/monstache-conf
echo "http.host: 0.0.0.0" >> /mydata/elasticsearch/config/elasticsearch.yml
echo "http.cors.enabled: true" >> /mydata/elasticsearch/config/elasticsearch.yml
echo "http.cors.allow-origin: \"*\"" >> /mydata/elasticsearch/config/elasticsearch.yml
#2022-5-7新增以下两行 开启安全验证 
echo "xpack.security.enabled: true" >> /mydata/elasticsearch/config/elasticsearch.yml
echo "xpack.security.transport.ssl.enabled: true" >> /mydata/elasticsearch/config/elasticsearch.yml

chmod 777 /mydata/elasticsearch/config
chmod 777 /mydata/kibana/config
chmod 777 /mydata/elasticsearch/data
chmod 777 /mydata/monstache-conf

编辑:/mydata/kibana/config/kibana.yml

elasticsearch.hosts: http://elasticsearch:9200
server.host: "0.0.0.0"
server.name: kibana
xpack.monitoring.ui.container.elasticsearch.enabled: true
#2022-5-7新增以下两行 开启安全验证 
elasticsearch.username: "elastic"  # es账号
elasticsearch.password: "******"   # es密码
i18n.locale: zh-CN

编辑:/mydata/monstache-conf/monstache.config.toml文件内容:

# connectionn settings

# connect to MongoDB using the following URL
2022-5-12修改以下一行密码内容 
mongo-url = "mongodb://root:******@192.168.3.208:27017,192.168.3.208:27018/nfy-csia?slaveOk=true&write=1&readPreference=secondaryPreferred&connectTimeoutMS=300000&authSource=admin&authMechanism=SCRAM-SHA-1"
# connect to the Elasticsearch REST API at the following node URLs
elasticsearch-urls = ["http://192.168.3.208:9200"]
direct-read-namespaces = ["nfy-csia.capMessage","nfy-csia.vehicleMessage"]
change-stream-namespaces = ["nfy-csia.capMessage","nfy-csia.vehicleMessage"]

# use the following user name for Elasticsearch basic auth
elasticsearch-user = "elastic"
# use the following password for Elasticsearch basic auth
#2022-5-7修改以下一行密码内容 
elasticsearch-password = "******"
# use 4 go routines concurrently pushing documents to Elasticsearch
elasticsearch-max-conns = 4
# propogate dropped collections in MongoDB as index deletes in Elasticsearch
dropped-collections = true
# propogate dropped databases in MongoDB as index deletes in Elasticsearch
dropped-databases = true
# in the log if you had synced previously. This just means that you are replaying old docs which are already
# in Elasticsearch with a newer version. Elasticsearch is preventing the old docs from overwriting new ones.
replay = false
# resume processing from a timestamp saved in a previous run
resume = true
index-as-update = true
# use a custom resume strategy (tokens) instead of the default strategy (timestamps)
# tokens work with MongoDB API 3.6+ while timestamps work only with MongoDB API 4.0+
resume-strategy = 0
# print detailed information including request traces
verbose = true

准备容器配置
docker-compose编排脚本新增内容(实际追加在192.168.3.249服务器原docker-compose):

elasticsearch:
  image: elasticsearch:7.14.2
  restart: always
  container_name: elasticsearch
  deploy:
    resources:
      limits:
        cpus: "4"
        memory: 6G
      reservations:
        memory: 2G
	environment:
    - discovery.type=single-node
	  - "ES_JAVA_OPTS=-Xms1024m -Xmx4096m"
  volumes:
    - /mydata/elasticsearch/config/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
	  - /mydata/elasticsearch/data:/usr/share/elasticsearch/data
	  - /mydata/elasticsearch/plugins:/usr/share/elasticsearch/plugins
	ports:
    - 9200:9200
	  - 9300:9300
	networks: 
	  - csia
kibana:
  image: kibana:7.14.2
  restart: always
  container_name: es-kibana
  deploy:
    resources:
      limits:
        cpus: "1"
        memory: 500M
      reservations:
        memory: 100M
	environment:
    - ELASTICSEARCH_HOSTS=http://elasticsearch:9200
  volumes:
    - /mydata/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml
  ports:
    - 5601:5601
	depends_on: 
	  - elasticsearch
	networks: 
	  - csia

#2022-5-7新增密码设置步骤:
es启动后进入容器设置密码:

# 进入容器
docker exec -it elasticsearch /bin/bash
# 设置密码-手动设置密码 会有多个用户需要设置,如下图
elasticsearch-setup-passwords interactive
# 完成后测试访问
curl 127.0.0.1:9200 -u elastic:******

ElasticSearch单节点部署并通过monstache同步MongoDB数据
如图为以上多个用户配置密码,最主要是第一个elastic用户设为 ****** ,后面用户密码相同即可,不重要。

验证:http://IP:5601/app/kibana
ElasticSearch单节点部署并通过monstache同步MongoDB数据

2.mongoDB同步配置和 工具monstache安装:

在已有的mongoDB容器追加一行,并重启:

command: mongod --replSet repset

docker-compose添加mongoDB副本集容器:

mongo-replSet:
  image: mongo:4.1.13
  restart: always
  deploy:
    resources:
      limits:
        cpus: "2"
        memory: 4G
      reservations:
        memory: 200M
  logging:
    driver: "json-file"
    options:
      max-size: "500m"
  privileged: true
  ports:
    - 27018:27017
  networks:
    - csia
  command: mongod --replSet repset


mongo两个容器都运行后,进入其中一个执行关联副本集命令:

docker exec -it mongo容器名 bash
mongo
rs.initiate({_id:"repset",members:[{_id:0,host:"192.168.3.249:27017"},{_id:1,host:"192.168.3.249:27018"}]})

返回ok结束
docker-compose新增同步工具monstache容器:

monstache:
  image: rwynn/monstache:rel6
  restart: always
  container_name: monstache
  volumes:
    - /mydata/monstache-conf/monstache.config.toml:/app/monstache.config.toml
  restart: always
  deploy:
    resources:
      limits:
        cpus: "1"
        memory: 500M
      reservations:
        memory: 100M
  command: -f /app/monstache.config.toml
	depends_on: 
	  - mongo

完成后启动docker-compose

查看es内索引和数据量:curl -s -XGET --user elastic:密码 'http://127.0.0.1:9200/_cat/indices/?v’
正常情况如图,能看到mongo的索引并数据不断增加
ElasticSearch单节点部署并通过monstache同步MongoDB数据

2022-5-7更新: 以下功能实测效率低已放弃使用
附:由于技战法功能需要用到聚合查询,初始化es后需要将cameraId和archivesInfo.archivesId两个字段执行如下配置:
kibana->开发工具->
执行如下
1、
PUT nfy-csia.capmessage/_mapping?pretty
{
~~ “properties”: {
“cameraId”: {
“type”: “text”,
“fielddata”: true~~
~~ }
}
}
2、
PUT nfy-csia.capmessage/_mapping?pretty
{
“properties”: {
“archivesInfo.archivesId”: {
“type”: “text”,
“fielddata”: true~~
~~ }
}
}~~
ElasticSearch单节点部署并通过monstache同步MongoDB数据文章来源地址https://www.toymoban.com/news/detail-412613.html

到了这里,关于ElasticSearch单节点部署并通过monstache同步MongoDB数据的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Centos7部署单节点MongoDB(V4.2.25)

    🎈 作者: 互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护等领域。 🎈 博客首页:CSDN【互联网-小阿宇】 、阿里云

    2024年03月21日
    浏览(42)
  • Flink 内容分享(二十一):通过Flink CDC一键整库同步MongoDB到Paimon

    目录 导言 Paimon CDC Demo 说明 Demo 准备 Demo 开始 总结 MongoDB 是一个比较成熟的文档数据库,在业务场景中,通常需要采集 MongoDB 的数据到数据仓库或数据湖中,面向分析场景使用。 Flink MongoDB CDC 是 Flink CDC 社区提供的一个用于捕获变更数据(Change Data Capturing)的 Flink 连接器,

    2024年01月20日
    浏览(47)
  • 服务搭建篇(七) Elasticsearch单节点部署以及多节点集群部署

    感兴趣的话大家可以关注一下公众号 : 猿人刘先生 , 欢迎大家一起学习 , 一起进步 , 一起来交流吧! Elasticsearch(简称ES) 是一个分布式 , RESTful风格的搜索和数据分析引擎 , 使用java开发并且是当前最流行的开源的企业级搜索引擎,能够达到近实时搜索,稳定,可靠,快速,安装使

    2024年02月03日
    浏览(63)
  • ElasticSearch单节点部署

    🎈 作者: 互联网-小啊宇 🎈 简介: CSDN 运维领域创作者、阿里云专家博主。目前从事 Kubernetes运维相关工作,擅长Linux系统运维、开源监控软件维护、Kubernetes容器技术、CI/CD持续集成、自动化运维、开源软件部署维护等领域。 🎈 博客首页:CSDN【互联网-小阿宇】 、阿里云

    2024年02月13日
    浏览(33)
  • Elasticsearch+Kibana集群部署(3节点)

    l i n d o r − − 良民笔记 lindor--良民笔记 l in d or − − 良民笔记 前言    仅作为笔记并记录elk搭建过程和搭建中遇到的问题, 转载请注明出处 ,目前该章节只讲述了 elasticsearch+Kibana 的安装过程,以及安装中的一些简单报错;适合有适当基础的同学,理论表的比较少。 ‍

    2024年02月09日
    浏览(53)
  • crawlab通过docker单节点部署简单爬虫

    crawlab 此处介绍的是单节点的方式,多节点的情况可以把爬虫上传到一个节点中,之后会同步到其它节点上 docker-compose up -d 运行,访问 localhost:8080 ,用户密码均为admin 此处上传一个爬取图片的简单爬虫,上传requirements.txt或者package.json文件,crawlab会自动扫描并安装依赖,但是

    2024年02月10日
    浏览(35)
  • 如何通过docker-compose部署单节点ES

    一、概述 Linux系统搭建单节点ES的方式有很多种,其中通过docker-compose进行安装最为方便。 二、准备 1、配置虚拟机 1.1、设置IP 将虚拟机IP设置为192.168.1.100; 1.2、设置内存 将虚拟机内存设置为4G,内存太小可能导致ES无法正常运行; 1.3、修改limits.conf limits.conf文件可以设置用

    2024年02月15日
    浏览(54)
  • Zookeeper集群单节点启动成功但未同步其他节点数据

    首先排查节点启动是否正常: 在zookeeper的bin目录下执行:sh zkServer.sh status 判断当前节点数据leader 还是follower  节点都启动正常,但某一个zookeeper集群节点(下面简称“异常节点”)不同步其他节点数据,解决步骤: 1、查看异常节点的配置文件(**/zookeeper/conf/zoo.cfg) 2、找到

    2024年02月11日
    浏览(42)
  • Zookeeper 集群中节点之间数据是如何同步的

    1.首先集群启动时,会先进行领导者选举,确定哪个节点是 Leader ,哪些节点是 Follower 和 Observer 2.然后 Leader 会和其他节点进行数据同步,采用发送快照和发送 Diff 日志的方式 3.集群在工作过程中,所有的写请求都会交给 Leader 节点来进行处理,从节点只能处理读请求 4.

    2024年02月09日
    浏览(43)
  • datax 同步mongodb数据库到hive(hdfs)和elasticserch(es)

    1.mongodb版本:3.6.3。(有点老了,后来发现flinkcdc都只能监控一张表,多张表无法监控) 2.datax版本:自己编译的DataX-datax_v202210 3.hdfs版本:3.1.3 4.hive版本:3.1.2 1.增量数据:需要每隔1小时将mongodb中17个集合的数据同步至hive,因为有数据生成时间,才用datax查询方式,将上一个

    2023年04月23日
    浏览(50)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包