通过logstash-input-mongodb插件将mongodb数据导入ElasticSearch
目的很简单,就是将mongodb数据导入es建立相应索引。数据是从特定的网站扒下来,然后进行二次处理,也就是数据去重、清洗,接着再保存到mongodb里,那么如何将数据搞到ElasticSearch中呢?调研之后觉得logstash-input-mongodb插件是个不错的选择,当然了也有很多其他实现方式,具体原因:
- 爬虫在实时存储数据,需要进行实时同步到ElasticSearch中
- 支持断点续传
- 时间成本...
首先介绍下版本(5.0以上)
- logstash 5.X
- elasticsearch 5.X
- logstash-input-mongodb-0.4.1(在线更新过
接下来就是实际操作了
这是插件GitHub地址:https://github.com/phutchins/logstash-input-mongodb
进入logstash 下bin目录 查看已安装的插件:
./logstash-plugin list
没有logstash-input-mongodb插件那么:
./logstash-plugin install logstash-input-mongodb
此步骤安装比较慢,很有可能失败,翻过墙另说,哈哈,建议替换镜像库为国内的库。
没有gem命令的先安装:
yum install gem
可以先看下镜像库地址命令如下:
gem sources -l

可以看到地址是:https://rubygems.org/
现在替换为国内的ruby-china库:
gem sources --add https://gems.ruby-china.org/ --remove https://rubygems.org/
#在查看
gem sources -l

此时一切换成功,当然,并没有完成,需要进入logstash目录对 Gemfile文件 进行编辑:
vim Gemfile
将文件里的 source "https://rubygems.org" 换成 source "https://gems.ruby-china.org",如图:
wq保存退出,好了进入bin再执行: ./logstash-plugin install logstash-input-mongodb

等待时间可能比较长,如果没有成功的话,切换镜像源成阿里的 再试一次
gem sources --add https://ruby.taobao.org/ --remove https://rubygems.org
#如果之前已经换成国内的需要把将上面的 https://rubygems.org 换成 https://gems.ruby-china.org即:
gem sources --add https://ruby.taobao.org/ --remove https://gems.ruby-china.org
#然后
vim Gemfile
#修改为:
source "https://gems.ruby-china.org"
安装成功:

不排除还有失败的可能,可以把logstash-input-mongodb-0.4.1.gem文件下载下来(这里把文件移动到logstash目录下了),执行
./logstash-plugin install logstash-input-mongodb-0.4.1.gem
安装成功:

接下来就是添加logstash配置文件如下:
input {
mongodb {
uri => 'mongodb://192.168.1.43:27017/testData'
placeholder_db_dir => '/opt/logstash-mongodb/'
placeholder_db_name =>'testData.db'
collection => 'test_Current'
}
}
filter
{
# 把mongodb的_id替换掉,因为_id是跟es中的_id相冲突
mutate {
rename => ["_id", "uid"]
}
# ruby {
# code => "event.set('message', eval(event('title')))"
# }
}
output {
file {
path => "/var/log/mongons.log"
}
stdout {
codec => json_lines
}
elasticsearch {
hosts => ["192.168.1.171:9200"]
index => "testData"
manage_template=>true
document_type => "judicial"
}
}
启动:
bin/logstash -f logstash.conf
#后台启动:
nohup bin/logstash -f logstash.conf &>/var/log/null &
通过logstash-input-mongodb插件将mongodb数据导入ElasticSearch的更多相关文章
- logstash用jdbc插件将数据库内容导入elasticsearch时间字段相差5小时
logstash将mysql的数据导入elasticsearch之后发现时间字段的相差5个小时 解决办法: 在数据库连接配置后面加上?serverTimezone=UCT这个就OK了 logstash ...
- Logstash学习之路(四)使用Logstash将mysql数据导入elasticsearch(单表同步、多表同步、全量同步、增量同步)
一.使用Logstash将mysql数据导入elasticsearch 1.在mysql中准备数据: mysql> show tables; +----------------+ | Table ...
- 日志收集之--将Kafka数据导入elasticsearch
最近需要搭建一套日志监控平台,结合系统本身的特性总结一句话也就是:需要将Kafka中的数据导入到elasticsearch中.那么如何将Kafka中的数据导入到elasticsearch中去呢,总结起 ...
- Hive数据导入Elasticsearch
Elasticsearch Jar包准备 所有节点导入elasticsearch-hadoop-5.5.1.jar /opt/cloudera/parcels/CDH-5.12.0-1.cdh5.12 ...
- 安装配置elasticsearch、安装elasticsearch-analysis-ik插件、mysql导入数据到elasticsearch、安装yii2-elasticsearch及使用
一.安装elasticsearch 获取elasticsearch的rpm:wget https://download.elastic.co/elasticsearch/release/org/ela ...
- 【大数据实战】将普通文本文件导入ElasticSearch
以<刑法>文本.txt为例. 一.格式化数据 1,首先,ElasticSearch只能接收格式化的数据,所以,我们需要将文本文件转换为格式化的数据---json. 下图为未处理的文本文件. ...
- Logstash使用mongodb插件报错: ArgumentError: wrong number of arguments (given 2, expected 1)
目录 背景 安装插件过程 背景 今天在使用logstash收集日志存储到mongodb的安装过程遇到了个错误,记录下来,错误就是下面这样: 配置文件很简单,由于是测试环境,命令行传入日志输入由ruby ...
- logstash同步mongodb数据到elasticsearch
一.安装logstash 二.安装mongodb插件 cd D:\Software\ELK5.5.0\logstash-5.5.0\bin logstash-plugin install logsta ...
- Yii2中mongodb使用ActiveRecord的数据操作
概况 Yii2 一个高效安全的高性能PHP框架.mongodb 一个高性能分布式文档存储NOSQL数据库. 关于mongodb与mysql的优缺点,应该都了解过. mysql传统关系数据库,安全稳定 ...
随机推荐
- 图论算法-网络最大流【EK;Dinic】
图论算法-网络最大流模板[EK;Dinic] EK模板 每次找出增广后残量网络中的最小残量增加流量 const int inf=1e9; int n,m,s,t; struct node{int v, ...
- 洛谷P1896 [SCOI2005]互不侵犯King【状压DP】
题目描述 在N×N的棋盘里面放K个国王,使他们互不攻击,共有多少种摆放方案.国王能攻击到它上下左右,以及左上左下右上右下八个方向上附近的各一个格子,共8个格子. 输入格式: 只有一行,包含两个数N,K ...
- Jenkins gitlab vue,angular,react 自动化构建【原】
大致思路,(本篇主要讲vue ,当然了 angular react 也是一样配置) ,转发请注明原链接,谢谢 :) 1. 服务器上面配置jenkins (安装配置,不介绍) 2.新建item 自由风格 ...
- wampserve部署
全名 WampServer 来自法国的软件 http://www.wampserver.com/en/ 一.下载方法: 1.一级导航点击download(发现只不过是本页的跳转,硕大的 wampser ...
- Python自动化--语言基础8--接口请求及封装
基于http协议,最常用的是GET和POST两种方法. 接口文档需要包含哪些信息: 接口名称接口功能接口地址支持格式 json/xml请求方式请求示例请求参数(是否必填.数据类型.传递参数格式)返回参 ...
- 搭建VUE项目的准备(利用vue-cli来构建项目)
首先需要明确的是:Vue.js 不支持 IE8 及其以下 IE 版本,一般用与移动端,基础:开启最高权限的DOS命令(否则会出现意外的错误提示) 注意:个人小推荐如果我们不知道如何才能开启最高权限 ...
- 《android开发艺术探索》读书笔记(八)--WindowManager
接上篇<android开发艺术探索>读书笔记(七)--动画 No1: Window是一个抽象类,它的具体实现是PhoneWindow.创建一个Window是很简单的事,只需要通过Windo ...
- Springdata mongodb 版本兼容 引起 Error [The 'cursor' option is required, except for aggregate with the explain argument
在Spring data mongodb 中使用聚合抛出异常 mongodb版本 为 3.6 org.springframework.dao.InvalidDataAccessApiUsageExce ...
- Docker系统八:Docker的存储驱动
Docker存储驱动 1. Docker存储驱动历史 Docker目前支持的greph driver包括: AUFS device-mapper btrfs overlayfs(重点) 关于各存储驱的 ...
- 关于 Java 面试,你应该准备这些知识点
来源:占小狼, www.jianshu.com/p/1b2f63a45476 马老师说过,员工的离职原因很多,只有两点最真实: 钱,没给到位 心,受委屈了 当然,我是想换个平台,换个方向,想清楚为什么 ...