Logstash同步mysql数据库信息到ES

原文链接:http://www.cnblogs.com/ylht/p/10195283.html

@font-face{ font-family:"Times New Roman"; } @font-face{ font-family:"宋体"; } @font-face{ font-family:"DejaVu Sans"; } @font-face{ font-family:"方正黑体_GBK"; } @font-face{ font-family:"Calibri"; } p.MsoNormal{ mso-style-name:正文; mso-style-parent:""; margin:0pt; margin-bottom:.0001pt; mso-pagination:none; text-align:justify; text-justify:inter-ideograph; font-family:Calibri; mso-fareast-font-family:宋体; mso-bidi-font-family:'Times New Roman'; font-size:10.5000pt; mso-font-kerning:1.0000pt; } h1{ mso-style-name:"标题 1"; mso-style-next:正文; margin-top:17.0000pt; margin-bottom:16.5000pt; mso-para-margin-top:0.0000gd; mso-para-margin-bottom:0.0000gd; page-break-after:avoid; mso-pagination:lines-together; text-align:justify; text-justify:inter-ideograph; mso-outline-level:1; line-height:240%; font-family:Calibri; mso-fareast-font-family:宋体; mso-bidi-font-family:'Times New Roman'; font-weight:bold; font-size:22.0000pt; mso-font-kerning:22.0000pt; } h2{ mso-style-name:"标题 2"; mso-style-noshow:yes; mso-style-next:正文; margin-top:13.0000pt; margin-bottom:13.0000pt; mso-para-margin-top:0.0000gd; mso-para-margin-bottom:0.0000gd; page-break-after:avoid; mso-pagination:lines-together; text-align:justify; text-justify:inter-ideograph; mso-outline-level:2; line-height:172%; font-family:'DejaVu Sans'; mso-fareast-font-family:方正黑体_GBK; mso-bidi-font-family:'Times New Roman'; font-weight:bold; font-size:16.0000pt; mso-font-kerning:1.0000pt; } span.msoIns{ mso-style-type:export-only; mso-style-name:""; text-decoration:underline; text-underline:single; color:blue; } span.msoDel{ mso-style-type:export-only; mso-style-name:""; text-decoration:line-through; color:red; } @page{mso-page-border-surround-header:no; mso-page-border-surround-footer:no;}@page Section0{ margin-top:72.0000pt; margin-bottom:72.0000pt; margin-left:90.0000pt; margin-right:90.0000pt; size:595.3000pt 841.9000pt; layout-grid:15.6000pt; } div.Section0{page:Section0;}

 

Logstash同步mysql数据库信息到ES

前提是ELK安装没问题

安装jdbc的数据连接插

使用logstash-plugin install logstash-input-jdbc 命令

进入到logstash安装目录下的bin目录(我的logstash安装目录:/usr/local/

[root@es1 bin]# cd /usr/local/logstash-5.5.2/bin

[root@es1 bin]# ll

total 100

-rwxr-xr-x 1 root root   377 Aug 14  2017 cpdump

-rw-r--r-- 1 root root 15821 Dec 27 00:58 hs_err_pid1888.log

-rw-r--r-- 1 root root 15821 Dec 27 01:01 hs_err_pid1929.log

-rw-r--r-- 1 root root 15821 Dec 27 01:05 hs_err_pid2026.log

-rwxr-xr-x 1 root root   155 Aug 14  2017 ingest-convert.sh

-rwxr-xr-x 1 root root  1949 Aug 14  2017 logstash

-rw-r--r-- 1 root root   677 Aug 14  2017 logstash.bat

-rw-r--r-- 1 root root   756 Dec 27 16:30 logstash.conf

-rwxr-xr-x 1 root root  5400 Aug 14  2017 logstash.lib.sh

-rwxr-xr-x 1 root root   448 Aug 14  2017 logstash-plugin

-rw-r--r-- 1 root root   251 Aug 14  2017 logstash-plugin.bat

-rw-r--r-- 1 root root  1138 Dec 27 17:21 mysqltoes.conf

-rwxr-xr-x 1 root root   840 Aug 14  2017 ruby

-rw-r--r-- 1 root root  2795 Aug 14  2017 setup.bat

-rwxr-xr-x 1 root root  3530 Aug 14  2017 system-install

 

新建文件mysqltoes.conf

[root@es1 log]# vim /usr/local/logstash-5.5.2/bin/mysqltoes.conf

#

input {

 stdin { }

    jdbc {

        #需要同步的数据库

        jdbc_connection_string => "jdbc:mysql://192.168.100.112:3306/zabbix"

 

        jdbc_user => "root"

 

        jdbc_password => "123456"

 

        #本地jar

        jdbc_driver_library => "/opt/mysql-connector-java-5.1.47-bin.jar"

 

        jdbc_driver_class => "com.mysql.jdbc.Driver"

 

        jdbc_paging_enabled => "true"

 

        jdbc_page_size => "50000"

 

        #获取到记录的SQL查询语句

        statement => "SELECT * FROM users"

 

        #定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新

        schedule => "* * * * *"

    }

 }

 

 output {

     stdout {

        codec => json_lines

    }

    elasticsearch {

        #ESIP地址与端口

        hosts => ["192.168.100.101:9200","192.168.100.102:9200","192.168.100.103:9200"]

 

        #ES索引名称(自己定义的)

        index => "users"

 

        #文档类型

        document_type => "user"

 

        #文档类型id%{userid}意思是取查询出来的userid的值,并将其映射到es_id字段中

        document_id => "%{userid}"

    }

}

 

运行同步

./logstash -f mysqltoes.conf

 

查看同步结果

 

转载于:https://www.cnblogs.com/ylht/p/10195283.html

展开阅读全文
博主设置当前文章不允许评论。

mysql数据库同步

04-28

在网上我找了一下,大家都说的是这样:“ mysql从3.23.15版本以后提供数据库复制功能。利用该功能可以实现两个数据库同步,主从模式,互相备份模式的功能。rn  rn  数据库同步复制功能的设置都在mysql的设置文件中体现。mysql的配置文件(一般是my.cnf)rn  在unix环境下在/etc/mysql/my.cnf 或者在mysql用户的home目录下面的my.cnf.rn  window环境中,如果c:根目录下有my.cnf文件则取该配置文件。当运行mysql\bin\winmysqladmin.exe工具时候,该工具会把c:根目录下的my.cnf 命名为mycnf.bak。并在winnt目录下创建my.ini。mysql服务器启动时候会读该配置文件。所以可以把my.cnf中的内容拷贝到my.ini文件中,用my.ini文件作为mysqlrn  服务器的配置文件。rn  rn  设置方法:rn  设置范例环境:rn  操作系统:window2000 professionalrn  mysql:4.0.4-beta-max-nt-logrn  A ip:10.10.10.22rn  B ip:10.10.10.53rn  A:设置rn  1.增加一个用户最为同步的用户帐号:rn  GRANT FILE ON *.* TO backup@'10.10.10.53' IDENTIFIED BY ‘1234’rn  2.增加一个数据库作为同步数据库:rn  create database backuprn  B:设置rn  1.增加一个用户最为同步的用户帐号:rn  GRANT FILE ON *.* TO backup@'10.10.10.22' IDENTIFIED BY ‘1234’rn  2.增加一个数据库作为同步数据库:rn  create database backuprn  rn  主从模式:A->Brn  A为masterrn  修改A mysql的my.ini文件。在mysqld配置项中加入下面配置:rn  server-id=1rn  log-binrn  #设置需要记录log 可以设置log-bin=c:\mysqlbak\mysqllog 设置日志文件的目录,rn  #其中mysqllog是日志文件的名称,mysql将建立不同扩展名,文件名为mysqllog的几个日志文件。rn  binlog-do-db=backup #指定需要日志的数据库rn  rn  重起数据库服务 rn  用show master status 命令看日志情况。rn  rn  B为slavern  修改B mysql的my.ini文件。在mysqld配置项中加入下面配置:rn  server-id=2rn  master-host=10.10.10.22rn  master-user=backup #同步用户帐号rn  master-password=1234rn  master-port=3306rn  master-connect-retry=60 预设重试间隔60秒rn  replicate-do-db=backup 告诉slave只做backup数据库的更新rn  rn  重起数据库 rn  用show slave status看同步配置情况。rn  rn  注意:由于设置了slave的配置信息,mysql在数据库目录下生成master.inforn  所以如有要修改相关slave的配置要先删除该文件。否则修改的配置不能生效。rn  rn  双机互备模式rn  如果在A加入slave设置,在B加入master设置,则可以做B->A的同步。rn  在A的配置文件中 mysqld 配置项加入以下设置:rn  master-host=10.10.10.53rn  master-user=backuprn  master-password=1234rn  replicate-do-db=backuprn  master-connect-retry=10rn  rn  在B的配置文件中 mysqld 配置项加入以下设置:rn  log-bin=c:\mysqllog\mysqllogrn  binlog-do-db=backuprn  rn  注意:当有错误产生时*.err日志文件。同步的线程退出,当纠正错误后要让同步机制进行工作,运行slave startrn  rn  重起AB机器,则可以实现双向的热备。rn  rn  测试:rn  向B批量插入大数据量表AA(1872000)条rn  A数据库每秒钟可以更新2500条数据。”rn但是我的mysql是5.1.30-win32的,安装后在C:\Program Files\MySQL\MySQL Server 5.1这个文件夹里根本就没有my.cnf,只有my.ini,有些说要用winmysqladmin.exe压运行这个文件后就会在c盘的根目录下有一个mycnf.bak文件,同时在C:\WINDOWS文件夹里生成一个my.ini文件。但是我安装了并运行了winmysqladmin.exe之后,在c盘的根目录下根本就没有一个mycnf.bak文件,我在整个电脑里都没有找到这个文件。不知道我哪里没有做对,忘高手们指点一二。帮助后给高分。 论坛

没有更多推荐了,返回首页