als je met docker werkt, kun je deze tutorial krijgen
https://github.com/ziedtuihri/Monstache_Elasticsearch_Mongodb
Monstache is een sync-daemon geschreven in Go die continu je MongoDB-verzamelingen indexeert in Elasticsearch. Monstache geeft u de mogelijkheid om Elasticsearch te gebruiken om complexe zoekopdrachten en aggregaties van uw MongoDB-gegevens uit te voeren en eenvoudig realtime Kibana-visualisaties en dashboards te bouwen.documentatie voor Monstache:
https://rwynn.github.io/monstache-site/
github :
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
replicaset.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) voer dit commando uit en terminal$ sysctl -w vm.max_map_count=262144
als je op een server werkt, weet ik niet of dat nodig is
2)run en terminaldocker-compose build
3) voer en terminal$ docker-compose up -d uit
zet je container niet neer.
$ docker ps
kopieer het IP-adres van mongo db-afbeelding
$ docker inspecteer id_of_mongo_image
kopieer het IPAddress en zet het in replicaset.sh en voer replicaset.sh uit
$ ./replicatet.sh
op terminal moet je zien => replicaset gemaakt
$ docker-compose neer
4) run en terminal$ docker-compose up
eindelijk .......
Replicatie in MongoDB
Een replicaset is een groep van mongod
instanties die dezelfde gegevensset onderhouden. Een replicaset bevat meerdere data dragende nodes en optioneel één arbiter node. Van de gegevensdragende knooppunten wordt één en slechts één lid beschouwd als het primaire knooppunt, terwijl de andere knooppunten als secundaire knooppunten worden beschouwd.
De primair knooppunt
ontvangt alle schrijfbewerkingen. Een replicaset kan slechts één primaire hebben die schrijfbewerkingen kan bevestigen met { w:"meerderheid" }
schrijf bezorgdheid; hoewel in sommige omstandigheden een ander mongod-exemplaar tijdelijk kan denken dat het ook primair is.
Bekijk de replicasetconfiguratie.Gebruik rs.conf()