我想将MongoDB
数据同步到ElasticSearch
,我读了很多关于elasticsearch river插件和mongo connector的文章,但它们都已经过时,不支持mongo 4和elasticsearch 7!
由于logstash
是专有软件,我想使用它来同步这两个... 有人知道如何做到吗?
我想将MongoDB
数据同步到ElasticSearch
,我读了很多关于elasticsearch river插件和mongo connector的文章,但它们都已经过时,不支持mongo 4和elasticsearch 7!
由于logstash
是专有软件,我想使用它来同步这两个... 有人知道如何做到吗?
input {
mongodb {
uri => 'mongodb://10.0.0.30/my-logs?ssl=true'
placeholder_db_dir => '/opt/logstash-mongodb/'
placeholder_db_name => 'logstash_sqlite.db'
collection => 'events_'
batch_size => 5000
}
}
output {
stdout {
codec => rubydebug #outputs the same thing as elasticsearch in stdout to facilitate debugging
}
elasticsearch {
hosts => "localhost:9200"
index => "target_index"
document_type => "document_type"
document_id => "%{id}"
}
}
const mongoDbOptions: MongoDbOptions = {
uri: config.mongodbURI,
dbName: config.dbName,
collections: [
{
name: 'collection-name',
pipeline: [{ $match: { name: { $regex: 'jan' } } }, { $group: { _id: '$name', totalDocs: { $sum: 1 } } }],
},
],
};
const elasticOptions: ElasticOptions = {
node: 'http://localhost:9200',
auth: {
username: 'elastic',
password: 'elastic-user-password',
},
// tls: {
// ca: fs.readFileSync('./http_ca.crt'),
// rejectUnauthorized: false,
// },
};
const syncDbWithElasticsearch = new SyncMongoDbWithElasticSearch(mongoDbOptions, elasticOptions);
syncDbWithElasticsearch.start();
该软件包可通过npm下载和使用,链接在this。