1、自己安装elasticsearch(本人版本7.6);
2、安装数据现实化插件(elasticsearch-head获取kibana);
3、下载logstashs(我的版本7.7.0) 地址https://www.elastic.co/cn/downloads/logstash
4、下载mysql-connector-java(应该是驱动架包吧 不懂java不知道说得对不对)
地址 https://mvnrepository.com/artifact/mysql/mysql-connector-java
这个jar包要用maven或其他方式导入
然后放在logstash-7.0.0目录下(目录可以自定义)
5.添加logstash的bin目录下添加mysql_info.conf
6.编辑mysql_info.conf
input {
stdin {
}
jdbc {
# mysql数据库连接
jdbc_connection_string => "jdbc:mysql://127.0.0.1:3306/fast?useUnicode=true&characterEncoding=utf8&serverTimezone=UTC"
# mysqly用户名和密码
jdbc_user => "root"
jdbc_password => ""
# 驱动配置
jdbc_driver_library => "D:\service\logstash-7.7.0\mysql\mysql-connector-java\8.0.20\mysql-connector-java-8.0.20.jar"
# 驱动类名
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
# 执行指定的sql文件
#statement_filepath => "D:\service\logstash-7.7.0\mysql\sql\fa_search.sql"
#执行的sql语句
statement => "SELECT * FROM fa_search"
# 设置监听 各字段含义 分 时 天 月 年 ,默认全部为*代表含义:每分钟都更新
schedule => "* * * * *"
# 索引类型
#type => "blog"
}
}
output {
elasticsearch {
#es服务器
hosts => ["localhost:9200"]
#ES索引名称
index => "fa_search"
#自增ID
document_id => "%{id}"
}
stdout {
codec => json_lines
}
}
7、附上mysql表
CREATE TABLE `fa_search` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(32) CHARACTER SET utf8 NOT NULL,
`content` text NOT NULL,
`createtime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`id`),
KEY `name` (`name`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;
8、利用php-elasticearch api 创建索引(要添加ik中文分词插件)
$params = [
'index' => 'fa_search',
'body' => [
'settings' => [
'number_of_shards' => 1,
'number_of_replicas' => 0
],
'mappings' => [
'_source' => [
'enabled' => true
],
'properties' => [
'id' => [
'type' => 'keyword'
],
'name' => [
'type' => 'text',
'analyzer' => 'ik_max_word'
],
'content' => [
'type' => 'text',
'analyzer' => 'ik_max_word'
],
'createtime' => [
'type' => 'date'
]
]
]
]
];
$response = $this->client->indices()->create($params);
var_dump($response);
die;
9、最后启动logstash -f mysql_info.conf
如有报错就查询报错信息解决