文章目录
-
- 1. Logstash是什么
- 2. Logstash控制台测试
- 3. MySQL数据导入Elasticsearch
-
- 3.1 创建配置文件
- 3.2 启动Logstash
- 3.3 实时更新数据测试
1. Logstash是什么 Logstash是一款轻量级的日志搜集处理框架,可以方便的把分散的、多样化的日志搜集起来,并进行自定义的处理,然后传输到指定的位置,比如某个服务器或者文件
logstash常用于日志系统中做日志采集设备,最常用于ELK中作为日志收集器使用,其功能包括实时更新数据等,非常强大
2. Logstash控制台测试
- 进入安装Logstash的 /bin目录下,打开cmd控制台(logstash是执行文件)
文章图片
- 执行命令
logstash -e 'input { stdin { } } output { stdout {} }
-e
: 执行stdin
:表示输入流,指从键盘输入stdout
:表示输出流,指从控制台输出--config 或 -f 配置文件
: 后跟参数类型可以是一个字符串的配置或全路径文件名或全路径路径(如:/etc/logstash.d/,logstash会自动读取/etc/logstash.d/目录下所有*.conf 的文本文件,然后在自己内存里拼接成一个完整的大配置文件再去执行)
文章图片
3. MySQL数据导入Elasticsearch 【logstash|使用Logstash将MySQL数据导入Elasticsearch】这里使用
-f
命令,使用配置文件配置输入流和输出流,把mysql表中的数据导入ES服务器中,并实时更新3.1 创建配置文件
在
Logstash/
目录下创建文件夹 mysql_es_conf
(文件名称随便起,文件夹创建位置也随意)文章图片
mysql_es_conf
文件夹下添加 mysql_es.conf
文件input {
jdbc {
# mysql 连接地址
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/数据库名称?useUnicode=true&characterEncoding=utf-8&useSSL=false"
# 用户名 密码
jdbc_user => "root"
jdbc_password => "root"
# mysql 驱动jar包的绝对路径,不要有中文目录
jdbc_driver_library => "D:\Software\EnvSoftware\logstash-5.6.8\mysql_es_conf\mysql-connector-java-5.1.46.jar"
# mysql 驱动Class
jdbc_driver_class => "com.mysql.jdbc.Driver"
# 是否开启分页 true开启
jdbc_paging_enabled => "true"
# 分页大小 10000条一页
jdbc_page_size => "10000"
# sql语句的配置文件路径,如果sql语句比较长,那么写在文件里指定路径
#statement_filepath => ""
# sql语句 select * 字段就全部添加到ES里了,如果要指定指定字段 select id,name ...
statement => "select id,name,xx,xx from tb_article"
#定时字段 各字段含义(由左至右)分、时、天、月、年,全部为*默认含义为每分钟都更新(测试结果,不同的话请留言指出)
schedule => "* * * * *"
}
}output {
elasticsearch {
#ES IP地址与端口
hosts => "xxx.xxx.xxx.xxx:9200"
#ES索引名称(自己定义的)
index => "xxx"
#自增ID编号 这里是固定语法 %{} 里面写mysql表那个字段就用那个字段作为ES _id 的值
document_id => "%{id}"
# ES 下的 type
document_type => "xxx"
}
# 控制台输出输入流和输出流
stdout {
#以JSON格式输出
codec => json_lines
}
}
mysql_es_conf
文件夹下添加 mysql 的驱动包文章图片
3.2 启动Logstash
执行命令
logstash -f ../mysql_es_conf/mysql.conf
可以看到mysql中的一条数据已经导入ES服务器中了
文章图片
查看ES服务器中是否有数据导入,可以看到导入成功
文章图片
3.3 实时更新数据测试
修改mysql中的数据,看是否会同步到 ES服务器中
文章图片
查看控制台输出
文章图片
查看ES服务器中数据是否更新,更新成功
文章图片
推荐阅读
- 编程语言|Canvas渲染会取代DOM吗()
- PHPMyAdmin MySQL错误(列”mycolumnname”不能为FULLTEXT索引的一部分)
- 如何使用C#Winforms和XAMPP连接到MySQL
- 如何使用Doctrine和Symfony 3实现全文搜索(MySql)
- ssh|计算机毕业设计springboot智慧问诊系统
- 人工智能|用PaddlePaddle打比赛!
- 大数据|爱可可老师(一个研究生的自我修养!)
- 前端|Web渗透测试-实战 方法 思路 总结
- java|为什么 MySQL 索引要用 B+tree,而且还这么快()