se você trabalha com docker, pode obter este tutorial
https://github.com/ziedtuihri/Monstache_Elasticsearch_Mongodb
Monstache é um daemon de sincronização escrito em Go que indexa continuamente suas coleções do MongoDB no Elasticsearch. O Monstache oferece a capacidade de usar o Elasticsearch para fazer pesquisas e agregações complexas de seus dados do MongoDB e criar facilmente visualizações e painéis do Kibana em tempo real.documentation for 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) execute este comando no terminal$ sysctl -w vm.max_map_count=262144
se você trabalha em um servidor eu não sei se é necessário
2) execute a compilação do terminaldocker-compose
3) execute no terminal$ docker-compose up -d
não desça o seu recipiente.
$ docker ps
copie o Ipadress da imagem db do mongo
$ docker inspecionar id_of_mongo_image
copie o IPAddress e defina-o em replicaset.sh e execute replicaset.sh
$ ./replicaset.sh
no terminal você deve ver => conjunto de réplicas criado
$ docker-compose down
4) execute no terminal$ docker-compose up
finalmente .......
Replicação no MongoDB
Um conjunto de réplicas é um grupo de mongod instâncias que mantêm o mesmo conjunto de dados. Um conjunto de réplicas contém vários nós de suporte de dados e, opcionalmente, um nó de arbitragem. Dos nós portadores de dados, um e apenas um membro é considerado o nó primário, enquanto os outros nós são considerados nós secundários.
O nó principal recebe todas as operações de gravação. Um conjunto de réplicas pode ter apenas um primário capaz de confirmar gravações com { w:"maioria" } escreva preocupação; embora, em algumas circunstâncias, outra instância do mongod possa temporariamente acreditar que também é primária.
Visualize a configuração do conjunto de réplicas. Use rs.conf()