通过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传统关系数据库,安全稳定 ...
随机推荐
- LNMP搭建04 -- 配置Nginx支持PHP
首先建立存放网页文件的目录,执行 mkdri /usr/local/server/www 然后进入到该目录中 cd /usr/local/server/www 然后创建一个测试文件: phpinfo ...
- Linux expect自动登录ssh,ftp
[http://blog.51yip.com/linux/1462.html#] #!/usr/bin/expect -f set ip 192.168.1.201 set password meim ...
- Jenkins gitlab vue,angular,react 自动化构建【原】
大致思路,(本篇主要讲vue ,当然了 angular react 也是一样配置) ,转发请注明原链接,谢谢 :) 1. 服务器上面配置jenkins (安装配置,不介绍) 2.新建item 自由风格 ...
- angular+require前端项目架构搭建
app //应用入口 directive //自定义指令 require-main //require的主配置文件 存放公共调用的js service //请求后端数据公有类 controllers ...
- PHP 个人用到的琐碎代码记录
查找字符串出现次数的方法 substr_count(string,substring,[start],[length]) 函数延迟代码执行若干秒,若成功,返回 0,否则返回 false. sleep( ...
- 用yii2给app写接口(上)
Yii2如何实现RESTful风格的API 1.建立单独的应用程序 为了增加程序的可维护性,易操作性,我们选择新建一套应用程序,这也是为了和前台应用.后台应用区分开操作.有些人要嚷嚷了,为啥非得单独搞 ...
- CentOs下Mongodb的下载与安装
1.下载MongoDB(64位) http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.4.9.tgz tar zxvf mongodb-lin ...
- PHP判断是手机端还是PC端
function check_wap() { if (isset($_SERVER['HTTP_VIA'])) return true; if (isset($_SERVER['HTTP_X_NOKI ...
- LeetCode第四天
leetcode 第四天 2018年1月4日 15.(628)Maximum Product of Three Numbers JAVA class Solution { public int max ...
- 王垠:我和Google的故事
也许有人看见过我批判 Google 的那篇英文文章.它好像有一部分片面性,所以被我从英文博客上拿下来了.我一直在反思自己在 Google 的经历,因为在这个公司工作总是感觉不对劲,但是却总也说不清楚为 ...