流程:爬一些豆瓣读书的数据到 mysql 中,再使用 logstash 传输到 elasticsearch 中
爬虫代码:https://blog.csdn.net/W_Meng_H/article/details/111408984
es安装:https://blog.csdn.net/W_Meng_H/article/details/105200771
kibana安装:https://blog.csdn.net/W_Meng_H/article/details/111414096
PS:统一 es 、kibana 和 logstash 的版本
一、获取 logstash 镜像
docker run -d --name=logstash logstash:7.6.2
二、拷贝 logstash 配置文件
docker cp logstash:/usr/share/logstash/config/ /tools/dockerdata/logstash/
docker cp logstash:/usr/share/logstash/pipeline/ /tools/dockerdata/logstash/
docker cp logstash:/usr/share/logstash/logstash-core/lib/jars/ /tools/dockerdata/logstash/
三、把 mysql-connector-java-5.1.47.jar 拷贝
/tools/dockerdata/logstash/jars
四、修改 pipeline 文件夹里的 logstash.conf 文件
vim /tools/dockerdata/logstash/pipeline/logstash.conf
input {
jdbc {
# jdbc驱动包位置
jdbc_driver_library => "/usr/share/logstash/logstash-core/lib/jars/mysql-connector-java-5.1.47.jar"
# 要使用的驱动包类,不同数据库调用的类不同
jdbc_driver_class => "com.mysql.jdbc.Driver"
# mysql数据库连接信息
jdbc_connection_string => "jdbc:mysql://ip:3306/douban?useSSL=false&characterEncoding=UTF-8&serverTimezone=GMT%2b8"
# mysql用户名
jdbc_user => "root"
# mysql密码
jdbc_password => "root"
# 启用分页
jdbc_paging_enabled => "true"
# 每页数量
jdbc_page_size => "50"
# 用于输入数据的编解码器
codec => plain { charset => "UTF-8"}
#是否需要记录某个column 的值,如果 record_last_run 为真,可以自定义我们需要表的字段名称,
#此时该参数就要为 true. 否则默认 track 的是 timestamp 的值.
use_column_value => true
#是否清除 last_run_metadata_path 的记录,如果为真那么每次都相当于从头开始查询所有的数据库记录
clean_run => false
#定时任务,默认一分钟
schedule => "*/10 * * * * *"
# 你要执行的语句
statement => "SELECT * FROM books WHERE inputtime > :sql_last_value AND inputtime < NOW() ORDER BY inputtime DESC;"
}
}
filter {
mutate {
# 删除无用字段
remove_field => ["@timestamp", "@version"]
}
}
output {
elasticsearch {
# es ip:port
hosts => "ip:9200"
# 索引
index => "books"
# _id
document_id => "%{id}"
}
}
五、启动 logstash 镜像
PS:记得开启 es 服务
修改文件权限:
chmod -R 775 /tools/dockerdata/logstash/
启动 logstash:
docker run -d \
-e TZ=Asia/Shanghai --privileged=true --network=host \
-m=1G --memory-swap=1G \
-v /tools/dockerdata/logstash/config/:/usr/share/logstash/config/ \
-v /tools/dockerdata/logstash/pipeline/:/usr/share/logstash/pipeline/ \
-v /tools/dockerdata/logstash/jars/:/usr/share/logstash/logstash-core/lib/jars/ \
--name=logstash \
logstash:7.6.2
六、查看数据是否导入
访问 kibana 查看效果:
logstash日志:
Kibana使用手册之Index Pattern:https://blog.csdn.net/tian_111222333/article/details/102917631