【发布时间】:2020-07-06 22:10:19
【问题描述】:
我正在尝试将 mongoDB 数据库同步到 elasticsearch。我正在使用logstash-input-mongoDb 和logstash-output-elasticsearch 插件。
问题是 mongoDb 插件无法从 mongodb 中插入的文档中提取所有信息,因此我看到只有少数字段被插入到弹性搜索中。而且我还将整个查询作为弹性搜索索引中的日志。我试图为logstash操作配置文件中的过滤器并将输入更改为elasticsearch,但无法使其工作。
任何帮助或建议都会很棒。
编辑:
Mongo 架构:
A:{
B: 'sometext',
C: {G: 'someText', H:'some text'}
},
D:[
{E:'sometext',F:'sometext'},
{E:'sometext',F:'sometext'},
{E:'sometext',F:'sometext'}
]
插件:
input {
mongodb {
uri => 'mongodb://localhost:27017/testDB'
placeholder_db_dir => '/opt/logstash-mongodb/'
placeholder_db_name => 'logstash_sqlite.db'
collection => 'testCOllection'
batch_size => 1000
}
}
output {
stdout {
codec => rubydebug
}
elasticsearch {
action => "index"
index => "testdb_testColl"
hosts => ["localhost:9200"]
}
}
输出到弹性:
{
//some metadata
A_B: 'sometext',
A_C_G: 'someText',
A_C_H: 'some text',
log_entry: 'contains complete document inserted to mongoDB'
}
我们没有在弹性中获得 mongo 集合的属性 D。 希望这能更详细地解释问题。
【问题讨论】:
-
了解您在 mongo 中的文档架构、Logstash 输入插件的配置以及您最终进入 Elasticsearch 的内容会有所帮助。
-
@glenacota 我已经用相关信息更新了帖子。
-
您好,您查看我的回复了吗?有什么帮助吗?
-
嗨@glenacota 感谢您的回复,但我计划采用一些不同的方法,所以这个问题不再相关。但无论如何,谢谢你的帮助。
标签: mongodb elasticsearch plugins logstash