elasticsearch+kibana+x-pack+mongodb+mongo-connector安装

1.elasticsearch 安装

下载elasticsearch

修改集群名称、节点名称等 elasticsearch.yml

cluster.name: erickingdee

node.name: node-1

node.master: true

node.data: true

discovery.zen.ping.unicast.hosts: ["front01", "front02"] //设置集群中master节点的初始列表,可以通过这些节点来自动发现新加入集群的节点

discovery.zen.minimum_master_nodes: 1 //设置这个参数来保证集群中的节点可以知道其它N个有master资格的节点。默认为1,对于大的集群来说,可以设置大一点的值(2-4)

启动

2.kibana安装(版本要与elasticsearch对应)

下载kibana :https://www.elastic.co/downloads/kibana

解压

启动

3.x-pack 安装

在elasticsearch下安装x-pack

bin/elasticsearch-plugin install x-pack

在kibana下安装x-pack

bin/kibana-plugin install x-pack

elasticsearch 默认登录用户名/密码:elastic/changeme

4.分词器插件安装(ik)

5.mongodb安装

下载地址:https://www.mongodb.com/download-center#community

下载完安装包,并解压 tgz

tar -zxvf mongodb-linux-x86_64-3.0.6.tgz

mv  mongodb-linux-x86_64-3.0.6/ /usr/local/mongodb

export PATH=/bin:$PATH

创建数据库目录 mkdir -p /data/db

注意:/data/db 是 MongoDB 默认的启动的数据库路径(可通过--dbpath 参数配置),目录需手动创建

启动数据库即可

配置副本集

--server1    config_file_name:rs0_1.conf

dbpath=C:\data\db\db_rs0 --数据存储路径

logpath=C:\data\db\db_rs0\rs0_1.log --日志路径

port=27017 --数据库端口

replSet=rs0 --副本集名称,同一个副本集名称需一致

--server2   config_file_name:rs0_2.conf

dbpath=C:\data\db\db_rs0

logpath=C:\data\db\db_rs0\rs0_2.log

port=27018

replSet=rs0

使用配置文件启动mongo:

mongod -f C:\data\rs0_1.conf

在不同的Server上运行不同的MongoDB Instance,但是,每个mongod 都不知道其他mongod的存在,为了让每个mongod能够感知彼此的存在,需要配置Replica set,增加成员

1,使用配置文档为Replica Set 增加成员

在srv1的mongo shell中,创建配置文档,调用rs.initiate()函数,按照配置文档来初始化Replica Set

2,修改Replica Set

向Replica Set中增加一个成员 : rs.add("host:port")

从Replica Set中删除一个成员 : rs.remove("host")

查看Replica Set的配置 : rs.conf()

查看Replica Set的状态 : rs.status()

6.同步工具安装

mongo-connector

基于python开发的实时同步服务工具,mongo运行在replica-set模式,且需要 elastic2_doc_manager将数据写入ES

linux 系统

安装mongo-connector

pip install mongo-connector

安装elastic2-doc-manager

pip install elastic2-doc-manager

运行mongo-connector

mongo-connector -m username:passwd@localhost:27017 -t username:passwd@localhost:9200 -d elastic2_doc_manager -n testDB.testCol

(如何修改成配置文件方式启动服务???)

配置文件方式:

参考 https://github.com/yougov/mongo-connector/blob/master/mongo_connector/service/config.json

执行 nohup mongo-connector  -c cloudflow.json  >>mongo-connector.log 2>&1 &

参数说明:

-m  :  --数据源地址,mongodb数据库地址

-t  :  --数据目的地地址,elasticsearch/solr/mongodb集群地址。建议为集群中的协调节点的地址

-d  :  --数据目的地的document类型。例如:

                               将mongodb中的数据同步到elasticsearch,使用elastic_doc_manager或elastic2_doc_manager。 

                               将mongodb中的数据同步到solr,使用solr_doc_manager。

                               将mongodb中数据同步到其他mongodb,使用mongo_doc_manager。

-n  :  --待同步的数据库及其collection。默认同步所有数据库

-i  filed_name ...      —— 待同步的字段。默认同步所有字段

-o  mongodb_oplog_position.oplog  —— mongo-connector的oplog。默认在mongo-connector命令执行目录下创建oplog.timestamp文件

--auto-commit-interval    —— 数据同步间隔。默认在不同系统上有不同的值。设置为0表示mongodb中的任何操作立即同步到数据目的地

--continue-on-error       —— 一条数据同步失败,日志记录该失败操作,继续后续同步操作。默认为中止后续同步操作。

其他参数包括设置日志输出行为(时间、间隔、路径等)、设置mongodb登录账户和密码、设置(数据目的地)Http连接的证书等、设置mongo-connector的配置文件

---------------------

遇到的坑:(运行mongo-connector报错,确认已安装了mongo-connector与elastic2_doc_manager)

Traceback (most recent call last):

  File "/Users/shane/git/mongo-connector/venv-python2.6/bin/mongo-connector", line 11, in

    sys.exit(main())

  File "/Users/shane/git/mongo-connector/venv-python2.6/lib/python2.6/site-packages/mongo_connector/util.py", line 104, in wrapped

    func(*args, **kwargs)

  File "/Users/shane/git/mongo-connector/venv-python2.6/lib/python2.6/site-packages/mongo_connector/connector.py", line 1249, in main

    conf.parse_args()

  File "/Users/shane/git/mongo-connector/venv-python2.6/lib/python2.6/site-packages/mongo_connector/config.py", line 120, in parse_args

    option, dict((k, values.get(k)) for k in option.cli_names))

  File "/Users/shane/git/mongo-connector/venv-python2.6/lib/python2.6/site-packages/mongo_connector/connector.py", line 986, in apply_doc_managers

    DocManager = import_dm_by_name(dm['docManager'])

  File "/Users/shane/git/mongo-connector/venv-python2.6/lib/python2.6/site-packages/mongo_connector/connector.py", line 958, in import_dm_by_name

    return import_dm_by_path(full_name)

  File "/Users/shane/git/mongo-connector/venv-python2.6/lib/python2.6/site-packages/mongo_connector/connector.py", line 975, in import_dm_by_path

    "vailable doc managers. ImportError:\n%s" % (package, exc))

mongo_connector.errors.InvalidConfiguration: Could not import mongo_connector.doc_managers.elastic2_doc_manager. It could be that this doc manager has been moved out of this project and is maintained elsewhere. Make sure that you have the doc manager installed alongside mongo-connector. Check the README for a list of available doc managers. ImportError:

Error: elasticsearch (https://pypi.python.org/pypi/elasticsearch) version 2.x or 5.x is not installed.

Install with:

  pip install elastic-doc-manager[elastic2]

or:

  pip install elastic-doc-manager[elastic5]


原因: 未安装elasticsearch-py

参考:

https://github.com/yougov/mongo-connector/issues/644

https://github.com/yougov/mongo-connector/pull/669

解决方案:安装elasticsearch-py(参考https://www.elastic.co/guide/en/elasticsearch/client/python-api/current/index.html)

pip install elasticsearch2

安装完能正常同步数据

你可能感兴趣的:(elasticsearch+kibana+x-pack+mongodb+mongo-connector安装)