引言
本文代码已提交至Github,有兴趣的同学可以下载来看看:https://github.com/ylw-github/taodong-shop
阅读本文前,为了保证思维的连贯性,可以先阅读之前的博客:
- 《淘东电商项目(38) -Docker下安装ES&Kibana(一次填完所有的坑)》
- 《淘东电商项目(40) -Docker下安装Logstash(一次填完所有的坑)》
- 《淘东电商项目(41) -利用Logstash自动同步数据库内容到ES(超详细)》
- 《淘东电商项目(42) -利用Logstash自动同步数据库内容到ES(多文件方式)》
- 《淘东电商项目(44) -Docker下搭建ElasticSearch集群》
本文目录结构:
1. kibana配置ES集群
1.新建宿主主机的挂载配置文件:
cd /usr/local mkdir -p kibana/config cd kibana cd config vi kibana.yml
配置内容如下:
server.port: 5601 server.host: "0.0.0.0" elasticsearch.hosts: ["http://192.168.162.134:9201","http://192.168.162.134:9202"]
字段解析以及填坑方法:
字段 | 解析 |
server.port | kibana运行端口 |
server.host | kibana后端服务器的主机,如果设置为“127.0.0.1”将访问不了,如果设置为“192.168.162.134”则启动失败,建议设置为"0.0.0.0" |
elasticsearch.hosts | es集群地址,不要使用elasticsearch.url,因为过期了 |
2.以挂载配置文件的方式启动kibana
docker run \ -d -p 5601:5601 \ -v /usr/local/kibana/config/kibana.yml:/usr/share/kibana/config/kibana.yml \ --name kibana-cluster kibana:7.6.1
注意:最后一行 kibana-cluster名字不能为kibana,不然docker启动会识别不了。
3.浏览器访问
访问http://192.168.162.134:5601/app/kibana#/dev_tools/console,可以看到启动成功:
2. logstash配置ES集群
1.新建宿主主机的挂载配置文件:
cd /usr/local mkdir -p logstash/config cd logstash mkdir lib cd config vi mysql.conf vi mysql1.conf vi pipelines.yml
上传jar包到/user/local/logstash/lib
目录下:
配置:mysql.conf
、mysql1.conf
、pipelines.yml
)
1. mysql.conf内容(注意es集群配置):
input { jdbc { jdbc_driver_library => "/usr/share/logstash/lib/mysql-connector-java-5.1.46.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_connection_string => "jdbc:mysql://192.168.18.166:3306/taodong-goods" jdbc_user => "root" jdbc_password => "123456" schedule => "* * * * *" statement => "SELECT * FROM product WHERE UPDATED_TIME > :sql_last_value" use_column_value => true tracking_column_type => "timestamp" tracking_column => "updated_time" last_run_metadata_path => "syncpoint_product_table" } } output { elasticsearch { hosts => ["192.168.162.134:9201","192.168.162.134:9202"] index => "product" document_id => "%{id}" document_type => "product" } stdout { codec => json_lines } }
2. mysql1.conf内容(注意es集群配置):
input { jdbc { jdbc_driver_library => "/usr/share/logstash/lib/mysql-connector-java-5.1.46.jar" jdbc_driver_class => "com.mysql.jdbc.Driver" jdbc_connection_string => "jdbc:mysql://192.168.18.166:3306/taodong-goods" jdbc_user => "root" jdbc_password => "123456" schedule => "* * * * *" statement => "SELECT * FROM category WHERE UPDATED_TIME > :sql_last_value" use_column_value => true tracking_column_type => "timestamp" tracking_column => "updated_time" last_run_metadata_path => "syncpoint_category_table" } } output { elasticsearch { hosts => ["192.168.162.134:9201","192.168.162.134:9202"] index => "category" document_id => "%{id}" document_type => "category" } stdout { codec => json_lines } }
3. pipelines.yml内容:
- pipeline.id: product_table path.config: "/usr/share/logstash/config/mysql.conf" - pipeline.id: category_table path.config: "/usr/share/logstash/config/mysql1.conf"
2.以挂载配置文件的方式启动logstash
mysql.conf
、mysql1.conf
、pipelines.yml
docker run \ -v /usr/local/logstash/lib/mysql-connector-java-5.1.46.jar:/usr/share/logstash/lib/mysql-connector-java-5.1.46.jar \ -v /usr/local/logstash/config/mysql.conf:/usr/share/logstash/config/mysql.conf \ -v /usr/local/logstash/config/mysql1.conf:/usr/share/logstash/config/mysql1.conf \ -v /usr/local/logstash/config/pipelines.yml:/usr/share/logstash/config/pipelines.yml \ -d --name logstash-cluster logstash:7.6.1
从控制台,可以看到有查询到内容:
3. 测试
使用kibana查询商品product
是否插入ES集群,下图可以看出插入成功:
使用kibana查询商品目录category
是否插入ES集群,下图可以看出插入成功:
4. 总结
本文主要讲解Kibana和Logstash配置集群,主要内容如下:
类型 | kibana | logstash |
目录 | kibana安装目录/config/kibana.yml |
logstash安装目录/config/ |
关键配置内容 | elasticsearch.hosts | output {elasticsearch { hosts => [es集群地址] |