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": {
}
}
}
五、问题&进阶功能
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 |
苔花如米小,也学牡丹开。
版权声明:本文为原创文章,转载请附上链接!