如果你使用 docker,你可以得到这个教程
https://github.com/ziedtuihri/Monstache_Elasticsearch_Mongodb https://github.com/ziedtuihri/Monstache_Elasticsearch_Mongodb
Monstache 是一个用 Go 编写的同步守护进程,可持续将 MongoDB 集合索引到 Elasticsearch 中。 Monstache 使您能够使用 Elasticsearch 对 MongoDB 数据进行复杂的搜索和聚合,并轻松构建实时 Kibana 可视化和仪表板。
蒙斯塔什的文档:
https://rwynn.github.io/monstache-site/ https://rwynn.github.io/monstache-site/
github:
https://github.com/rwynn/monstache https://github.com/rwynn/monstache
docker-compose.yml
version: '2.3'
networks:
test:
driver: bridge
services:
db:
image: mongo:3.0.2
expose:
- "27017"
container_name: mongodb
volumes:
- ./mongodb:/data/db
- ./mongodb_config:/data/configdb
ports:
- "27018:27017"
command: mongod --smallfiles --replSet rs0
networks:
- test
elasticsearch:
image: docker.elastic.co/elasticsearch/elasticsearch:6.8.7
container_name: elasticsearch
volumes:
- ./elastic:/usr/share/elasticsearch/data
- ./elastic/elasticsearch.yml:/usr/share/elasticsearch/config/elasticsearch.yml
ports:
- 9200:9200
command: elasticsearch -Enetwork.host=_local_,_site_ -Enetwork.publish_host=_local_
healthcheck:
test: "wget -q -O - http://localhost:9200/_cat/health"
interval: 1s
timeout: 30s
retries: 300
ulimits:
nproc: 65536
nofile:
soft: 65536
hard: 65536
memlock:
soft: -1
hard: -1
networks:
- test
monstache:
image: rwynn/monstache:rel4
expose:
- "8080"
ports:
- "8080:8080"
container_name: monstache
command: -mongo-url=mongodb://db:27017 -elasticsearch-url=http://elasticsearch:9200 -direct-read-namespace=Product_DB.Product -direct-read-split-max=2
links:
- elasticsearch
- db
depends_on:
db:
condition: service_started
elasticsearch:
condition: service_healthy
networks:
- test
复制集.sh
#!/bin/bash
# this configuration is so important
echo "Starting replica set initialize"
until mongo --host 192.168.144.2 --eval "print(\"waited for connection\")"
do
sleep 2
done
echo "Connection finished"
echo "Creating replica set"
mongo --host 192.168.144.2 <<EOF
rs.initiate(
{
_id : 'rs0',
members: [
{ _id : 0, host : "db:27017", priority : 1 }
]
}
)
EOF
echo "replica set created"
1)在终端运行此命令
$ sysctl -w vm.max_map_count=262144
如果你在服务器上工作我不知道是否有必要
2)在终端运行
docker-compose 构建
3)在终端运行
$ docker-compose up -d
不要放下你的容器。
$ 码头工人 PS
复制mongodb镜像的IP地址
$ docker 检查 id_of_mongo_image
复制IP地址并将其设置在replicaset.sh中并运行replicaset.sh
$ ./replicaset.sh
在终端上你应该看到 => 副本集已创建
$ docker-compose 下来
4)在终端运行
$ docker-compose up
最后 .......
MongoDB 中的复制
副本集是一组mongod https://docs.mongodb.com/manual/reference/program/mongod/#bin.mongod维护相同数据集的实例。副本集包含多个数据承载节点和一个可选的仲裁节点。在数据承载节点中,只有一个成员被视为主节点,而其他节点被视为次节点。
The 主节点 https://docs.mongodb.com/manual/core/replica-set-primary/接收所有写操作。副本集只能有一个能够确认写入的主数据库{ w:“多数” } https://docs.mongodb.com/manual/reference/write-concern/#writeconcern.%22majority%22写下关心;尽管在某些情况下,另一个 mongod 实例可能会暂时认为自己也是主要的。
查看副本集配置。
使用rs.conf() https://docs.mongodb.com/manual/reference/method/rs.conf/#rs.conf
副本集允许您将 MongoDB 集合实时同步索引到 Elasticsearch 中。