热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

通过Logstash由MySQL和SQLServer向Elasticsearch导入数据

学习整理,仅用参考!所需软件版本信息elasticsearch-6.0.0-beta2.msi官方下载链接:https:www.elastic.codownlo…请选择对应的操作系

学习整理,仅用参考!

所需软件版本信息

  • elasticsearch-6.0.0-beta2.msi
    官方下载链接:https://www.elastic.co/downlo…
    请选择对应的操作系统版本
  • kibana-6.0.0-beta2-windows-x86_64.zip
    官方下载链接:https://www.elastic.co/downlo…
    请选择对应的操作系统版本
  • logstash-6.0.0-beta2.zip
    官方下载链接:https://www.elastic.co/downlo…
    请选择对应的操作系统版本
  • Java-jdk-8u131-windows-x64.exe
    官方下载链接:http://www.oracle.com/technet…
    请选择对应的操作系统版本,大版本一致即可
  • mysql-connector-java-5.1.44-bin.jar
    官方下载链接:https://dev.mysql.com/downloa…
    请选择对应的操作系统版本
  • mysql-installer-community-5.7.19.0.msi
    官方下载链接:https://dev.mysql.com/downloa…
    请选择对应的操作系统版本
  • SQL Server 2016
    官方下载链接:https://www.microsoft.com/en-…
  • Microsoft JDBC Driver 6.2 for SQL Server
    官方下载链接:https://www.microsoft.com/zh-…
  • 操作系统:Windows 10 企业版(64位 已激活)

说明
部分软件官网下载地址的下载速度很慢,如果有类似阿里云服务器的云服务器,
可先在云服务器上进行下载(超快),然后拷贝到本地。
如若网址无法访问,请安装 蓝灯
也可下载我已整理好的,下载链接如下:

  • 点击下载ELK6.0三件套(提取密码:zqs1)
  • 点击下载ELK5.5.1三件套(提取密码:5o89)
  • 点击下载Java-jdk-8u131-windows-x64.exe(提取密码:3bg5)
  • 点击下载mysql-installer-community-5.7.19.0.msi(提取密码:05e1)
  • 点击下载mysql-connector-java-5.1.44-bin.jar(提取密码:069u)
  • 点击下载SQL Server 2016(提取密码:1pf9)
  • 点击下载Microsoft JDBC Driver 6.2 for SQL Server(提取密码:0hs1)
  • 点击下载配置文件(提取密码:2n4p)

说明
我已在本地“hosts”(C:WindowsSystem32driversetchosts)文件中添加“127.0.0.1 es”,
以下内容中的“es”请自行替换为“localhost”

安装ELK

  1. 安装 elasticsearch-6.0.0-beta2.msi
    注意安装路径,中间不要有中文和空格,这里我选择安装在C:\Elastic\Elasticsearch
    其他三个文件(lib、data、log)也放在C:\Elastic\Elasticsearch下(可通过勾选框一键修改);
    不安装其他插件,如x-pack(安装很慢,还需要配置以及license,后期可以加进去);
    在浏览器中访问“es:9200”,跳出类似如下内容说明正常(服务已正常启动):

《通过Logstash由MySQL和SQL Server向Elasticsearch导入数据》

  1. kibana-6.0.0-beta2-windows-x86_64.ziplogstash-6.0.0-beta2.zip解压到C:\Elastic
  2. 创建kibana的后台启动文件
    可直接下载上方提供的配置文件,或自行在C:\Elastic\kibana-6.0.0-beta2-windows-x86_64\bin下创建RunKibana.vbs,编辑内容如下:

    Set ws = CreateObject("Wscript.Shell")
    ws.run "cmd /c kibana.bat",vbhide

    保存文件后双击“RunKibana.vbs”运行,然后在浏览器中访问“es:5601”。
    正常跳出kibana的界面且没有错误提示说明kibana服务已正常启动(如有问题,请自行谷歌解决问题,然后继续下面的操作)。

安装Java并配置环境变量

JAVA_HOME : C:\Program Files\Java\jdk1.8.0_131(请根据自己的安装路径进行替换);
CLASSPATH : .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\d
Path : %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin
具体步骤可参照百度经验。

安装MySQL

根据自身需求进行安装,记住用户名和密码。我这里设置为“root”,密码“123qweASD”。
创建数据库“forelk”,并在“forelk”下创建表“elktable”,之后插入数据:

CREATE DATABASE `forelk` /*!40100 DEFAULT CHARACTER SET utf8 COLLATE utf8_bin */;
CREATE TABLE `elktable` (
`elkid` int(11) NOT NULL,
`elkname` varchar(45) COLLATE utf8_bin DEFAULT NULL,
`elkage` int(11) DEFAULT NULL,
`elksex` tinyint(4) DEFAULT NULL,
`elkbirth` date DEFAULT NULL,
PRIMARY KEY (`elkid`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;
INSERT INTO `forelk`.`elktable`
(`elkid`,
`elkname`,
`elkage`,
`elksex`,
`elkbirth`)
VALUES
(111,
aa,
11,
1,
2006);
INSERT INTO `forelk`.`elktable`
(`elkid`,
`elkname`,
`elkage`,
`elksex`,
`elkbirth`)
VALUES
(222,
bb,
22,
0,
1995);

准备MySQL的驱动

C:\Elastic\logstash-6.0.0-beta2\lib下新建mysqldriver文件夹,并将mysql-connector-java-5.1.44-bin.jar拷贝到mysqldriver文件夹中。

准备Logstash的配置文件

C:\Elastic\logstash-6.0.0-beta2\config下新建mysql.conf文件,编辑内容如下:

input {
jdbc {
jdbc_driver_library => "C:/Elastic/logstash-6.0.0-beta2/lib/mysqldriver/mysql-connector-java-5.1.44-bin.jar"
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_connection_string => "jdbc:mysql://es:3306/forelk?autoRecOnnect=true&useSSL=false"
jdbc_user => "root"
jdbc_password => "123qweASD"
schedule => "* * * * *"
jdbc_default_timezOne=> "Asia/Shanghai"
statement => "SELECT * FROM elktable;"
}
}
output {
elasticsearch {
index => "elkdb"
document_type => "elktable"
document_id => "%{elkid}"
hosts => ["es:9200"]
}
}

参数说明:

  • jdbc_driver_library:

数据库驱动路径,这里我填写的是绝对路径,可自行尝试相对路径;

  • jdbc_driver_class:

驱动名称;

  • jdbc_connection_string:
    数据库的连接字符串;
    forelk为数据库名;
    ?autoRecOnnect=true&useSSL=false自动重连并禁用SSL;
  • jdbc_user:

数据库用户名;

  • jdbc_password:

数据库密码;

  • schedule:

重复执行导入任务的时间间隔;

  • jdbc_default_timezone:

默认时区设置;

  • statement:

导入的表(查询SQL,可以过滤数据)

  • index:

索引名称(类似数据库名称);

  • document_type:

类型名称(类似数据库表名);

  • document_id:

类似主键;

  • hosts:

要导入到的Elasticsearch所在的主机;

执行导入

C:\Elastic\logstash-6.0.0-beta2Shift+鼠标右键,选择在此处打开命令窗口(W)
执行bin\logstash -f config\mysql.conf,执行结果如下:

《通过Logstash由MySQL和SQL Server向Elasticsearch导入数据》

执行查询

在Kibana的Dev Tools下执行GET elkdb/_search命令,
右侧的结果显示类似下图(我的MySQL表中插入了四条数据,所以这里导入的也是四条),
则说明导入成功。

《通过Logstash由MySQL和SQL Server向Elasticsearch导入数据》

以上为从MySQL导入数据到Elasticsearch的过程

从SQL Server导入数据到Elasticsearch的过程与上方类似。

安装SQL Server 2016

自动谷歌/百度安装,记住用户名和密码。我这里的用户名为sa,密码为123qweASD
注意防火墙关闭或添加入站规则(开通1433端口)。
SQL Server 2016配置管理器中启用SQL Server网络配置MSSQLSERVER的协议中的Named Pipes,然后重启SQL Server(MSSQLSERVER)服务。
确认通过客户端可以通过用户名和密码正常连接数据库。
执行下面的脚本,创建DB并插入数据:

USE [master]
GO
CREATE DATABASE [elkdb]
USE [elkdb]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[elktable](
[elkid] [NVARCHAR](50) NOT NULL,
[elkname] [NVARCHAR](50) NULL,
[elkage] [INT] NULL,
[elksex] [BIT] NULL,
[elkbirth] [DATETIME] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[elktable] ADD CONSTRAINT [DF_elktable_elkid] DEFAULT (NEWID()) FOR [elkid]
GO
ALTER TABLE [dbo].[elktable] ADD CONSTRAINT [DF_elktable_elkbirth] DEFAULT (GETDATE()) FOR [elkbirth]
GO
INSERT [dbo].[elktable] ([elkid], [elkname], [elkage], [elksex], [elkbirth]) VALUES (N'B0048C6E-05AD-4685-861F-E8F4A861D3AB', N'ssa', 123, 0, CAST(N'2017-09-08T09:39:12.567' AS DateTime))
GO
INSERT [dbo].[elktable] ([elkid], [elkname], [elkage], [elksex], [elkbirth]) VALUES (N'EAC8CC17-4E66-4C1C-964B-36D3CD875BDD', N'ssb', 456, 1, CAST(N'2017-09-08T09:39:23.090' AS DateTime))
GO
INSERT [dbo].[elktable] ([elkid], [elkname], [elkage], [elksex], [elkbirth]) VALUES (N'D672806D-6C4F-4CCB-9DCC-434A7ECDA083', N'ssc', NULL, 0, CAST(N'2017-09-08T09:39:33.050' AS DateTime))
GO
INSERT [dbo].[elktable] ([elkid], [elkname], [elkage], [elksex], [elkbirth]) VALUES (N'20DDA41B-A679-4627-B6ED-1D96AF953CF7', N'ssd', 789, NULL, CAST(N'2017-09-08T09:39:41.467' AS DateTime))
GO
INSERT [dbo].[elktable] ([elkid], [elkname], [elkage], [elksex], [elkbirth]) VALUES (N'6F9F8CD8-FCFB-4D88-B191-40DFD360C8C3', NULL, 135, NULL, CAST(N'2017-09-08T09:39:57.353' AS DateTime))
GO

准备SQL Server的驱动

与MySQL类似,在C:/Elastic/logstash-6.0.0-beta2/lib下创建sqlserverdriver文件夹,并将mssql-jdbc-6.2.1.jre8.jar拷贝到该文件夹下。

准备SQL Server的配置文件

C:/Elastic/logstash-6.0.0-beta2/config下创建sqlserver.conf,编辑内容:

input {
jdbc {
jdbc_driver_library => "C:/Elastic/logstash-6.0.0-beta2/lib/sqlserverdriver/mssql-jdbc-6.2.1.jre8.jar"
jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
jdbc_connection_string => "jdbc:sqlserver://es:1433;databaseName=elkdb;"
jdbc_user => "sa"
jdbc_password => "123qweASD"
schedule => "* * * * *"
jdbc_default_timezOne=> "Asia/Shanghai"
statement => "SELECT * FROM elktable"
}
}
output {
elasticsearch {
index => "sselkdb"
document_type => "sselktable"
document_id => "%{elkid}"
hosts => ["es:9200"]
}
}

参数说明同MySQL配置文件中的说明一致。

执行导入

C:\Elastic\logstash-6.0.0-beta2Shift+鼠标右键,选择在此处打开命令窗口(W)
执行bin\logstash -f config\sqlserver.conf,执行结果类似MySQL。

执行查询

在Kibana的Dev Tools下执行GET sselkdb/_search命令,
查询结果类似MySQL。

参考文档

  • Connection URL Sample
  • Using the JDBC Driver
  • Configuring Logstash
  • Logstash Configuration Examples
  • 利用Logstash插件进行Elasticsearch与Mysql的数据
  • Warning about SSL connection when connecting to MySQL database
  • MySQL到Elasticsearch的同步之路

声明

如需转载,请注明原文链接:https://segmentfault.com/a/11…!
如有疑问,请发邮件到ably@vip.163.com,Thanks♪(・ω・)ノ


推荐阅读
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了关于apache、phpmyadmin、mysql、php、emacs、path等知识点,以及如何搭建php环境。文章提供了详细的安装步骤和所需软件列表,希望能帮助读者解决与LAMP相关的技术问题。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
author-avatar
手机用户2502855107
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有