Elasticsearch+Kibana+Logstash搭建搜索引擎并每分钟同步MySQL数据

Elasticsearch+Kibana+Logstash搭建搜索引擎并每分钟同步MySQL数据

By rambo

一.下载:

1.elasticsearch下载地址:https://www.elastic.co/cn/downloads/elasticsearch

2.kibana下载地址:https://www.elastic.co/cn/downloads/kibana

3.logstash下载地址:https://www.elastic.co/cn/downloads/logstash

二.启动elasticsearch

开放远程访问
elasticsearch.yml配置 network.host: 0.0.0.0,cluster.initial_master_nodes: ["node-1", "node-2"]

cd E:\elasticsearch-7.3.0\bin

输入elasticsearch.bat

访问:http://localhost:9200/

注册windows服务elasticsearch-service.bat install

三.启动kibana

E:\kibana-7.3.0-windows-x86_64\config文件夹中kibana.yml配置 elasticsearch.hosts: ["http://localhost:9200"]

E:\kibana-7.3.0-windows-x86_64\bin> kibana.bat

四.启动logstash

E:\logstash-7.3.0\bin中创建logstash_mysql.conf文件,内容

input {
 stdin { }
    jdbc {
        jdbc_connection_string => "jdbc:mysql://localhost:3306/test001"

        jdbc_user => "root"

        jdbc_password => ""

        jdbc_driver_library => "E:/logstash-7.3.0/bin/mysql-connector-java-5.1.6-bin.jar"

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

        jdbc_paging_enabled => "true"

        jdbc_page_size => "50000"
        statement => "SELECT fd_id,fd_class_name,sessionId FROM sys_log"
        schedule => "* * * * *"
    }
 }

 output {
     stdout {
        codec => json_lines
    }
    elasticsearch {
        hosts => "localhost:9200"
        index => "sys_log_index"
        document_type => "fd_id"
        document_id => "%{fd_id}"
    }
}

执行:E:\logstash-7.3.0\bin>logstash -f logstash_mysql.conf
在kibana中查看elasticsearch数据

GET sys_log_index/_search
{
  "query": {
    "match_all": {
    }
  }
}

Elasticsearch+Kibana+Logstash搭建搜索引擎并每分钟同步MySQL数据_第1张图片

五、问题&进阶功能

1.如果sql语句复杂,可以修改如下配置logstash_mysql.conf

input {
 stdin { }
    jdbc {
        jdbc_connection_string => "jdbc:mysql://localhost:3306/test001"

        jdbc_user => "root"

        jdbc_password => ""

        jdbc_driver_library => "E:/logstash-7.3.0/bin/mysql-connector-java-5.1.6-bin.jar"

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

        jdbc_paging_enabled => "true"

        jdbc_page_size => "50000"
        #statement => "SELECT fd_id,fd_class_name,sessionId FROM sys_log"
        statement_filepath => "E:/logstash-7.3.0/config/mysql-sys_log-jdbc.sql"
        #一分钟同步一次
        schedule => "* * * * *"
        jdbc_default_timezone =>"Asia/Shanghai"
        #是否清除 last_run_metadata_path 的记录,如果为真那么每次都相当于从头开始查询所有的数据库记录
        clean_run => false 
        #是否将 字段(column) 名称转小写
        lowercase_column_names => false
    }
 }

 output {
    # 这里输出调试,正式运行时可以注释掉
    stdout {
        codec => json_lines
    }
    elasticsearch {
        hosts => "localhost:9200"
        index => "sys_log_index"
        document_type => "fd_id"
        document_id => "%{fd_id}"
    }
}

E:\logstash-7.3.0\config增加文件mysql-sys_log-jdbc.sql内容SELECT fd_id,fd_class_name,sessionId FROM sys_log


记录:

时间 作者 内容 本版
2019-08-05 Rambo 创建 V1.0

苔花如米小,也学牡丹开。

版权声明:本文为原创文章,转载请附上链接!

你可能感兴趣的:(Elasticsearch+Kibana+Logstash搭建搜索引擎并每分钟同步MySQL数据)