Dockerを使用している場合は、このチュートリアルを入手できます
https://github.com/ziedtuihri/Monstache_Elasticsearch_Mongodb
Monstacheは、Goで記述された同期デーモンであり、MongoDBコレクションをElasticsearchに継続的にインデックス付けします。 Monstacheを使用すると、Elasticsearchを使用して、MongoDBデータの複雑な検索と集計を実行し、MonstacheのリアルタイムのKibana視覚化とダッシュボードを簡単に構築できます。
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)このコマンドを実行しますe en terminal $ sysctl -w vm.max_map_count =262144
サーバーで作業している場合、必要かどうかわかりません
2)enterminaldockerを実行します-ビルドを作成します
3)en terminal $ docker-compose up -d
を実行しますコンテナを下ろさないでください。
$ docker ps
mongodbイメージのIPアドレスをコピーします
$ docker inspect id_of_mongo_image
IPアドレスをコピーしてreplicaset.shに設定し、replicaset.shを実行します
$ ./replicaset.sh
ターミナルでは、=>レプリカセットが作成されました
を参照してください。$ docker-compose down
4)en terminal$dockerを実行します-構成します
ついに.......
MongoDBでのレプリケーション
レプリカセットは、mongod
のグループです。 同じデータセットを維持するインスタンス。レプリカセットには、複数のデータ保持ノードと、オプションで1つのアービターノードが含まれます。データ保持ノードのうち、1つのメンバーのみがプライマリノードと見なされ、他のノードはセカンダリノードと見なされます。
プライマリノード
すべての書き込み操作を受け取ります。レプリカセットには、 {w:"マジョリティ"}
懸念を書く;ただし、状況によっては、別のmongodインスタンスが一時的に自分自身もプライマリであると信じている場合があります。
レプリカセットの構成を表示します。