通过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传统关系数据库,安全稳定 ...
随机推荐
- Go学习笔记03-附录
第三部分 附录 A. 工具 1. 工具集 1.1 go build gcflags ldflags 更多参数: go tool 6g -h 或 [https://golang.org/cmd/gc/] ...
- 想玩 BGP 路由器么?用 CentOS 做一个
在之前的教程中,我对如何简单地使用Quagga把CentOS系统变成一个不折不扣地OSPF路由器做了一些介绍.Quagga是一个开源路由软件套件.在这个教程中,我将会重点讲讲如何把一个Linux系统变 ...
- file_put_contents写入文字换行
file_put_contents写入文字换行 注意要使用双引号 "\r\n"
- CENTOS6.6下mysql5.7.11带boost和不带boost的源码安装
本文来自我的github pages博客http://galengao.github.io/ 即www.gaohuirong.cn Mysql5.7版本更新后有很多变化,比如json等,连安装都有变化 ...
- ubuntu17 安装中文输入法
在此说的是intelligent pinyin.我首先尝试的是搜狗输入法,虽然最终安装成功了,但还是直接卸载了.因为它不仅需要fcitx框架,在安装成功后,标题栏上面还会出现两个输入法图标.真正不能让 ...
- 关于FFMPeg-PHP你必须要知道的
#PHP FFmpeg [![Build Status](https://secure.travis-ci.org/PHP-FFMpeg/PHP-FFMpeg.png?branch=master)]( ...
- Egret学习笔记 (Egret打飞机-9.子弹对敌机和主角的碰撞)
运行起来,虽然主角飞机和敌机都在互相发射子弹,但是子弹打中了就和没打中效果是一样的.. 这一章我们就来处理子弹和飞机的碰撞问题. 我们所有的操作都是基于Main这个容器来做的.所以我就把这个处理放到M ...
- python爬虫提取冰与火之歌五季的种子
# -*- encoding:utf-8 -*- import requests import re import sys reload(sys) sys.setdefaultencoding(&qu ...
- Qt 5.9.4 如何静态编译和部署?
Qt 5.9.4 如何静态编译和部署? MSVC2015 x86 静态编译 Qt 部署静态库 VS2015 部署静态库 1. MSVC2015 x86 静态编译 1.1 Qt 官网下载最新源代码 立即 ...
- aforge 学习-命名空间中文理解
序列 名称 介绍 1 Aforge AForge AForge名称空间的核心名称空间.微软网络框架,其中包含核心类所使用的其他框架的命名空间和类,可以独立用于各种用途. 2 AForge.Cont ...