si trabaja con docker puede obtener este tutorial
https://github.com/ziedtuihri/Monstache_Elasticsearch_Mongodb
Monstache es un demonio de sincronización escrito en Go que indexa continuamente sus colecciones de MongoDB en Elasticsearch. Monstache le brinda la capacidad de usar Elasticsearch para realizar búsquedas complejas y agregaciones de sus datos de MongoDB y crear fácilmente visualizaciones y tableros de Kibana en tiempo real. Documentación para Monstache:
https://rwynn.github.io/sitio-monstache/
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) ejecute este comando en terminal$ sysctl -w vm.max_map_count=262144
si trabajas en un servidor no se si es necesario
2)ejecutar en terminaldocker-compose build
3) ejecutar en terminal$ docker-compose up -d
no bajes tu contenedor.
$ ventana acoplable ps
copie la dirección IP de la imagen de mongo db
$ docker inspeccionar id_of_mongo_image
copie la dirección IP y configúrela en replicaset.sh y ejecute replicaset.sh
$ ./replicaset.sh
en la terminal deberías ver => conjunto de réplicas creado
$ ventana acoplable-componer hacia abajo
4)ejecutar en terminal$ docker-compose up
finalmente.......
Replicación en MongoDB
Un conjunto de réplicas es un grupo de mongod
instancias que mantienen el mismo conjunto de datos. Un conjunto de réplicas contiene varios nodos que contienen datos y, opcionalmente, un nodo árbitro. De los nodos que contienen datos, uno y solo un miembro se considera el nodo principal, mientras que los otros nodos se consideran nodos secundarios.
El nodo principal
recibe todas las operaciones de escritura. Un conjunto de réplicas solo puede tener una principal capaz de confirmar escrituras con { w:"mayoría" }
escribir preocupación; aunque en algunas circunstancias, otra instancia de mongod puede creer transitoriamente que también es primaria. manual/referencia/método/rs.conf/#rs.conf">rs.conf()