OPS 2017/09/11 Y.ch

Logstash 同步 Sql Server 到 Elasticsearch

1.下载并安装 Maven 非必要

  1. wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
  2. sed -i s/\$releasever/6/g /etc/yum.repos.d/epel-apache-maven.repo
  3. yum install maven

2.安装 Microsoft JDBC Driver 6.2 for SQL Server
a).通过 Maven

  1. com.microsoft.sqlserver
  2. mssql-jdbc
  3. 6.2.1.jre8

b).直接下载,重命名为 jdbc-6.2.1.jre8.jar

  1. wget http://search.maven.org/remotecontent?filepath=com/microsoft/sqlserver/mssql-jdbc/6.2.1.jre8/mssql-jdbc-6.2.1.jre8.jar

3.创建 logstash 配置文件并保存到/etc/logstash/conf.d

  1. input {
  2.     jdbc {
  3.         jdbc_driver_library => "/usr/share/logstash/jdbc-6.2.1.jre8.jar"
  4.         jdbc_driver_class => "com.microsoft.sqlserver.jdbc.SQLServerDriver"
  5.         jdbc_connection_string => "jdbc:sqlserver://192.168.6.1:1433;databaseName=Logstash;integratedSecurity=false;user=***;password=***;"
  6.         jdbc_user => "***"
  7.         jdbc_password => "***"
  8.         statement => "SELECT * FROM [Logstash].[dbo].[base]"
  9.     }
  10. }
  11. output {
  12.     elasticsearch {
  13.         hosts => "192.168.6.128:9200"
  14.         index => "logstash"
  15.         document_type =>"dbo"
  16.         document_id => "%{id}"
  17.     }
  18.     stdout { codec=> rubydebug }
  19. }

 

4.重新启动 logstash

  1. systemctl restart logstash.service

5.设置数据库,并插入测试数据

  1. CREATE TABLE [dbo].[base]([id] [int] IDENTITY(1,1) NOT NULL,[name] [nvarchar](50) NULL,create_time] [datetime] NULL,CONSTRAINT [PK_base] PRIMARY KEY CLUSTERED([id] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ONON [PRIMARY]) ON [PRIMARY]
  2. GO
  3. SET IDENTITY_INSERT [dbo].[base] ON
  4. INSERT [dbo].[base] ([id],[name],[create_time]) VALUES (1,NULL,NULL),(2,N'Hello',getdate()),(3,N'Hello1',getdate())
  5. GO
  6. SET IDENTITY_INSERT [dbo].[base] OFF
  7. GO

6.等待结果

已婚,有娃,已过而立之年,奔波于北京,深圳与济南之间的靠写代码为生,喜欢玩游戏的胖子。

发表评论

电子邮件地址不会被公开。