一、安装ElasticSearch
1.官网下载ElasticSearch,解压即可。(下载地址:https://www.elastic.co/downloads/elasticsearch)
2.进入安装目录下bin目录中,使用命令 ./elasticsearch 启动,启动输出信息结尾出现started 关键字,表示启动成功,使用./elasticsearch -d 命令使服务后台启动,程序默认端口为9200。
- 使用 http://localhost:9200 访问,结果如下
4.当前服务只允许本机访问,想要外网访问,想要修改安装目录下config目录中的elasticsearch.yml文件,
在yml文件中加入 network.host: 0.0.0.0 ,表示所有IP都可以访问。
二、安装logstash
logstash 可以直接和数据库关联,并且自动根据数据库中的数据更新索引。
安装版本需要和elasticsearch的版本一致。
1.下载安装包,上传到自定义的安装目录即可。(下载地址:https://www.elastic.co/downloads/logstash)
2.进入安装目录的bin目录中,执行如下命令:
./logstash -e ‘input { stdin { } } output { stdout {} }’
3.连接mysql
停掉logstash。
下载mysql JDBC驱动jar包,(下载地址:https://www.mysql.com/products/connector/)将jar包放在logstash目录下,
在 bin目录中新建文件 logstash-mysql.conf 。
logstash-mysql.conf 文件内容
input {
stdin {
}
jdbc {
# 数据库 数据库名称为elk,表名为book_table
jdbc_connection_string => "jdbc:mysql://localhost:3306/elk"
# 用户名密码
jdbc_user => "root"
jdbc_password => "root"
# jar包的位置
jdbc_driver_library => "/usr/elastic/logstash-6.5.3/mysql-connector-java-8.0.13.jar"
# mysql的Driver
jdbc_driver_class => "com.mysql.jdbc.Driver"
jdbc_paging_enabled => "true"
jdbc_page_size => "50000"
#statement_filepath => "config-mysql/book.sql"
statement => "select * from book_table"
schedule => "* * * * *"
#索引的类型
type => "book"
}
}
filter {
json {
source => "message"
remove_field => ["message"]
}
}
output {
elasticsearch {
hosts => "127.0.0.1:9200"
# index名
index => "elk"
# 需要关联的数据库中有有一个id字段,对应索引的id号
document_id => "%{id}"
}
stdout {
codec => json_lines
}
}
再次启动logstash,进入bin目录,执行命令:
./logstash -f logstash-mysql.conf
数据库中数据就被读取出来了。